{"openapi":"3.1.0","info":{"title":"Twilio Keys and Apps (BYOK) API","version":"0.1.0","description":"Twilio Keys and Apps (BYOK) lets an AI assistant read your own Twilio Keys and Apps data through the Twilio Keys and Apps 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_api_keys, get_api_key, list_signing_keys, get_signing_key, get_application, list_connect_apps,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-twilio-keys-apps.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-twilio-keys-apps/docs"},"termsOfService":"https://connectorbay.com/byok-twilio-keys-apps/terms"},"servers":[{"url":"https://byok-twilio-keys-apps.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-twilio-keys-apps/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_api_keys":{"post":{"operationId":"list_api_keys","summary":"List the account's API keys (SID, friendly name, creation and update dates). Key secrets are never returned by Twilio af","description":"List the account's API keys (SID, friendly name, creation and update dates). Key secrets are never returned by Twilio after creation. Use for \"Which API keys exist on my Twilio account and when were they created\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_sid":{"description":"The SID of the Twilio account (or subaccount): 'AC' followed by 32 hex characters.","maxLength":34,"title":"Account 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":["account_sid"],"title":"list_api_keysArguments","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_api_key":{"post":{"operationId":"get_api_key","summary":"Get one API key by SID: friendly name and dates (no secret). Use for \"When was Twilio API key SK... created\".","description":"Get one API key by SID: friendly name and dates (no secret). Use for \"When was Twilio API key SK... created\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_sid":{"description":"The SID of the Twilio account (or subaccount): 'AC' followed by 32 hex characters.","maxLength":34,"title":"Account Sid","type":"string"},"key_sid":{"description":"The SID of the API key: 'SK' followed by 32 hex characters.","maxLength":34,"title":"Key Sid","type":"string"}},"required":["account_sid","key_sid"],"title":"get_api_keyArguments","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_signing_keys":{"post":{"operationId":"list_signing_keys","summary":"List the account's signing keys (used to sign access tokens) with friendly name and dates (no secret). Use for \"Which Tw","description":"List the account's signing keys (used to sign access tokens) with friendly name and dates (no secret). Use for \"Which Twilio signing keys do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_sid":{"description":"The SID of the Twilio account (or subaccount): 'AC' followed by 32 hex characters.","maxLength":34,"title":"Account 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":["account_sid"],"title":"list_signing_keysArguments","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_signing_key":{"post":{"operationId":"get_signing_key","summary":"Get one signing key by SID: friendly name and dates (no secret). Use for \"What is the name of Twilio signing key SK\".","description":"Get one signing key by SID: friendly name and dates (no secret). Use for \"What is the name of Twilio signing key SK\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_sid":{"description":"The SID of the Twilio account (or subaccount): 'AC' followed by 32 hex characters.","maxLength":34,"title":"Account Sid","type":"string"},"key_sid":{"description":"The SID of the signing key: 'SK' followed by 32 hex characters.","maxLength":34,"title":"Key Sid","type":"string"}},"required":["account_sid","key_sid"],"title":"get_signing_keyArguments","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 TwiML application: voice and SMS webhook URLs and methods, fallback URLs, status callbacks and caller ID lookup ","description":"Get one TwiML application: voice and SMS webhook URLs and methods, fallback URLs, status callbacks and caller ID lookup flag. Use for \"Where does my Twilio TwiML application AP... send voice and SMS webhooks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_sid":{"description":"The SID of the Twilio account (or subaccount): 'AC' followed by 32 hex characters.","maxLength":34,"title":"Account Sid","type":"string"},"application_sid":{"description":"The SID of the TwiML application: 'AP' followed by 32 hex characters.","maxLength":34,"title":"Application Sid","type":"string"}},"required":["account_sid","application_sid"],"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_connect_apps":{"post":{"operationId":"list_connect_apps","summary":"List the Connect apps you own with company name, description, homepage, permissions and callback URLs. Use for \"Which Tw","description":"List the Connect apps you own with company name, description, homepage, permissions and callback URLs. Use for \"Which Twilio Connect apps have I registered\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_sid":{"description":"The SID of the Twilio account (or subaccount): 'AC' followed by 32 hex characters.","maxLength":34,"title":"Account 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":["account_sid"],"title":"list_connect_appsArguments","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_connect_app":{"post":{"operationId":"get_connect_app","summary":"Get one Connect app by SID: company, description, homepage, permissions and redirect and deauthorize URLs. Use for \"What","description":"Get one Connect app by SID: company, description, homepage, permissions and redirect and deauthorize URLs. Use for \"What permissions does my Twilio Connect app CN... request\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_sid":{"description":"The SID of the Twilio account (or subaccount): 'AC' followed by 32 hex characters.","maxLength":34,"title":"Account Sid","type":"string"},"connect_app_sid":{"description":"The SID of the Connect app: 'CN' followed by 32 hex characters.","maxLength":34,"title":"Connect App Sid","type":"string"}},"required":["account_sid","connect_app_sid"],"title":"get_connect_appArguments","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_authorized_connect_apps":{"post":{"operationId":"list_authorized_connect_apps","summary":"List third-party Connect apps this account has authorized, with their company, description, homepage and granted permiss","description":"List third-party Connect apps this account has authorized, with their company, description, homepage and granted permissions. Use for \"Which third-party Connect apps have access to my Twilio account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_sid":{"description":"The SID of the Twilio account (or subaccount): 'AC' followed by 32 hex characters.","maxLength":34,"title":"Account 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":["account_sid"],"title":"list_authorized_connect_appsArguments","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_authorized_connect_app":{"post":{"operationId":"get_authorized_connect_app","summary":"Get one authorized Connect app by its SID: company, description, homepage and granted permissions. Use for \"What can aut","description":"Get one authorized Connect app by its SID: company, description, homepage and granted permissions. Use for \"What can authorized Connect app CN... do on my Twilio account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_sid":{"description":"The SID of the Twilio account (or subaccount): 'AC' followed by 32 hex characters.","maxLength":34,"title":"Account Sid","type":"string"},"connect_app_sid":{"description":"The SID of the Connect app: 'CN' followed by 32 hex characters.","maxLength":34,"title":"Connect App Sid","type":"string"}},"required":["account_sid","connect_app_sid"],"title":"get_authorized_connect_appArguments","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}}}}