{"openapi":"3.1.0","info":{"title":"Dialpad (BYOK) API","version":"0.1.0","description":"Dialpad (BYOK) lets an AI assistant read your own Dialpad data through the Dialpad API with a key you supply (Dialpad API key (company admins only)). Read-only: 11 tools (get_company, list_users, list_offices, list_departments, list_call_centers, list_rooms, list_numbers, list_contacts, list_calls, get_call, get_call_transcript). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-dialpad.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-dialpad/docs"},"termsOfService":"https://connectorbay.com/byok-dialpad/terms"},"servers":[{"url":"https://byok-dialpad.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-dialpad/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_company":{"post":{"operationId":"get_company","summary":"Show the Dialpad company: name, domain, account type, state, office count and whether Dialpad AI is on. Use for \"What is","description":"Show the Dialpad company: name, domain, account type, state, office count and whether Dialpad AI is on. Use for \"What is my Dialpad company and plan\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_companyArguments","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 Dialpad users with name, email, office, extension, numbers, state, license and online or duty status. Use for \"Who ","description":"List Dialpad users with name, email, office, extension, numbers, state, license and online or duty status. Use for \"Who is online in Dialpad right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"enum":["active","all","cancelled","deleted","pending","suspended"],"type":"string"},{"type":"null"}],"default":"active","description":"User state: active (default), all, cancelled, deleted, pending or suspended.","title":"State"},"first_name":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Prefix of the first name to match, for example 'jo'.","title":"First Name"},"last_name":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Prefix of the last name to match.","title":"Last Name"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact email address of the user.","title":"Email"},"company_admin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for company admins only, false for non-admins.","title":"Company Admin"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"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_offices":{"post":{"operationId":"list_offices","summary":"List Dialpad offices with name, country, availability status, primary flag and phone numbers. Use for \"What offices do w","description":"List Dialpad offices with name, country, availability status, primary flag and phone numbers. Use for \"What offices do we have in Dialpad\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"active_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list active offices only.","title":"Active Only"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"title":"list_officesArguments","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_departments":{"post":{"operationId":"list_departments","summary":"List Dialpad departments with name, office, availability status and phone numbers. Use for \"What departments does Dialpa","description":"List Dialpad departments with name, office, availability status and phone numbers. Use for \"What departments does Dialpad have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"office_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only departments of this office id.","title":"Office Id"},"name_search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the department name to search for.","title":"Name Search"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"title":"list_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_call_centers":{"post":{"operationId":"list_call_centers","summary":"List Dialpad contact centers with name, office, availability status, hold queue limits and phone numbers. Use for \"Which","description":"List Dialpad contact centers with name, office, availability status, hold queue limits and phone numbers. Use for \"Which Dialpad contact centers are open\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"office_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only call centers of this office id.","title":"Office Id"},"name_search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the call center name to search for.","title":"Name Search"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"title":"list_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/list_rooms":{"post":{"operationId":"list_rooms","summary":"List Dialpad rooms (shared desk phones) with name, office, state and numbers. Use for \"What Dialpad rooms exist\".","description":"List Dialpad rooms (shared desk phones) with name, office, state and numbers. Use for \"What Dialpad rooms exist\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"office_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only rooms of this office id.","title":"Office Id"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"title":"list_roomsArguments","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 phone numbers of the company with type, status and the office or target they are assigned to. Use for \"Which ph","description":"List the phone numbers of the company with type, status and the office or target they are assigned to. Use for \"Which phone numbers does my Dialpad company own\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"area_code":{"anyOf":[{"maxLength":6,"type":"string"},{"type":"null"}],"default":null,"description":"Only numbers with this area code (digits only, for example 415).","title":"Area Code"},"status":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only numbers with this status, for example office, user or available.","title":"Status"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"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_contacts":{"post":{"operationId":"list_contacts","summary":"List shared Dialpad contacts (and optionally local ones) with company, job title, emails and phones. Use for \"Find Dialp","description":"List shared Dialpad contacts (and optionally local ones) with company, job title, emails and phones. Use for \"Find Dialpad contacts named Smith\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text to filter contacts by name.","title":"Name"},"include_local":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include company local contacts.","title":"Include Local"},"owner_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only contacts owned by this user id.","title":"Owner Id"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"title":"list_contactsArguments","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 concluded calls, newest first, with direction, state, duration, contact, target and CSAT. Needs the calls:list scop","description":"List concluded calls, newest first, with direction, state, duration, contact, target and CSAT. Needs the calls:list scope. Recording links are left out. Use for \"What were my last Dialpad calls\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"started_after":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only calls that started after this time (UTC milliseconds since epoch).","title":"Started After"},"started_before":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only calls that started before this time (UTC milliseconds since epoch).","title":"Started Before"},"target_type":{"anyOf":[{"enum":["callcenter","callrouter","channel","coachinggroup","coachingteam","department","office","room","staffgroup","unknown","user"],"type":"string"},{"type":"null"}],"default":null,"description":"Type of target to filter by; needs target_id.","title":"Target Type"},"target_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Id of the target to filter by; needs target_type.","title":"Target Id"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"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 one call by id with direction, state, duration, contact, target, labels and the AI transcription text when present. ","description":"Get one call by id with direction, state, duration, contact, target, labels and the AI transcription text when present. Recording links are left out. Use for \"Show Dialpad call 5032945\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"call_id":{"description":"Dialpad call id.","maximum":999999999999999,"minimum":1,"title":"Call Id","type":"integer"}},"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}},"/v1/tools/get_call_transcript":{"post":{"operationId":"get_call_transcript","summary":"Get the transcript of a call as lines with speaker name, time and text. Use for \"What was said in Dialpad call 5032945\".","description":"Get the transcript of a call as lines with speaker name, time and text. Use for \"What was said in Dialpad call 5032945\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"call_id":{"description":"Dialpad call id.","maximum":999999999999999,"minimum":1,"title":"Call Id","type":"integer"}},"required":["call_id"],"title":"get_call_transcriptArguments","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}}}}