{"openapi":"3.1.0","info":{"title":"Telnyx (BYOK) API","version":"0.1.0","description":"Telnyx (BYOK) lets an AI assistant read your own Telnyx data through the Telnyx API with a key you supply (API key (V2)). Read-only: 8 tools (get_balance, list_phone_numbers, list_messaging_profiles, get_message, list_connections, list_outbound_voice_profiles, list_recordings, list_call_control_applications). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-telnyx.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-telnyx/docs"},"termsOfService":"https://connectorbay.com/byok-telnyx/terms"},"servers":[{"url":"https://byok-telnyx.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-telnyx/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_balance":{"post":{"operationId":"get_balance","summary":"Show the account balance, available credit, credit limit, pending charges and currency. Use for \"How much balance do I h","description":"Show the account balance, available credit, credit limit, pending charges and currency. Use for \"How much balance do I have left on Telnyx\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_balanceArguments","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_phone_numbers":{"post":{"operationId":"list_phone_numbers","summary":"List the account's phone numbers with status, type, country, connection, messaging profile and feature flags. Optional f","description":"List the account's phone numbers with status, type, country, connection, messaging profile and feature flags. Optional filters on status and number. Use for \"Which phone numbers do I own on Telnyx and are they active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 250, default 20).","title":"Page Size"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"status":{"anyOf":[{"enum":["purchase-pending","purchase-failed","port-pending","active","deleted","port-failed","emergency-only","ported-out","port-out-pending"],"type":"string"},{"type":"null"}],"default":null,"description":"Only numbers with this status.","title":"Status"},"phone_number":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only numbers matching this value (at least three digits).","title":"Phone Number"},"sort":{"anyOf":[{"enum":["purchased_at","phone_number","connection_name","usage_payment_method"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by purchased_at, phone_number, connection_name or usage_payment_method.","title":"Sort"}},"title":"list_phone_numbersArguments","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_messaging_profiles":{"post":{"operationId":"list_messaging_profiles","summary":"List messaging profiles with name, enabled flag, daily spend limit, sender settings and timestamps. Use for \"What messag","description":"List messaging profiles with name, enabled flag, daily spend limit, sender settings and timestamps. Use for \"What messaging profiles are set up in Telnyx\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 250, default 20).","title":"Page Size"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"name_contains":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only profiles whose name contains this text.","title":"Name Contains"}},"title":"list_messaging_profilesArguments","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 SMS/MMS message record by ID: direction, type, sender, recipients with delivery status, text, parts, cost, times","description":"Get one SMS/MMS message record by ID: direction, type, sender, recipients with delivery status, text, parts, cost, timestamps and errors. Use for \"Was this Telnyx text message delivered\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"message_id":{"description":"Message ID (UUID) from a send result or webhook.","maxLength":200,"title":"Message Id","type":"string"}},"required":["message_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_connections":{"post":{"operationId":"list_connections","summary":"List voice connections (SIP trunks and apps) with name, active flag, webhook version and outbound voice profile. Use for","description":"List voice connections (SIP trunks and apps) with name, active flag, webhook version and outbound voice profile. Use for \"Which Telnyx voice connections are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items per page (1 to 250, default 50).","title":"Page Size"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"sort":{"anyOf":[{"enum":["created_at","connection_name","active"],"type":"string"},{"type":"null"}],"default":"created_at","description":"Sort by created_at, connection_name or active.","title":"Sort"}},"title":"list_connectionsArguments","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_outbound_voice_profiles":{"post":{"operationId":"list_outbound_voice_profiles","summary":"List outbound voice profiles with daily spend limit, concurrent call limit, destination rate cap and enabled flag. Use f","description":"List outbound voice profiles with daily spend limit, concurrent call limit, destination rate cap and enabled flag. Use for \"What spend limits do my Telnyx outbound voice profiles have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 250, default 20).","title":"Page Size"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"}},"title":"list_outbound_voice_profilesArguments","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_recordings":{"post":{"operationId":"list_recordings","summary":"List call recordings with caller, callee, duration, start and end time and status (download links are not returned). Use","description":"List call recordings with caller, callee, duration, start and end time and status (download links are not returned). Use for \"Which calls were recorded on Telnyx this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 250, default 20).","title":"Page Size"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"from_number":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only recordings of calls from this number.","title":"From Number"},"to_number":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only recordings of calls to this number.","title":"To Number"}},"title":"list_recordingsArguments","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_call_control_applications":{"post":{"operationId":"list_call_control_applications","summary":"List call control applications with name, active flag, webhook version and channel limits. Use for \"Which Telnyx call co","description":"List call control applications with name, active flag, webhook version and channel limits. Use for \"Which Telnyx call control applications exist\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 250, default 20).","title":"Page Size"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"}},"title":"list_call_control_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}}}}