{"openapi":"3.1.0","info":{"title":"Convoy (BYOK) API","version":"0.1.0","description":"Convoy (BYOK) lets an AI assistant read your own Convoy data through the Convoy API with a key you supply (Convoy API key (personal key to list projects, project key otherwise)). Read-only: 9 tools (list_projects, get_project, get_endpoint, get_endpoint_failure_rates, list_event_types, get_event, get_event_delivery, list_delivery_attempts, get_subscription). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-convoy.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-convoy/docs"},"termsOfService":"https://connectorbay.com/byok-convoy/terms"},"servers":[{"url":"https://byok-convoy.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-convoy/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_projects":{"post":{"operationId":"list_projects","summary":"List the webhook projects of an organisation with id, name, type (incoming or outgoing) and dates. Needs a personal API ","description":"List the webhook projects of an organisation with id, name, type (incoming or outgoing) and dates. Needs a personal API key. The answer wraps the result in status, message and data. Use for \"Which Convoy projects does my organisation have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Convoy Cloud region hosts your account: us (us.getconvoy.cloud) or eu (eu.getconvoy.cloud).","enum":["us","eu"],"title":"Region","type":"string"},"org_id":{"description":"Organisation id (the uid shown in the Convoy dashboard).","maxLength":200,"title":"Org Id","type":"string"}},"required":["region","org_id"],"title":"list_projectsArguments","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_project":{"post":{"operationId":"get_project","summary":"Get one project: name, type, organisation, retention count and whether endpoints, sources, subscriptions and events exis","description":"Get one project: name, type, organisation, retention count and whether endpoints, sources, subscriptions and events exist yet. Use for \"Show my Convoy project billing-events\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Convoy Cloud region hosts your account: us (us.getconvoy.cloud) or eu (eu.getconvoy.cloud).","enum":["us","eu"],"title":"Region","type":"string"},"project_id":{"description":"Convoy project id (the uid shown in the dashboard).","maxLength":200,"title":"Project Id","type":"string"}},"required":["region","project_id"],"title":"get_projectArguments","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: name, URL, status, retry and rate limit settings, circuit-breaker state and delivery counters (signing","description":"Get one endpoint: name, URL, status, retry and rate limit settings, circuit-breaker state and delivery counters (signing secrets are not returned). Use for \"Is Convoy endpoint 01H3... active and how many deliveries failed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Convoy Cloud region hosts your account: us (us.getconvoy.cloud) or eu (eu.getconvoy.cloud).","enum":["us","eu"],"title":"Region","type":"string"},"project_id":{"description":"Convoy project id (the uid shown in the dashboard).","maxLength":200,"title":"Project Id","type":"string"},"endpoint_id":{"description":"Endpoint id (uid).","maxLength":200,"title":"Endpoint Id","type":"string"}},"required":["region","project_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_failure_rates":{"post":{"operationId":"get_endpoint_failure_rates","summary":"Get delivery success, failure and retry counts and the failure rate of up to several endpoints over a period. Use for \"W","description":"Get delivery success, failure and retry counts and the failure rate of up to several endpoints over a period. Use for \"What is the failure rate of my Convoy endpoints this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Convoy Cloud region hosts your account: us (us.getconvoy.cloud) or eu (eu.getconvoy.cloud).","enum":["us","eu"],"title":"Region","type":"string"},"project_id":{"description":"Convoy project id (the uid shown in the dashboard).","maxLength":200,"title":"Project Id","type":"string"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the period as an ISO 8601 time, for example 2026-10-01T00:00:00Z.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End of the period as an ISO 8601 time.","title":"End Date"}},"required":["region","project_id"],"title":"get_endpoint_failure_ratesArguments","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 a project with category, description and deprecation date. Use for \"Which event types ar","description":"List the event types defined in a project with category, description and deprecation date. Use for \"Which event types are defined in my Convoy project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Convoy Cloud region hosts your account: us (us.getconvoy.cloud) or eu (eu.getconvoy.cloud).","enum":["us","eu"],"title":"Region","type":"string"},"project_id":{"description":"Convoy project id (the uid shown in the dashboard).","maxLength":200,"title":"Project Id","type":"string"}},"required":["region","project_id"],"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}},"/v1/tools/get_event":{"post":{"operationId":"get_event","summary":"Get one event: type, status, source, endpoints it was sent to, failure reason and creation time (payload and headers are","description":"Get one event: type, status, source, endpoints it was sent to, failure reason and creation time (payload and headers are not returned). Use for \"What happened to Convoy event 01H3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Convoy Cloud region hosts your account: us (us.getconvoy.cloud) or eu (eu.getconvoy.cloud).","enum":["us","eu"],"title":"Region","type":"string"},"project_id":{"description":"Convoy project id (the uid shown in the dashboard).","maxLength":200,"title":"Project Id","type":"string"},"event_id":{"description":"Event id (uid).","maxLength":200,"title":"Event Id","type":"string"}},"required":["region","project_id","event_id"],"title":"get_eventArguments","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_event_delivery":{"post":{"operationId":"get_event_delivery","summary":"Get one event delivery: event, endpoint, status, target URL, latency, retry count and next send time. Use for \"Did Convo","description":"Get one event delivery: event, endpoint, status, target URL, latency, retry count and next send time. Use for \"Did Convoy deliver event delivery 01H3... and how many tries did it take\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Convoy Cloud region hosts your account: us (us.getconvoy.cloud) or eu (eu.getconvoy.cloud).","enum":["us","eu"],"title":"Region","type":"string"},"project_id":{"description":"Convoy project id (the uid shown in the dashboard).","maxLength":200,"title":"Project Id","type":"string"},"event_delivery_id":{"description":"Event delivery id (uid).","maxLength":200,"title":"Event Delivery Id","type":"string"}},"required":["region","project_id","event_delivery_id"],"title":"get_event_deliveryArguments","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_delivery_attempts":{"post":{"operationId":"list_delivery_attempts","summary":"List the delivery attempts of one event delivery with endpoint, HTTP status, error, method, URL and times (headers and b","description":"List the delivery attempts of one event delivery with endpoint, HTTP status, error, method, URL and times (headers and bodies are not returned). Use for \"Why did Convoy event delivery 01H3... fail\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Convoy Cloud region hosts your account: us (us.getconvoy.cloud) or eu (eu.getconvoy.cloud).","enum":["us","eu"],"title":"Region","type":"string"},"project_id":{"description":"Convoy project id (the uid shown in the dashboard).","maxLength":200,"title":"Project Id","type":"string"},"event_delivery_id":{"description":"Event delivery id (uid).","maxLength":200,"title":"Event Delivery Id","type":"string"}},"required":["region","project_id","event_delivery_id"],"title":"list_delivery_attemptsArguments","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_subscription":{"post":{"operationId":"get_subscription","summary":"Get one subscription: name, type, the event types it filters on and creation time. Use for \"Which event types does Convo","description":"Get one subscription: name, type, the event types it filters on and creation time. Use for \"Which event types does Convoy subscription 01H3... forward\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Which Convoy Cloud region hosts your account: us (us.getconvoy.cloud) or eu (eu.getconvoy.cloud).","enum":["us","eu"],"title":"Region","type":"string"},"project_id":{"description":"Convoy project id (the uid shown in the dashboard).","maxLength":200,"title":"Project Id","type":"string"},"subscription_id":{"description":"Subscription id (uid).","maxLength":200,"title":"Subscription Id","type":"string"}},"required":["region","project_id","subscription_id"],"title":"get_subscriptionArguments","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}}}}