{"openapi":"3.1.0","info":{"title":"Dialpad Routing (BYOK) API","version":"0.1.0","description":"Dialpad Routing (BYOK) lets an AI assistant read your own Dialpad Routing data through the Dialpad Routing API with a key you supply (Dialpad API key (company admins only)). Read-only: 8 tools (list_call_routers, get_call_router, get_call_center, get_call_center_status, list_office_call_centers, get_department, list_office_departments, list_off_duty_statuses). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-dialpad-routing.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-dialpad-routing/docs"},"termsOfService":"https://connectorbay.com/byok-dialpad-routing/terms"},"servers":[{"url":"https://byok-dialpad-routing.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-dialpad-routing/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_call_routers":{"post":{"operationId":"list_call_routers","summary":"List API call routers (calls routed by your own web service) with name, enabled flag, office, fallback target and the nu","description":"List API call routers (calls routed by your own web service) with name, enabled flag, office, fallback target and the numbers that reach each. Signing secrets are not returned. Use for \"Which Dialpad call routers do we have and where do calls fall back to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"office_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only routers of this office (numeric ID).","title":"Office Id"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the 'cursor' value of the previous answer (leave empty for the first page).","title":"Cursor"}},"title":"list_call_routersArguments","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_router":{"post":{"operationId":"get_call_router","summary":"Get one API call router: enabled flag, office, fallback target type and ID, routing URL and numbers. The signing secret ","description":"Get one API call router: enabled flag, office, fallback target type and ID, routing URL and numbers. The signing secret is not returned. Use for \"Is Dialpad call router 1234 enabled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"router_id":{"description":"Numeric ID of the call router.","title":"Router Id","type":"integer"}},"required":["router_id"],"title":"get_call_routerArguments","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_center":{"post":{"operationId":"get_call_center","summary":"Get one contact center's routing set-up: open and closed routing options, ring time, hold queue limits, service-level al","description":"Get one contact center's routing set-up: open and closed routing options, ring time, hold queue limits, service-level alerts, recording settings, hours flag and time zone. Notification email addresses are not returned. Use for \"How does Dialpad contact center 1234 route calls when it is closed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"call_center_id":{"description":"Numeric ID of the contact center.","title":"Call Center Id","type":"integer"}},"required":["call_center_id"],"title":"get_call_centerArguments","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_center_status":{"post":{"operationId":"get_call_center_status","summary":"Get live metrics of one contact center: availability, capacity, calls waiting, longest wait time in seconds and operator","description":"Get live metrics of one contact center: availability, capacity, calls waiting, longest wait time in seconds and operators on duty. Use for \"How many calls are waiting in Dialpad contact center 1234 right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"call_center_id":{"description":"Numeric ID of the contact center.","title":"Call Center Id","type":"integer"}},"required":["call_center_id"],"title":"get_call_center_statusArguments","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_office_call_centers":{"post":{"operationId":"list_office_call_centers","summary":"List the contact centers of one office with their routing options, hold queue limits, hours flag, time zone and numbers.","description":"List the contact centers of one office with their routing options, hold queue limits, hours flag, time zone and numbers. Use for \"Which contact centers does Dialpad office 1234 have and how do they route calls\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"office_id":{"description":"Numeric ID of the office.","title":"Office Id","type":"integer"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the 'cursor' value of the previous answer (leave empty for the first page).","title":"Cursor"}},"required":["office_id"],"title":"list_office_call_centersArguments","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_department":{"post":{"operationId":"get_department","summary":"Get one department's routing set-up: open and closed routing options, ring time, hold queue limits, recording flag, hour","description":"Get one department's routing set-up: open and closed routing options, ring time, hold queue limits, recording flag, hours flag and time zone. Notification email addresses are not returned. Use for \"How does Dialpad department 1234 route inbound calls\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"department_id":{"description":"Numeric ID of the department.","title":"Department Id","type":"integer"}},"required":["department_id"],"title":"get_departmentArguments","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_office_departments":{"post":{"operationId":"list_office_departments","summary":"List the departments of one office with their routing options, hold queue limits, hours flag, time zone and numbers. Use","description":"List the departments of one office with their routing options, hold queue limits, hours flag, time zone and numbers. Use for \"Which departments does Dialpad office 1234 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"office_id":{"description":"Numeric ID of the office.","title":"Office Id","type":"integer"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the 'cursor' value of the previous answer (leave empty for the first page).","title":"Cursor"}},"required":["office_id"],"title":"list_office_departmentsArguments","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_off_duty_statuses":{"post":{"operationId":"list_off_duty_statuses","summary":"List the off-duty status values that operators of an office can choose. Use for \"Which off-duty statuses can operators p","description":"List the off-duty status values that operators of an office can choose. Use for \"Which off-duty statuses can operators pick in Dialpad office 1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"office_id":{"description":"Numeric ID of the office.","title":"Office Id","type":"integer"}},"required":["office_id"],"title":"list_off_duty_statusesArguments","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}}}}