Simple Poll API
Use the Simple Poll API to programmatically create polls in Slack 🎉
API access is available to paid Simple Poll customers only. Upgrade here
Getting an API key
The Simple Poll API uses token authentication, you can get your api key from the dashboard: https://simplepoll.rocks/dashboard/my/settings/
The API key is personal to you and enables you to create polls in the Slack workspace you're a member of. Keep the API key secret.
Create a poll
To create a poll using the Simple Poll API, make a POST request to https://simplepoll.rocks/api/v1/polls/
Required fields
channel_id
: the Slack channel where to post the polltext
: the poll text for example: "When are you in the office next week?" "Mon" "Tue" "Wed" "Thu" "Fri"
The text
field is the same as the text you can provide as a regular user in /poll [text]
. Many options are available to configure your poll including anonymity, ranked polls, results visibility, scheduled closing, etc. All options are documented here: https://help.simplepoll.rocks/article/120-how-can-i-use-slash-commands-to-make-a-poll-quickly
Authorization
Provide your api key in the Authorization
header in the Bearer
format, so Authorization: Bearer [your api key]
as shown in the example curl request below
Example curl request
curl 'https://simplepoll.rocks/api/v1/polls/' \ --header 'Authorization: Bearer sp_your_api_key' \ --data '{ "channel_id": "CM79LC212", "text": "\"What is your favorite color?\" \"Blue\" \"Red\" \"Green\" \"Yellow\" allow-options" }'
Example response
{ "ok": true, "poll_id": "3eb44c1c-b8a2-4f8d-98db-022ac671c44f", "text": "\"What is your favorite color?\" \"Blue\" \"Red\" \"Green\" \"Yellow\" allow-options", "channel_id": "CM79LC212", "ts": "1758740193.356289" }
Retrieve a poll
You can use the poll_id returned by the Create poll endpoint to retrieve the poll. Make a GET
request tohttps://simplepoll.rocks/api/v1/polls/<poll_id>/
So for example, making a GET request to https://simplepoll.rocks/api/v1/polls/3eb44c1c-b8a2-4f8d-98db-022ac671c44f
will return the following response:
{ "id": "3eb44c1c-b8a2-4f8d-98db-022ac671c44f", "user_id": "UL4F1RRTK", "team_id": "TLD069SUU", "channel_id": "CM79LC212", "ts": "1758740193.356289", "type_of_poll": "standard", "question": "What is your favorite color?", "description": null, "is_closed": false, "anonymous": false, "custom_anon_emoji": null, "limit": null, "allows_options_from_others": true, "order_results": "created", "created_at": "2025-09-24T18:56:33+00:00", "updated_at": "2025-09-24T18:56:33+00:00", "show_results": "immediately", "text": "\"What is your favorite color?\" \"Blue\" \"Red\" \"Green\" \"Yellow\" allow-options", "results": { "respondent_count": 1, "response_count": 1, "options": [ { "id": "87022c34abc5", "text": "Blue", "emoji": null, "position": 1, "vote_count": 0, "voters": [] }, { "id": "ea725c655a76", "text": "Red", "emoji": null, "position": 2, "vote_count": 1, "voters": [ { "user_id": "UL4F1RRTK", "voted_at": "2025-09-24T18:56:48+00:00" } ] }, { "id": "1589a87efb0d", "text": "Green", "emoji": null, "position": 3, "vote_count": 0, "voters": [] }, { "id": "a3c9796d1f2d", "text": "Yellow", "emoji": null, "position": 4, "vote_count": 0, "voters": [] } ] } }
Authorization
Similarly to the POST endpoint, provide your api key in the Authorization
header in the Bearer
format, so Authorization: Bearer [your api key]
FAQs
Q. Can I schedule a poll via the API?
A. It is not currently possible to schedule a poll via the API. The only "scheduling" we support at the moment is scheduling the poll to close automatically, or scheduling reminders.
Those are documented on this page.