{"openapi":"3.1.0","info":{"title":"StrawPoll (BYOK) API","version":"0.1.0","description":"StrawPoll (BYOK) lets an AI assistant read your own StrawPoll data through the StrawPoll API with a key you supply (API key). Read-only: 9 tools (get_my_profile, list_my_polls, list_my_activity, get_poll, get_poll_results, list_poll_comments, get_comment, get_user, list_user_polls). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-strawpoll.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-strawpoll/docs"},"termsOfService":"https://connectorbay.com/byok-strawpoll/terms"},"servers":[{"url":"https://byok-strawpoll.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-strawpoll/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_my_profile":{"post":{"operationId":"get_my_profile","summary":"Show the StrawPoll account the key belongs to: username, display name, join date, profile details and points. Use for \"W","description":"Show the StrawPoll account the key belongs to: username, display name, join date, profile details and points. Use for \"Which StrawPoll account is my key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_my_profileArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_my_polls":{"post":{"operationId":"list_my_polls","summary":"List polls you created or took part in, with title, type, vote and participant counts, last vote time and deadline. Use ","description":"List polls you created or took part in, with title, type, vote and participant counts, last vote time and deadline. Use for \"Which StrawPoll polls have I created\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"description":"Which polls: 'created' (polls the user made) or 'participated' (polls the user voted in).","enum":["created","participated"],"title":"Type","type":"string"}},"required":["type"],"title":"list_my_pollsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_my_activity":{"post":{"operationId":"list_my_activity","summary":"List your recent StrawPoll activity, such as polls created and polls voted in, with event name, details and time. Use fo","description":"List your recent StrawPoll activity, such as polls created and polls voted in, with event name, details and time. Use for \"What have I done on StrawPoll lately\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_my_activityArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_poll":{"post":{"operationId":"get_poll","summary":"Get one poll: title, type, options, vote, participant, view and comment counts, deadline, privacy and result visibility.","description":"Get one poll: title, type, options, vote, participant, view and comment counts, deadline, privacy and result visibility. Use for \"Show StrawPoll poll NVgmQ3qyzZm\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"poll_id":{"description":"Poll ID: the code in the poll's address, for example 'NVgmQ3qyzZm' in strawpoll.com/NVgmQ3qyzZm.","maxLength":60,"title":"Poll Id","type":"string"}},"required":["poll_id"],"title":"get_pollArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_poll_results":{"post":{"operationId":"get_poll_results","summary":"Get the results of a poll: total votes and participants, the options, and each participant's name, country code and chos","description":"Get the results of a poll: total votes and participants, the options, and each participant's name, country code and chosen option positions. Use for \"Who voted for what in StrawPoll poll NVgmQ3qyzZm\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"poll_id":{"description":"Poll ID: the code in the poll's address, for example 'NVgmQ3qyzZm' in strawpoll.com/NVgmQ3qyzZm.","maxLength":60,"title":"Poll Id","type":"string"}},"required":["poll_id"],"title":"get_poll_resultsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_poll_comments":{"post":{"operationId":"list_poll_comments","summary":"List the comments on a poll with author, text, like count and replies. Use for \"What comments did people leave on StrawP","description":"List the comments on a poll with author, text, like count and replies. Use for \"What comments did people leave on StrawPoll poll NVgmQ3qyzZm\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"poll_id":{"description":"Poll ID: the code in the poll's address, for example 'NVgmQ3qyzZm' in strawpoll.com/NVgmQ3qyzZm.","maxLength":60,"title":"Poll Id","type":"string"}},"required":["poll_id"],"title":"list_poll_commentsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_comment":{"post":{"operationId":"get_comment","summary":"Get one comment by ID with author, text, likes and replies. Use for \"Show StrawPoll comment c1\".","description":"Get one comment by ID with author, text, likes and replies. Use for \"Show StrawPoll comment c1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"comment_id":{"description":"Comment ID as returned by list_poll_comments (id).","maxLength":80,"title":"Comment Id","type":"string"}},"required":["comment_id"],"title":"get_commentArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_user":{"post":{"operationId":"get_user","summary":"Get the public profile of a StrawPoll user by ID: username, display name, join date and profile details. Use for \"Who is","description":"Get the public profile of a StrawPoll user by ID: username, display name, join date and profile details. Use for \"Who is StrawPoll user usr_example123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"StrawPoll user ID as returned in the user, poll and comment objects (id).","maxLength":80,"title":"User Id","type":"string"}},"required":["user_id"],"title":"get_userArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_user_polls":{"post":{"operationId":"list_user_polls","summary":"List polls another StrawPoll user created or took part in (public polls), with counts and deadline. Use for \"Which polls","description":"List polls another StrawPoll user created or took part in (public polls), with counts and deadline. Use for \"Which polls did StrawPoll user usr_example123 create\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"StrawPoll user ID as returned in the user, poll and comment objects (id).","maxLength":80,"title":"User Id","type":"string"},"type":{"description":"Which polls: 'created' (polls the user made) or 'participated' (polls the user voted in).","enum":["created","participated"],"title":"Type","type":"string"}},"required":["user_id","type"],"title":"list_user_pollsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}