{"openapi":"3.1.0","info":{"title":"Twilio Messaging Compliance (BYOK) API","version":"0.1.0","description":"Twilio Messaging Compliance (BYOK) lets an AI assistant read your own Twilio Messaging Compliance data through the Twilio Messaging Compliance API with a key you supply (Account SID or API key SID (use a restricted API key, SID starts with SK, rather than the main Auth Token where possible)). Read-only: 9 tools (list_a2p_campaigns, get_a2p_campaign, list_service_a2p_usecases,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-twilio-messaging-compliance.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-twilio-messaging-compliance/docs"},"termsOfService":"https://connectorbay.com/byok-twilio-messaging-compliance/terms"},"servers":[{"url":"https://byok-twilio-messaging-compliance.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-twilio-messaging-compliance/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_a2p_campaigns":{"post":{"operationId":"list_a2p_campaigns","summary":"List the US A2P 10DLC campaign registrations of a Messaging Service with brand, use case, status (for example IN_PROGRES","description":"List the US A2P 10DLC campaign registrations of a Messaging Service with brand, use case, status (for example IN_PROGRESS, VERIFIED, FAILED) and opt-in and opt-out keywords. Sample messages are not returned. Use for \"What is the status of the A2P campaign for my Twilio messaging service\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"messaging_service_sid":{"description":"The SID of the Messaging Service: 'MG' followed by 32 hex characters.","maxLength":34,"title":"Messaging Service Sid","type":"string"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 1000).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging token: the PageToken value inside meta.next_page_url from the previous answer (leave empty for the first page).","title":"Page Token"}},"required":["messaging_service_sid"],"title":"list_a2p_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_a2p_campaign":{"post":{"operationId":"get_a2p_campaign","summary":"Get one US A2P campaign registration by SID: brand, use case, status, content flags and keywords (sample messages are no","description":"Get one US A2P campaign registration by SID: brand, use case, status, content flags and keywords (sample messages are not returned). Use for \"Was Twilio A2P campaign QE... approved\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"messaging_service_sid":{"description":"The SID of the Messaging Service: 'MG' followed by 32 hex characters.","maxLength":34,"title":"Messaging Service Sid","type":"string"},"sid":{"description":"The SID of the US A2P campaign: 'QE' followed by 32 hex characters.","maxLength":34,"title":"Sid","type":"string"}},"required":["messaging_service_sid","sid"],"title":"get_a2p_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_service_a2p_usecases":{"post":{"operationId":"list_service_a2p_usecases","summary":"List the US A2P use cases a Messaging Service can register a campaign for, optionally for one brand registration. Use fo","description":"List the US A2P use cases a Messaging Service can register a campaign for, optionally for one brand registration. Use for \"Which A2P use cases can my Twilio messaging service register\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"messaging_service_sid":{"description":"The SID of the Messaging Service: 'MG' followed by 32 hex characters.","maxLength":34,"title":"Messaging Service Sid","type":"string"},"brand_registration_sid":{"anyOf":[{"maxLength":34,"type":"string"},{"type":"null"}],"default":null,"description":"Only use cases available to this brand registration (BN followed by 32 hex characters).","title":"Brand Registration Sid"}},"required":["messaging_service_sid"],"title":"list_service_a2p_usecasesArguments","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_us_a2p_usecases":{"post":{"operationId":"list_us_a2p_usecases","summary":"List all use cases that exist for US A2P messaging registrations. Use for \"What US A2P use case codes does Twilio suppor","description":"List all use cases that exist for US A2P messaging registrations. Use for \"What US A2P use case codes does Twilio support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_us_a2p_usecasesArguments","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_domain_config":{"post":{"operationId":"get_domain_config","summary":"Get the link shortening settings of a branded domain: callback URL, fallback URL, whether to continue when shortening fa","description":"Get the link shortening settings of a branded domain: callback URL, fallback URL, whether to continue when shortening fails and the HTTPS setting. Use for \"How is link shortening configured for my Twilio domain\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain_sid":{"description":"The SID of the link shortening domain: 'DN' followed by 32 hex characters.","maxLength":34,"title":"Domain Sid","type":"string"}},"required":["domain_sid"],"title":"get_domain_configArguments","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_service_domain_config":{"post":{"operationId":"get_service_domain_config","summary":"Get the link shortening settings that apply to a Messaging Service: its domain, callback URL, fallback URL and failure h","description":"Get the link shortening settings that apply to a Messaging Service: its domain, callback URL, fallback URL and failure handling. Use for \"Which link shortening config does my Twilio messaging service use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"messaging_service_sid":{"description":"The SID of the Messaging Service: 'MG' followed by 32 hex characters.","maxLength":34,"title":"Messaging Service Sid","type":"string"}},"required":["messaging_service_sid"],"title":"get_service_domain_configArguments","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_service_domain":{"post":{"operationId":"get_service_domain","summary":"Get the link shortening domain SID attached to a Messaging Service. Use for \"Which link shortening domain is attached to","description":"Get the link shortening domain SID attached to a Messaging Service. Use for \"Which link shortening domain is attached to my Twilio messaging service\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"messaging_service_sid":{"description":"The SID of the Messaging Service: 'MG' followed by 32 hex characters.","maxLength":34,"title":"Messaging Service Sid","type":"string"}},"required":["messaging_service_sid"],"title":"get_service_domainArguments","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/validate_domain_dns":{"post":{"operationId":"validate_domain_dns","summary":"Check whether the DNS records of a link shortening domain are valid, with the reason when they are not. Read only; chang","description":"Check whether the DNS records of a link shortening domain are valid, with the reason when they are not. Read only; changes nothing. Use for \"Is the DNS for my Twilio link shortening domain valid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain_sid":{"description":"The SID of the link shortening domain: 'DN' followed by 32 hex characters.","maxLength":34,"title":"Domain Sid","type":"string"}},"required":["domain_sid"],"title":"validate_domain_dnsArguments","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_domain_certificate":{"post":{"operationId":"get_domain_certificate","summary":"Get the TLS certificate record of a link shortening domain: domain name, certificate SID and creation, update and expiry","description":"Get the TLS certificate record of a link shortening domain: domain name, certificate SID and creation, update and expiry dates. Use for \"When does the certificate of my Twilio link shortening domain expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain_sid":{"description":"The SID of the link shortening domain: 'DN' followed by 32 hex characters.","maxLength":34,"title":"Domain Sid","type":"string"}},"required":["domain_sid"],"title":"get_domain_certificateArguments","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}}}}