{"openapi":"3.1.0","info":{"title":"Vonage (BYOK) API","version":"0.1.0","description":"Vonage (BYOK) lets an AI assistant read your own Vonage data through the Vonage API with a key you supply (Vonage API key). Read-only: 6 tools (get_balance, get_country_pricing, get_prefix_pricing, get_all_countries_pricing, list_owned_numbers, search_available_numbers). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-vonage.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-vonage/docs"},"termsOfService":"https://connectorbay.com/byok-vonage/terms"},"servers":[{"url":"https://byok-vonage.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-vonage/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 in euros and whether auto-reload is on. Use for \"How much Vonage balance do I have\".","description":"Show the account balance in euros and whether auto-reload is on. Use for \"How much Vonage balance do I have\".","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/get_country_pricing":{"post":{"operationId":"get_country_pricing","summary":"Get outbound price for one country: default price, currency, dialing prefix and per-network prices, for SMS, SMS transit","description":"Get outbound price for one country: default price, currency, dialing prefix and per-network prices, for SMS, SMS transit or voice. Use for \"How much does Vonage charge to send an SMS to the UK\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service":{"description":"Service to price: sms, sms-transit or voice.","enum":["sms","sms-transit","voice"],"title":"Service","type":"string"},"country":{"description":"Two-letter ISO 3166-1 country code, for example GB.","maxLength":2,"title":"Country","type":"string"}},"required":["service","country"],"title":"get_country_pricingArguments","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_prefix_pricing":{"post":{"operationId":"get_prefix_pricing","summary":"Get outbound prices for every country that uses a dialing prefix, for SMS, SMS transit or voice. Use for \"What does Vona","description":"Get outbound prices for every country that uses a dialing prefix, for SMS, SMS transit or voice. Use for \"What does Vonage charge for calls to numbers starting with +44\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service":{"description":"Service to price: sms, sms-transit or voice.","enum":["sms","sms-transit","voice"],"title":"Service","type":"string"},"prefix":{"description":"International dialing prefix without +, for example 44.","maxLength":6,"title":"Prefix","type":"string"}},"required":["service","prefix"],"title":"get_prefix_pricingArguments","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_all_countries_pricing":{"post":{"operationId":"get_all_countries_pricing","summary":"Get outbound prices for all countries for SMS, SMS transit or voice. The answer is long and is cut at 250 countries. Use","description":"Get outbound prices for all countries for SMS, SMS transit or voice. The answer is long and is cut at 250 countries. Use for \"Compare Vonage SMS prices across countries\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service":{"description":"Service to price: sms, sms-transit or voice.","enum":["sms","sms-transit","voice"],"title":"Service","type":"string"}},"required":["service"],"title":"get_all_countries_pricingArguments","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_owned_numbers":{"post":{"operationId":"list_owned_numbers","summary":"List the virtual numbers on the account with country, type, features and the application or webhook they are linked to. ","description":"List the virtual numbers on the account with country, type, features and the application or webhook they are linked to. Use for \"Which Vonage numbers do I own and what features do they have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter country code to restrict to.","title":"Country"},"application_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only numbers linked to this application id.","title":"Application Id"},"has_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for numbers linked to an application, false for numbers linked to none.","title":"Has Application"},"pattern":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Digits to look for, used with search_pattern. Numbers are in E.164 without + so the country code comes first.","title":"Pattern"},"search_pattern":{"anyOf":[{"enum":[0,1,2],"type":"integer"},{"type":"null"}],"default":null,"description":"0 numbers starting with the pattern, 1 containing it, 2 ending with it.","title":"Search Pattern"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Results per page, 1 to 100 (default 100).","title":"Size"},"index":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1.","title":"Index"}},"title":"list_owned_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/search_available_numbers":{"post":{"operationId":"search_available_numbers","summary":"Search virtual numbers available to buy in a country by type, features and digit pattern, with monthly cost. Searching d","description":"Search virtual numbers available to buy in a country by type, features and digit pattern, with monthly cost. Searching does not buy anything. Use for \"Which UK mobile numbers with SMS can I get from Vonage\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"description":"Two-letter ISO 3166-1 country code, for example GB.","maxLength":2,"title":"Country","type":"string"},"type":{"anyOf":[{"enum":["landline","mobile-lvn","landline-toll-free"],"type":"string"},{"type":"null"}],"default":null,"description":"Number type.","title":"Type"},"features":{"anyOf":[{"enum":["SMS","VOICE","MMS","SMS,VOICE","SMS,MMS","VOICE,MMS","SMS,VOICE,MMS"],"type":"string"},{"type":"null"}],"default":null,"description":"Required features, for example SMS, VOICE or SMS,VOICE.","title":"Features"},"pattern":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Digits to look for, used with search_pattern. Numbers are in E.164 without + so the country code comes first.","title":"Pattern"},"search_pattern":{"anyOf":[{"enum":[0,1,2],"type":"integer"},{"type":"null"}],"default":null,"description":"0 numbers starting with the pattern, 1 containing it, 2 ending with it.","title":"Search Pattern"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Results per page, 1 to 100 (default 100).","title":"Size"},"index":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1.","title":"Index"}},"required":["country"],"title":"search_available_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}}}}