{"openapi":"3.1.0","info":{"title":"Svix (BYOK) API","version":"0.1.0","description":"Svix (BYOK) lets an AI assistant read your own Svix data through the Svix API with a key you supply (Svix API key (per environment)). Read-only: 10 tools (list_applications, get_application, list_endpoints, get_endpoint, get_endpoint_stats, list_messages, get_message, list_attempts_by_message, list_attempts_by_endpoint, list_event_types). The BYOK key travels with each request, is used for that...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-svix.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-svix/docs"},"termsOfService":"https://connectorbay.com/byok-svix/terms"},"servers":[{"url":"https://byok-svix.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-svix/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_applications":{"post":{"operationId":"list_applications","summary":"List the webhook applications (usually one per customer) with id, uid, name, rate limit and dates. Use for \"Which Svix a","description":"List the webhook applications (usually one per customer) with id, uid, name, rate limit and dates. Use for \"Which Svix applications exist in my account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100). The answer includes an iterator to fetch the next page.","title":"Limit"},"iterator":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"The iterator value from the previous answer, to get the next page.","title":"Iterator"},"order":{"anyOf":[{"enum":["ascending","descending"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ascending or descending.","title":"Order"}},"required":["region"],"title":"list_applicationsArguments","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_application":{"post":{"operationId":"get_application","summary":"Get one application by id or uid. Use for \"Show the Svix application with uid acme-corp\".","description":"Get one application by id or uid. Use for \"Show the Svix application with uid acme-corp\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"app_id":{"description":"Application id (app_...) or the uid you gave the application.","maxLength":200,"title":"App Id","type":"string"}},"required":["region","app_id"],"title":"get_applicationArguments","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_endpoints":{"post":{"operationId":"list_endpoints","summary":"List the webhook endpoints of an application with url, description, subscribed event types, disabled flag and dates. Use","description":"List the webhook endpoints of an application with url, description, subscribed event types, disabled flag and dates. Use for \"Which webhook endpoints does application acme-corp have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"app_id":{"description":"Application id (app_...) or the uid you gave the application.","maxLength":200,"title":"App Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100). The answer includes an iterator to fetch the next page.","title":"Limit"},"iterator":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"The iterator value from the previous answer, to get the next page.","title":"Iterator"},"order":{"anyOf":[{"enum":["ascending","descending"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ascending or descending.","title":"Order"}},"required":["region","app_id"],"title":"list_endpointsArguments","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_endpoint":{"post":{"operationId":"get_endpoint","summary":"Get one endpoint's url, description, event type filter, rate limit and disabled flag (the signing secret is not read). U","description":"Get one endpoint's url, description, event type filter, rate limit and disabled flag (the signing secret is not read). Use for \"Is endpoint ep_123 of acme-corp disabled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"app_id":{"description":"Application id (app_...) or the uid you gave the application.","maxLength":200,"title":"App Id","type":"string"},"endpoint_id":{"description":"Endpoint id (ep_...) or the uid you gave the endpoint.","maxLength":200,"title":"Endpoint Id","type":"string"}},"required":["region","app_id","endpoint_id"],"title":"get_endpointArguments","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_endpoint_stats":{"post":{"operationId":"get_endpoint_stats","summary":"Count the delivery outcomes (success, pending, sending, fail, canceled) of an endpoint, optionally between two times. Us","description":"Count the delivery outcomes (success, pending, sending, fail, canceled) of an endpoint, optionally between two times. Use for \"How many deliveries to endpoint ep_123 failed this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"app_id":{"description":"Application id (app_...) or the uid you gave the application.","maxLength":200,"title":"App Id","type":"string"},"endpoint_id":{"description":"Endpoint id (ep_...) or the uid you gave the endpoint.","maxLength":200,"title":"Endpoint Id","type":"string"},"since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only count messages after this ISO 8601 time, for example 2026-10-01T00:00:00Z.","title":"Since"},"until":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only count messages before this ISO 8601 time.","title":"Until"}},"required":["region","app_id","endpoint_id"],"title":"get_endpoint_statsArguments","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_messages":{"post":{"operationId":"list_messages","summary":"List the messages sent to an application, newest first, with event type, event id, timestamp and channels. Payloads are ","description":"List the messages sent to an application, newest first, with event type, event id, timestamp and channels. Payloads are left out. Use for \"What webhook messages did acme-corp receive recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"app_id":{"description":"Application id (app_...) or the uid you gave the application.","maxLength":200,"title":"App Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100). The answer includes an iterator to fetch the next page.","title":"Limit"},"iterator":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"The iterator value from the previous answer, to get the next page.","title":"Iterator"},"event_types":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages of this single event type, for example 'invoice.paid'.","title":"Event Types"},"channel":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages sent to this channel.","title":"Channel"},"before":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages created before this ISO 8601 time.","title":"Before"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages created after this ISO 8601 time.","title":"After"},"with_content":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include payloads in the answer; this connector keeps them out by default.","title":"With Content"}},"required":["region","app_id"],"title":"list_messagesArguments","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_message":{"post":{"operationId":"get_message","summary":"Get one message by id or event id: event type, timestamp and channels. Use for \"Show Svix message msg_123 of acme-corp\".","description":"Get one message by id or event id: event type, timestamp and channels. Use for \"Show Svix message msg_123 of acme-corp\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"app_id":{"description":"Application id (app_...) or the uid you gave the application.","maxLength":200,"title":"App Id","type":"string"},"msg_id":{"description":"Message id (msg_...) or the event id you gave the message.","maxLength":200,"title":"Msg Id","type":"string"},"with_content":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include the payload; off by default.","title":"With Content"}},"required":["region","app_id","msg_id"],"title":"get_messageArguments","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_attempts_by_message":{"post":{"operationId":"list_attempts_by_message","summary":"List the delivery attempts of one message to every endpoint, with status, HTTP status code, duration and time. Use for \"","description":"List the delivery attempts of one message to every endpoint, with status, HTTP status code, duration and time. Use for \"Why did message msg_123 fail to deliver\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"app_id":{"description":"Application id (app_...) or the uid you gave the application.","maxLength":200,"title":"App Id","type":"string"},"msg_id":{"description":"Message id (msg_...) or the event id you gave the message.","maxLength":200,"title":"Msg Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100). The answer includes an iterator to fetch the next page.","title":"Limit"},"iterator":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"The iterator value from the previous answer, to get the next page.","title":"Iterator"},"endpoint_id":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"description":"Only attempts to this endpoint id.","title":"Endpoint Id"},"status":{"anyOf":[{"enum":[0,1,2,3],"type":"integer"},{"type":"null"}],"default":null,"description":"Delivery status: 0 success, 1 pending, 2 fail, 3 sending.","title":"Status"},"with_content":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include response bodies; off by default.","title":"With Content"}},"required":["region","app_id","msg_id"],"title":"list_attempts_by_messageArguments","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_attempts_by_endpoint":{"post":{"operationId":"list_attempts_by_endpoint","summary":"List recent delivery attempts to one endpoint with status, HTTP status code, duration and time. Use for \"Show the latest","description":"List recent delivery attempts to one endpoint with status, HTTP status code, duration and time. Use for \"Show the latest delivery attempts to endpoint ep_123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"app_id":{"description":"Application id (app_...) or the uid you gave the application.","maxLength":200,"title":"App Id","type":"string"},"endpoint_id":{"description":"Endpoint id (ep_...) or the uid you gave the endpoint.","maxLength":200,"title":"Endpoint Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100). The answer includes an iterator to fetch the next page.","title":"Limit"},"iterator":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"The iterator value from the previous answer, to get the next page.","title":"Iterator"},"status":{"anyOf":[{"enum":[0,1,2,3],"type":"integer"},{"type":"null"}],"default":null,"description":"Delivery status: 0 success, 1 pending, 2 fail, 3 sending.","title":"Status"},"before":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only attempts before this ISO 8601 time.","title":"Before"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only attempts after this ISO 8601 time.","title":"After"},"with_content":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include response bodies; off by default.","title":"With Content"}},"required":["region","app_id","endpoint_id"],"title":"list_attempts_by_endpointArguments","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_event_types":{"post":{"operationId":"list_event_types","summary":"List the event types defined in the environment with description, archived and deprecated flags. Use for \"Which event ty","description":"List the event types defined in the environment with description, archived and deprecated flags. Use for \"Which event types can my Svix account send\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Svix data centre hosts your account: us (api.us.svix.com) or eu (api.eu.svix.com). It matches the region chosen when the account was created.","enum":["us","eu"],"title":"Region","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100). The answer includes an iterator to fetch the next page.","title":"Limit"},"iterator":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"The iterator value from the previous answer, to get the next page.","title":"Iterator"},"order":{"anyOf":[{"enum":["ascending","descending"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ascending or descending.","title":"Order"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include archived event types.","title":"Include Archived"}},"required":["region"],"title":"list_event_typesArguments","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}}}}