{"openapi":"3.1.0","info":{"title":"Telnyx 10DLC (BYOK) API","version":"0.1.0","description":"Telnyx 10DLC (BYOK) lets an AI assistant read your own Telnyx 10DLC data through the Telnyx 10DLC API with a key you supply (API key (V2)). Read-only: 9 tools (list_brands, get_brand, get_brand_feedback, list_campaigns, get_campaign, list_phone_number_campaigns, get_phone_number_campaign, list_shared_campaigns, get_usecase_cost). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-telnyx-10dlc.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-telnyx-10dlc/docs"},"termsOfService":"https://connectorbay.com/byok-telnyx-10dlc/terms"},"servers":[{"url":"https://byok-telnyx-10dlc.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-telnyx-10dlc/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_brands":{"post":{"operationId":"list_brands","summary":"List 10DLC brand registrations with entity type, identity status, registration status, failure reasons and number of ass","description":"List 10DLC brand registrations with entity type, identity status, registration status, failure reasons and number of assigned campaigns. Contact details are not returned. Use for \"Which of my Telnyx 10DLC brands are verified\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"records_per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Records per page (1 to 500, default 10).","title":"Records Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"sort":{"anyOf":[{"enum":["assignedCampaignsCount","-assignedCampaignsCount","brandId","-brandId","createdAt","-createdAt","displayName","-displayName","identityStatus","-identityStatus","status","-status","tcrBrandId","-tcrBrandId"],"type":"string"},{"type":"null"}],"default":"-createdAt","description":"Sort field; prefix with - for descending, for example -createdAt.","title":"Sort"},"display_name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only brands whose display name matches this text.","title":"Display Name"},"entity_type":{"anyOf":[{"enum":["PRIVATE_PROFIT","PUBLIC_PROFIT","NON_PROFIT","GOVERNMENT","SOLE_PROPRIETOR"],"type":"string"},{"type":"null"}],"default":null,"description":"Only brands of this entity type.","title":"Entity Type"}},"title":"list_brandsArguments","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_brand":{"post":{"operationId":"get_brand","summary":"Get one 10DLC brand: entity type, vertical, country, website, identity status, registration status, failure reasons and ","description":"Get one 10DLC brand: entity type, vertical, country, website, identity status, registration status, failure reasons and campaign count. Tax IDs and contact details are not returned. Use for \"What is the registration status of my Telnyx 10DLC brand\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand_id":{"description":"Brand ID returned by the brand list.","maxLength":64,"title":"Brand Id","type":"string"}},"required":["brand_id"],"title":"get_brandArguments","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_brand_feedback":{"post":{"operationId":"get_brand_feedback","summary":"Get registration feedback for a 10DLC brand: the categories of issues found during vetting. Use for \"Why was my Telnyx 1","description":"Get registration feedback for a 10DLC brand: the categories of issues found during vetting. Use for \"Why was my Telnyx 10DLC brand not verified\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand_id":{"description":"Brand ID returned by the brand list.","maxLength":64,"title":"Brand Id","type":"string"}},"required":["brand_id"],"title":"get_brand_feedbackArguments","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_campaigns":{"post":{"operationId":"list_campaigns","summary":"List the 10DLC campaigns of one brand with use case, vertical, review status, carrier submission state and assigned numb","description":"List the 10DLC campaigns of one brand with use case, vertical, review status, carrier submission state and assigned number count. Use for \"Which 10DLC campaigns does my Telnyx brand have and are they approved\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand_id":{"description":"Brand ID whose campaigns to list (from list_brands).","maxLength":64,"title":"Brand Id","type":"string"},"records_per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Records per page (1 to 500, default 10).","title":"Records Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"sort":{"anyOf":[{"enum":["assignedPhoneNumbersCount","-assignedPhoneNumbersCount","campaignId","-campaignId","createdAt","-createdAt","status","-status","tcrCampaignId","-tcrCampaignId"],"type":"string"},{"type":"null"}],"default":"-createdAt","description":"Sort field; prefix with - for descending.","title":"Sort"}},"required":["brand_id"],"title":"list_campaignsArguments","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_campaign":{"post":{"operationId":"get_campaign","summary":"Get one 10DLC campaign: use case, description, opt-in, opt-out and help keywords, flags for embedded links and phone num","description":"Get one 10DLC campaign: use case, description, opt-in, opt-out and help keywords, flags for embedded links and phone numbers, review and carrier status. Use for \"What is the status and opt-out setup of my Telnyx 10DLC campaign\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"Campaign ID returned by the campaign list.","maxLength":64,"title":"Campaign Id","type":"string"}},"required":["campaign_id"],"title":"get_campaignArguments","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_number_campaigns":{"post":{"operationId":"list_phone_number_campaigns","summary":"List which of your numbers are assigned to which 10DLC campaign, with assignment status and carrier mapping status. Use ","description":"List which of your numbers are assigned to which 10DLC campaign, with assignment status and carrier mapping status. Use for \"Which of my Telnyx numbers are assigned to a 10DLC campaign\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"records_per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (1 to 500, default 20).","title":"Records Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"sort":{"anyOf":[{"enum":["assignmentStatus","-assignmentStatus","createdAt","-createdAt","phoneNumber","-phoneNumber"],"type":"string"},{"type":"null"}],"default":"-createdAt","description":"Sort field; prefix with - for descending.","title":"Sort"}},"title":"list_phone_number_campaignsArguments","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_phone_number_campaign":{"post":{"operationId":"get_phone_number_campaign","summary":"Get the 10DLC campaign assignment of one of your numbers: campaign, brand, assignment status and failure reasons. Use fo","description":"Get the 10DLC campaign assignment of one of your numbers: campaign, brand, assignment status and failure reasons. Use for \"Is my Telnyx number +15551234567 assigned to a 10DLC campaign\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"phone_number":{"description":"One of your phone numbers in E.164 form, for example +15551234567.","maxLength":20,"title":"Phone Number","type":"string"}},"required":["phone_number"],"title":"get_phone_number_campaignArguments","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_shared_campaigns":{"post":{"operationId":"list_shared_campaigns","summary":"List campaigns shared with you by partners (CSP partner campaigns) with use case, status and number counts. Use for \"Whi","description":"List campaigns shared with you by partners (CSP partner campaigns) with use case, status and number counts. Use for \"Which 10DLC campaigns were shared with my Telnyx account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"records_per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Records per page (1 to 500, default 10).","title":"Records Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"sort":{"anyOf":[{"enum":["brandDisplayName","-brandDisplayName","createdAt","-createdAt","usecase","-usecase"],"type":"string"},{"type":"null"}],"default":"-createdAt","description":"Sort field; prefix with - for descending.","title":"Sort"}},"title":"list_shared_campaignsArguments","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_usecase_cost":{"post":{"operationId":"get_usecase_cost","summary":"Show the up-front and monthly cost of registering a campaign for a 10DLC use case. Use for \"How much does a 2FA 10DLC ca","description":"Show the up-front and monthly cost of registering a campaign for a 10DLC use case. Use for \"How much does a 2FA 10DLC campaign cost on Telnyx\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"usecase":{"description":"Campaign use case code, for example 2FA, MARKETING or LOW_VOLUME.","maxLength":50,"title":"Usecase","type":"string"}},"required":["usecase"],"title":"get_usecase_costArguments","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}}}}