{"openapi":"3.1.0","info":{"title":"Survicate (BYOK) API","version":"0.1.0","description":"Survicate (BYOK) lets an AI assistant read your own Survicate data through the Survicate API with a key you supply (Survicate Data Export API key). Read-only: 5 tools (list_surveys, get_survey, list_questions, list_survey_responses, get_survey_response). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-survicate.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-survicate/docs"},"termsOfService":"https://connectorbay.com/byok-survicate/terms"},"servers":[{"url":"https://byok-survicate.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-survicate/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/list_surveys":{"post":{"operationId":"list_surveys","summary":"List Survicate surveys, newest first, with type, name, enabled flag, total response count and launch schedule. Use for \"","description":"List Survicate surveys, newest first, with type, name, enabled flag, total response count and launch schedule. Use for \"Which Survicate surveys do I have and how many responses has each collected\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"items_per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items per page (1 to 100).","title":"Items Per Page"},"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Newer bound and starting point, as ISO 8601 with microseconds, for example 2026-08-31T23:59:59.000000Z. Items are returned newest first.","title":"Start"},"end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Older bound (inclusive), as ISO 8601 with microseconds, for example 2026-08-26T00:00:00.000000Z. Must be earlier than start.","title":"End"}},"title":"list_surveysArguments","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_survey":{"post":{"operationId":"get_survey","summary":"Get one Survicate survey: type, name, folder, enabled flag, response count, first and last response time, launch schedul","description":"Get one Survicate survey: type, name, folder, enabled flag, response count, first and last response time, launch schedule and the respondent attribute names collected. Use for \"Show details of Survicate survey 69f3dcf0d3220de7\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"survey_id":{"description":"Survicate survey ID, from list_surveys.","maxLength":200,"title":"Survey Id","type":"string"}},"required":["survey_id"],"title":"get_surveyArguments","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_questions":{"post":{"operationId":"list_questions","summary":"List the questions of one Survicate survey with type, text, introduction and answer choices. Use for \"What questions are","description":"List the questions of one Survicate survey with type, text, introduction and answer choices. Use for \"What questions are in Survicate survey 69f3dcf0d3220de7\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"survey_id":{"description":"Survicate survey ID, from list_surveys.","maxLength":200,"title":"Survey Id","type":"string"},"items_per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items per page (1 to 100).","title":"Items Per Page"},"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"ID of the question to start from: the value in next_url of the previous answer.","title":"Start"}},"required":["survey_id"],"title":"list_questionsArguments","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_survey_responses":{"post":{"operationId":"list_survey_responses","summary":"List when responses to one Survicate survey were collected, newest first, with the page URL, device type, operating syst","description":"List when responses to one Survicate survey were collected, newest first, with the page URL, device type, operating system, platform and language. The answers and respondent details are not returned. Use for \"When did Survicate survey 69f3dcf0d3220de7 get its latest responses\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"survey_id":{"description":"Survicate survey ID, from list_surveys.","maxLength":200,"title":"Survey Id","type":"string"},"items_per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items per page (1 to 100).","title":"Items Per Page"},"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Newer bound and starting point, as ISO 8601 with microseconds, for example 2026-08-31T23:59:59.000000Z. Items are returned newest first.","title":"Start"},"end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Older bound (inclusive), as ISO 8601 with microseconds, for example 2026-08-26T00:00:00.000000Z. Must be earlier than start.","title":"End"}},"required":["survey_id"],"title":"list_survey_responsesArguments","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_survey_response":{"post":{"operationId":"get_survey_response","summary":"Get when and from what device one Survicate response was collected (page URL, device type, operating system, platform, l","description":"Get when and from what device one Survicate response was collected (page URL, device type, operating system, platform, language). Answers and respondent details are not returned. Use for \"Show the device details of Survicate response a1b2c3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"survey_id":{"description":"Survicate survey ID, from list_surveys.","maxLength":200,"title":"Survey Id","type":"string"},"response_uuid":{"description":"Survicate response UUID, from list_survey_responses.","maxLength":200,"title":"Response Uuid","type":"string"}},"required":["survey_id","response_uuid"],"title":"get_survey_responseArguments","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}}}}