{"openapi":"3.1.0","info":{"title":"Twilio Proxy (BYOK) API","version":"0.1.0","description":"Twilio Proxy (BYOK) lets an AI assistant read your own Twilio Proxy data through the Twilio Proxy 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: 7 tools (list_services, get_service, list_sessions, get_session, list_participants, list_phone_numbers, get_phone_number). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-twilio-proxy.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-twilio-proxy/docs"},"termsOfService":"https://connectorbay.com/byok-twilio-proxy/terms"},"servers":[{"url":"https://byok-twilio-proxy.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-twilio-proxy/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_services":{"post":{"operationId":"list_services","summary":"List Proxy Services with unique name, default session lifetime, number selection behavior and geo match level. Use for \"","description":"List Proxy Services with unique name, default session lifetime, number selection behavior and geo match level. Use for \"Which Twilio Proxy services do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"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"}},"title":"list_servicesArguments","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":{"post":{"operationId":"get_service","summary":"Get one Proxy Service: callback URL, default session lifetime in seconds, number selection behavior and geo match level.","description":"Get one Proxy Service: callback URL, default session lifetime in seconds, number selection behavior and geo match level. Use for \"How is Proxy service KS... configured\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sid":{"description":"The SID of the Proxy Service: 'KS' followed by 32 hex characters.","maxLength":34,"title":"Sid","type":"string"}},"required":["sid"],"title":"get_serviceArguments","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_sessions":{"post":{"operationId":"list_sessions","summary":"List the sessions of a Proxy Service with status (open, in-progress, closed...), mode, lifetime and last interaction tim","description":"List the sessions of a Proxy Service with status (open, in-progress, closed...), mode, lifetime and last interaction time. Use for \"Which Proxy sessions are in progress for service KS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_sid":{"description":"The SID of the Proxy Service: 'KS' followed by 32 hex characters.","maxLength":34,"title":"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":["service_sid"],"title":"list_sessionsArguments","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_session":{"post":{"operationId":"get_session","summary":"Get one Proxy session: status, mode, lifetime, close reason and start, end and expiry times. Use for \"Is Proxy session K","description":"Get one Proxy session: status, mode, lifetime, close reason and start, end and expiry times. Use for \"Is Proxy session KC... still open\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_sid":{"description":"The SID of the Proxy Service: 'KS' followed by 32 hex characters.","maxLength":34,"title":"Service Sid","type":"string"},"sid":{"description":"The SID of the session: 'KC' followed by 32 hex characters.","maxLength":34,"title":"Sid","type":"string"}},"required":["service_sid","sid"],"title":"get_sessionArguments","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_participants":{"post":{"operationId":"list_participants","summary":"List the participants of one Proxy session with the Twilio proxy number each uses. Participants' real phone numbers and ","description":"List the participants of one Proxy session with the Twilio proxy number each uses. Participants' real phone numbers and names are not returned. Use for \"Which proxy numbers are used in Proxy session KC\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_sid":{"description":"The SID of the Proxy Service: 'KS' followed by 32 hex characters.","maxLength":34,"title":"Service Sid","type":"string"},"session_sid":{"description":"The SID of the session: 'KC' followed by 32 hex characters.","maxLength":34,"title":"Session 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":["service_sid","session_sid"],"title":"list_participantsArguments","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 Twilio numbers in a Proxy Service's number pool with country, capabilities, reserved flag and how many sessions","description":"List the Twilio numbers in a Proxy Service's number pool with country, capabilities, reserved flag and how many sessions use each. Use for \"Which numbers are in the Proxy number pool of service KS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_sid":{"description":"The SID of the Proxy Service: 'KS' followed by 32 hex characters.","maxLength":34,"title":"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":["service_sid"],"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/get_phone_number":{"post":{"operationId":"get_phone_number","summary":"Get one number from a Proxy Service's pool: capabilities, reserved flag and in-use count. Use for \"Is pool number PN... ","description":"Get one number from a Proxy Service's pool: capabilities, reserved flag and in-use count. Use for \"Is pool number PN... reserved\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_sid":{"description":"The SID of the Proxy Service: 'KS' followed by 32 hex characters.","maxLength":34,"title":"Service Sid","type":"string"},"sid":{"description":"The SID of the pool number: 'PN' followed by 32 hex characters.","maxLength":34,"title":"Sid","type":"string"}},"required":["service_sid","sid"],"title":"get_phone_numberArguments","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}}}}