{"openapi":"3.1.0","info":{"title":"Ringover (BYOK) API","version":"0.1.0","description":"Ringover (BYOK) lets an AI assistant read your own Ringover data through the Ringover API with a key you supply (Ringover public API key (European region; the US region uses a different host)). Read-only: 11 tools (get_team, list_users, list_groups, list_numbers, list_ivrs, get_ivr, list_call_tags, list_conferences, list_presences, list_calls, get_call). The BYOK key travels with each request, is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-ringover.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-ringover/docs"},"termsOfService":"https://connectorbay.com/byok-ringover/terms"},"servers":[{"url":"https://byok-ringover.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-ringover/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_team":{"post":{"operationId":"get_team","summary":"Show the Ringover team: name and the counts of numbers, users, IVRs, conference rooms and tags. Use for \"How big is our ","description":"Show the Ringover team: name and the counts of numbers, users, IVRs, conference rooms and tags. Use for \"How big is our Ringover account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_teamArguments","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_users":{"post":{"operationId":"list_users","summary":"List the team's users with id, name and plan type. Email addresses and phone numbers are left out. Use for \"Who are the ","description":"List the team's users with id, name and plan type. Email addresses and phone numbers are left out. Use for \"Who are the users on our Ringover team\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_usersArguments","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_groups":{"post":{"operationId":"list_groups","summary":"List the call groups (ring groups) with member count. Paged. Use for \"What call groups do we have in Ringover\".","description":"List the call groups (ring groups) with member count. Paged. Use for \"What call groups do we have in Ringover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit_count":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many groups to return (1 to 1000).","title":"Limit Count"},"limit_offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many groups to skip, for paging.","title":"Limit Offset"}},"title":"list_groupsArguments","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_numbers":{"post":{"operationId":"list_numbers","summary":"List the team's phone numbers with label, type, assignment and SMS capability. Unassigned numbers are included by defaul","description":"List the team's phone numbers with label, type, assignment and SMS capability. Unassigned numbers are included by default. Use for \"Which business numbers does our Ringover account own\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"is_user":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include numbers assigned to users (needs the Monitoring option).","title":"Is User"},"is_ivr":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include numbers assigned to IVRs (needs the Monitoring option).","title":"Is Ivr"},"is_conference":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include numbers assigned to conference rooms (needs the Monitoring option).","title":"Is Conference"}},"title":"list_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/list_ivrs":{"post":{"operationId":"list_ivrs","summary":"List the IVRs (automated call menus) with name, open state and scenarios. Use for \"What IVRs are configured in Ringover\"","description":"List the IVRs (automated call menus) with name, open state and scenarios. Use for \"What IVRs are configured in Ringover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_ivrsArguments","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_ivr":{"post":{"operationId":"get_ivr","summary":"Get one IVR with its numbers and scenarios. Use for \"Show the details of Ringover IVR 1\".","description":"Get one IVR with its numbers and scenarios. Use for \"Show the details of Ringover IVR 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ivr_id":{"description":"Numeric IVR ID, from list_ivrs.","maximum":9223372036854775807,"minimum":1,"title":"Ivr Id","type":"integer"}},"required":["ivr_id"],"title":"get_ivrArguments","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_call_tags":{"post":{"operationId":"list_call_tags","summary":"List the call tags defined for the team. Use for \"Which call tags exist in Ringover\".","description":"List the call tags defined for the team. Use for \"Which call tags exist in Ringover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_call_tagsArguments","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_conferences":{"post":{"operationId":"list_conferences","summary":"List the conference rooms with name and dial-in numbers. Use for \"What conference rooms does Ringover have\".","description":"List the conference rooms with name and dial-in numbers. Use for \"What conference rooms does Ringover have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_conferencesArguments","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_presences":{"post":{"operationId":"list_presences","summary":"Show every user's current availability: in a call, snoozed or planned snooze, connected devices. Use for \"Who is on a ca","description":"Show every user's current availability: in a call, snoozed or planned snooze, connected devices. Use for \"Who is on a call or snoozed in Ringover right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_presencesArguments","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_calls":{"post":{"operationId":"list_calls","summary":"List terminated calls, newest first, with direction, outcome, times and durations. Phone numbers are left out. A date ra","description":"List terminated calls, newest first, with direction, outcome, times and durations. Phone numbers are left out. A date range may span at most 15 days. Use for \"How many Ringover calls were missed in the last few days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, ISO 8601 date-time; use together with end_date. Default is 15 days ago.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, ISO 8601 date-time; use together with start_date. At most 15 days after start_date.","title":"End Date"},"call_type":{"anyOf":[{"enum":["ANSWERED","MISSED","OUT","VOICEMAIL"],"type":"string"},{"type":"null"}],"default":null,"description":"Only calls of one type: ANSWERED, MISSED, OUT or VOICEMAIL.","title":"Call Type"},"limit_count":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (1 to 1000).","title":"Limit Count"},"limit_offset":{"anyOf":[{"maximum":9000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging.","title":"Limit Offset"}},"title":"list_callsArguments","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_call":{"post":{"operationId":"get_call","summary":"Get the log entries of one terminated call (a forwarded or transferred call has several) without phone numbers. Use for ","description":"Get the log entries of one terminated call (a forwarded or transferred call has several) without phone numbers. Use for \"Show the log of Ringover call abc123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"call_id":{"description":"Call ID string, from list_calls.","maxLength":100,"title":"Call Id","type":"string"}},"required":["call_id"],"title":"get_callArguments","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}}}}