{"openapi":"3.1.0","info":{"title":"Dialpad Admin Config (BYOK) API","version":"0.1.0","description":"Dialpad Admin Config (BYOK) lets an AI assistant read your own Dialpad Admin Config data through the Dialpad Admin Config API with a key you supply (Dialpad API key (company admins only)). Read-only: 9 tools (list_coaching_teams, get_coaching_team, list_channels, list_call_labels, list_dispositions, list_access_control_policies, get_access_control_policy, get_office_plan,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-dialpad-admin-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-dialpad-admin-config/docs"},"termsOfService":"https://connectorbay.com/byok-dialpad-admin-config/terms"},"servers":[{"url":"https://byok-dialpad-admin-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-dialpad-admin-config/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_coaching_teams":{"post":{"operationId":"list_coaching_teams","summary":"List coaching teams with office, state, ring time, trainee eavesdrop flag, description and numbers. Use for \"Which coach","description":"List coaching teams with office, state, ring time, trainee eavesdrop flag, description and numbers. Use for \"Which coaching teams exist in our Dialpad account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"office_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only teams of this office (numeric ID).","title":"Office Id"},"name_search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only teams whose name contains this text.","title":"Name Search"},"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_coaching_teamsArguments","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_coaching_team":{"post":{"operationId":"get_coaching_team","summary":"Get one coaching team: office, state, ring time, trainee eavesdrop flag, description and numbers. Use for \"Can trainees ","description":"Get one coaching team: office, state, ring time, trainee eavesdrop flag, description and numbers. Use for \"Can trainees eavesdrop in Dialpad coaching team 1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"team_id":{"description":"Numeric ID of the coaching team.","title":"Team Id","type":"integer"}},"required":["team_id"],"title":"get_coaching_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_channels":{"post":{"operationId":"list_channels","summary":"List chat channels with hashtag, privacy setting, office and member count (member names are not returned). Use for \"Whic","description":"List chat channels with hashtag, privacy setting, office and member count (member names are not returned). Use for \"Which Dialpad channels exist and how many members do they have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"enum":["active","archived","deleted"],"type":"string"},{"type":"null"}],"default":"active","description":"Channel state to list: active, archived or deleted.","title":"State"},"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_channelsArguments","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_labels":{"post":{"operationId":"list_call_labels","summary":"List the call labels defined for the company. Use for \"Which call labels do we use in Dialpad\".","description":"List the call labels defined for the company. Use for \"Which call labels do we use in Dialpad\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1000,"description":"How many labels to return (1 to 1000, default 1000).","title":"Limit"}},"title":"list_call_labelsArguments","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_dispositions":{"post":{"operationId":"list_dispositions","summary":"List call disposition sets (outcome codes agents can pick) with the targets they apply to and their last-modified time. ","description":"List call disposition sets (outcome codes agents can pick) with the targets they apply to and their last-modified time. Use for \"Which call dispositions are configured in Dialpad\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"target_type":{"anyOf":[{"enum":["callcenter","coachinggroup","coachingteam","office","unknown"],"type":"string"},{"type":"null"}],"default":null,"description":"Only dispositions for this target type.","title":"Target Type"},"target_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only dispositions for this target (numeric ID, with target_type).","title":"Target 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_dispositionsArguments","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_access_control_policies":{"post":{"operationId":"list_access_control_policies","summary":"List access control policies with target type, state, owner and permission sets. Use for \"Which access control policies ","description":"List access control policies with target type, state, owner and permission sets. Use for \"Which access control policies exist in Dialpad\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"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_access_control_policiesArguments","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_access_control_policy":{"post":{"operationId":"get_access_control_policy","summary":"Get one access control policy: target type, state, owner and permission sets. Use for \"What permissions does Dialpad acc","description":"Get one access control policy: target type, state, owner and permission sets. Use for \"What permissions does Dialpad access control policy 1234 grant\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"policy_id":{"description":"Numeric ID of the access control policy.","title":"Policy Id","type":"integer"}},"required":["policy_id"],"title":"get_access_control_policyArguments","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_office_plan":{"post":{"operationId":"get_office_plan","summary":"Get an office's purchased line counts by type (talk, contact center, room, fax, sell, toll-free and others) and the next","description":"Get an office's purchased line counts by type (talk, contact center, room, fax, sell, toll-free and others) and the next billing date. Use for \"How many licenses does Dialpad office 1234 pay for\".","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":"get_office_planArguments","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_available_licenses":{"post":{"operationId":"list_available_licenses","summary":"Show how many licenses of each line type an office has purchased but not yet assigned. Use for \"How many unassigned Dial","description":"Show how many licenses of each line type an office has purchased but not yet assigned. Use for \"How many unassigned Dialpad licenses does 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"}},"required":["office_id"],"title":"list_available_licensesArguments","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}}}}