Dialpad MCP server
350 operations0 webhooks
Manage company calling, users, contacts, messages, routing, reporting, Dialpad Meetings, WFM, and PowerDialer through the documented Dialpad REST APIs.
Try Dialpad with your agent
Connect Dialpad, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Dialpad on my account, then run one read-only example and show me the result.
Dialpad tools and triggers
Tools are what your agent can do in Dialpad through Corsair's MCP server. Triggers are the Dialpad events a routine can start from.
Powerdialer
- Bulk Update Lead ItemsWrite
Bulk update LeadListItems. Update multiple LeadListItems in a single operation. Only updates items in 'pending' state.
powerdialer.bulkUpdateLeadItems
- Create Api KeyWrite
Create API Key. Issue a key acting as the caller, or as a service account (admins only). This is the only response that ever includes the secret, as `token_full` - store it
powerdialer.createApiKey
- Create AudienceWrite
Create an Audience. Create an Audience
powerdialer.createAudience
- Create BotWrite
Create Bot. Create a new Bot representing a kare widget
powerdialer.createBot
- Create Bot DialogWrite
Create Bot Dialog. Create a pending BotDialog and start the dialog job: init a kare converse conversation, connect its websocket, and send `text` as the first message
powerdialer.createBotDialog
- Create Bot MessageWrite
Create Bot Message. Queue a new user message on an open BotDialog. The dialog job sends pending messages into the socket and marks them sent.
powerdialer.createBotMessage
- Create CampaignWrite
Create Campaign. Create a new Campaign associated with a Dialpad Target
powerdialer.createCampaign
- Create Campaign GroupWrite
Create Campaign Group. Create Campaign Group
powerdialer.createCampaignGroup
- Create Custom PropertiesWrite
Create or Update Custom Properties. Create or update custom properties in bulk. Uses upsert semantics: if a property with the same name already exists, it will be updated with the new values. Otherwise, a new property will be created. Property names must contain only alphanumeric characters and underscores.
powerdialer.createCustomProperties
- Create Lead ListWrite
Create a shared LeadList. Create a new shared LeadList
powerdialer.createLeadList
- Create LeadsWrite
Create Lead. Create a Lead, and optionally add it to a campaign
powerdialer.createLeads
- Create PhoneWrite
Create a Phone. Create a Phone entry to the company DNC/DNT table
powerdialer.createPhone
- Create RuleWrite
Create rule for a campaign. Create a rule for a campaign
powerdialer.createRule
- Create Salesforce List View ImportWrite
Import Salesforce ListView records into Leads. Import a Salesforce list view into Dialbunny database
powerdialer.createSalesforceListViewImport
- Create Salesforce Object MappingWrite
Create Salesforce Object Mapping. Create a new Salesforce object mapping for the company or a specific campaign
powerdialer.createSalesforceObjectMapping
- Create Service AccountWrite
Create Service Account. Create a service account with a role ('admin' or 'read_only'). Company admins only
powerdialer.createServiceAccount
- Create Static ListWrite
Create a Static List. Create a Static List
powerdialer.createStaticList
- Delete Api KeyDestructive
Delete API Key. Revoke a key
powerdialer.deleteApiKey
- Delete AudienceDestructive
Delete an Audience. Delete a Audience
powerdialer.deleteAudience
- Delete BotDestructive
Delete Bot. Delete a Bot
powerdialer.deleteBot
- Delete Bot DialogDestructive
Delete Bot Dialog. Delete a BotDialog and all of its messages
powerdialer.deleteBotDialog
- Delete Bot MessageDestructive
Delete Bot Message. Delete a BotMessage
powerdialer.deleteBotMessage
- Delete CampaignDestructive
Delete Campaign. Delete a campaign entity
powerdialer.deleteCampaign
- Delete Campaign GroupDestructive
Delete Campaign Group, unlink member campaigns. Delete Campaign Group, unlink member campaigns
powerdialer.deleteCampaignGroup
- Delete CsvDestructive
Delete CSV. Delete a Csv Entity
powerdialer.deleteCsv
- Delete Custom PropertyDestructive
Delete Custom Property. Delete a custom property
powerdialer.deleteCustomProperty
- Delete Lead ListDestructive
Delete a LeadList. Delete a shared LeadList and its associated Audiences and StaticLists
powerdialer.deleteLeadList
- Delete Lead List ItemDestructive
Delete a LeadListItem. Delete a LeadListItem
powerdialer.deleteLeadListItem
- Delete Models By Keys Of KindDestructive
Bulk delete entities of a single kind by short keys. Bulk delete entities of a single kind by a list of ids or short keys
powerdialer.deleteModelsByKeysOfKind
- Delete PhoneDestructive
Soft Delete Phone. Soft Delete a Phone Entity
powerdialer.deletePhone
- Delete Phone CsvDestructive
Delete Phone CSV. Delete a Phone Csv Entity
powerdialer.deletePhoneCsv
- Delete RuleDestructive
Delete a rule. Delete a rule belonging to a campaign with campaign_id
powerdialer.deleteRule
- Delete Salesforce Object MappingDestructive
Delete Salesforce Object Mapping. Delete a Salesforce object mapping
powerdialer.deleteSalesforceObjectMapping
- Delete Service AccountDestructive
Delete Service Account. Delete a service account and revoke every key issued for it. The company's default account cannot be deleted. Company admins only
powerdialer.deleteServiceAccount
- Delete Static ListDestructive
Delete a Static List. Delete a Static List
powerdialer.deleteStaticList
- Duplicate AudienceWrite
Duplicate an Audience. Create a new audience from an existing one
powerdialer.duplicateAudience
- Duplicate CampaignWrite
Duplicate a Campaign. Create a new campaign from an existing one
powerdialer.duplicateCampaign
- Duplicate Lead ListWrite
Duplicate a LeadList. Create a new shared LeadList from an existing one, including duplicating its Audiences and StaticLists
powerdialer.duplicateLeadList
- Duplicate Static ListWrite
Duplicate a Static List. Create a new static list from an existing one
powerdialer.duplicateStaticList
- Edit Campaign SettingsWrite
Edit Settings for a Campaign. Edit a Campaign Settings object
powerdialer.editCampaignSettings
- Get Ably TokenRead-only
Ably Auth Endpoint. Auth endpoint for ably js client
powerdialer.getAblyToken
- Get Api KeyRead-only
Get API Key. Get a key by its id (the token's hash). The token itself is not returned
powerdialer.getApiKey
- Get Api KeysRead-only
List API Keys. List the keys issued for the company. Tokens are never returned - each key is identified by `id` (the token's hash) and `token` is its tail. Admins see every key, everyone else only keys acting as themselves
powerdialer.getApiKeys
- Get AudienceRead-only
Get Audience. Get a single Audience by id
powerdialer.getAudience
- Get AudiencesRead-only
Get Audiences. Get a list of Audiences
powerdialer.getAudiences
- Get BotRead-only
Get Bot. Get a single Bot by ID
powerdialer.getBot
- Get Bot DialogRead-only
Get Bot Dialog. Get a single BotDialog by ID
powerdialer.getBotDialog
- Get Bot DialogsRead-only
List Bot Dialogs. Get all BotDialogs for the company, optionally filtered by bot_id
powerdialer.getBotDialogs
- Get Bot MessageRead-only
Get Bot Message. Get a single BotMessage by ID
powerdialer.getBotMessage
- Get Bot MessagesRead-only
List Bot Messages. Get the transcript of a BotDialog, oldest message first
powerdialer.getBotMessages
- Get BotsRead-only
List Bots. Get all Bots (kare widgets) for the company
powerdialer.getBots
- Get CampaignRead-only
Get Campaign. Get an individual Campaign
powerdialer.getCampaign
- Get Campaign GroupRead-only
Get A Campaign Group. Get A Campaign Group
powerdialer.getCampaignGroup
- Get Campaign GroupsRead-only
List Campaign Groups. List Campaign Groups
powerdialer.getCampaignGroups
- Get Campaign Result Export UrlRead-only
Get campaign result export url. Get a presigned url to download campaign result export
powerdialer.getCampaignResultExportUrl
- Get Campaign SettingsRead-only
Get a Campaign Settings object. Settings for a Campaign
powerdialer.getCampaignSettings
- Get CampaignsRead-only
List of Campaigns. Fetch a list of Campaign entities assoicated with the company
powerdialer.getCampaigns
- Get ContactRead-only
Get a Contact. Get a Contact
powerdialer.getContact
- Get CsvRead-only
Get CSV. Get an individual CSV entity
powerdialer.getCsv
- Get Csv Presigned UrlRead-only
Generate a presigned url to download a CSV file with TTL=30s. Generate a presigned url to download a CSV file with TTL=30s
powerdialer.getCsvPresignedUrl
- Get CsvsRead-only
Get List of CSVs. Get a list of Csv entities
powerdialer.getCsvs
- Get Current UserRead-only
The Current User. JSON representation of the logged in user
powerdialer.getCurrentUser
- Get Custom PropertiesRead-only
List Custom Properties. Get a list of custom properties for the company
powerdialer.getCustomProperties
- Get Custom PropertyRead-only
Get Custom Property. Get a single custom property by id
powerdialer.getCustomProperty
- Get Dialpad OAuth ServiceRead-only
Get Dialpad OAuth Service. Get a Dialpad OAuth Service record by service name
powerdialer.getDialpadOAuthService
- Get Event LogsRead-only
Get EventLogs. Get a list of EventLog's for a Campaign
powerdialer.getEventLogs
- Get Global SettingsRead-only
Get Company GlobalSettings. Get company GlobalSettings with only modified fields
powerdialer.getGlobalSettings
- Get JobRead-only
Get Job. Get a single Job by ID, including its reduced results
powerdialer.getJob
- Get JobsRead-only
List Jobs. Get all background Jobs for the company, newest first
powerdialer.getJobs
- Get LeadRead-only
Get Lead. Get an individual lead
powerdialer.getLead
- Get Lead CompaniesRead-only
List of LeadCompanies. Get a list of LeadCompany entities, with optional search and ordering
powerdialer.getLeadCompanies
- Get Lead CompanyRead-only
Get LeadCompany. Get an individual LeadCompany
powerdialer.getLeadCompany
- Get Lead ExportRead-only
Get a Lead CSV export. Poll an export started with POST /api/lead_export. While it is still running there is no 'url'; on success 'url' is a short-lived signed download link; on failure 'error' says why.
powerdialer.getLeadExport
- Get Lead ItemRead-only
Get LeadItem. Get a LeadItem
powerdialer.getLeadItem
- Get Lead ItemsRead-only
List of LeadListItem + Lead. A mashup api to return a sortable, searchable list for campaign details
powerdialer.getLeadItems
- Get Lead List ItemRead-only
Get a LeadListItem. Get a single LeadListItem by id
powerdialer.getLeadListItem
- Get Lead List ViewRead-only
Search shared LeadLists. Search shared LeadLists with optional campaign counts
powerdialer.getLeadListView
- Get Lead List View By IdRead-only
Get a LeadList view. Get a single LeadList with optional campaign counts
powerdialer.getLeadListViewById
- Get Lead ListsRead-only
List of LeadList. Get a list of LeadLists
powerdialer.getLeadLists
- Get LeadsRead-only
List of Leads. Get a list of Leads, including searching for leads by filter, sql, and ai
powerdialer.getLeads
- Get List ItemsRead-only
List of LeadListItem. List of LeadListItem belonging to a Campaign
powerdialer.getListItems
- Get List ListRead-only
Get a LeadList. Get a LeadList
powerdialer.getListList
- Get List ViewRead-only
Get Combined List View. Get a combined list of Csv, Audience, and StaticList entities
powerdialer.getListView
- Get LoginRead-only
Initial endpoint to hit after oauth. Returns all initial values for user, company, config, etc
powerdialer.getLogin
- Get Models By KeysRead-only
Bulk fetch entities by short keys. Bulk fetch entity short keys by comma-delimited url params
powerdialer.getModelsByKeys
- Get Models By Keys Of KindRead-only
Bulk fetch entities of a single kind by short keys. Bulk fetch entities of a single kind by a list of ids or short keys
powerdialer.getModelsByKeysOfKind
- Get OperatorRead-only
Get Operator. Get a list of Operators
powerdialer.getOperator
- Get PhoneRead-only
Get Phone. Get an individual Phone entity
powerdialer.getPhone
- Get Phone CsvRead-only
Get Phone CSV. Get an individual Phone CSV entity
powerdialer.getPhoneCsv
- Get Phone CsvsRead-only
Get List of Phone CSVs. Get a list of PhoneCsv entities
powerdialer.getPhoneCsvs
- Get PhonesRead-only
List of Phones. Get a list of phone table for company DNC/DNT
powerdialer.getPhones
- Get RuleRead-only
Get Rule. Get a Rule
powerdialer.getRule
- Get RulesRead-only
List of rules for a campaign. List of rules belonging to a campaign with campaign id
powerdialer.getRules
- Get Salesforce List View By IdRead-only
Get Salesforce List View by ID. Retrieve a specific list view from Dialbunny database
powerdialer.getSalesforceListViewById
- Get Salesforce List View ImportRead-only
Get Salesforce ListView Import. Get a Salesforce ListView Import record by ID
powerdialer.getSalesforceListViewImport
- Get Salesforce List View ImportsRead-only
List Salesforce ListView Imports. Get all Salesforce ListView Import records for a campaign
powerdialer.getSalesforceListViewImports
- Get Salesforce Object FieldsRead-only
Get Object Fields from Salesforce. Fetch field metadata for a Salesforce object via sObject Describe API
powerdialer.getSalesforceObjectFields
- Get Salesforce Object List ViewsRead-only
Get List Views from Salesforce. Fetch list views from Salesforce
powerdialer.getSalesforceObjectListViews
- Get Salesforce Object MappingRead-only
Get Salesforce Object Mapping. Get a specific Salesforce object mapping by ID
powerdialer.getSalesforceObjectMapping
- Get Salesforce Object MappingsRead-only
List Salesforce Object Mappings. Get all Salesforce object mappings for the company, optionally filtered by campaign or sobject type
powerdialer.getSalesforceObjectMappings
- Get Service AccountRead-only
Get Service Account. Get a single service account by id
powerdialer.getServiceAccount
- Get Service AccountsRead-only
List Service Accounts. Get the company's service accounts - non-human principals that api keys can be issued for and that author the entities they create
powerdialer.getServiceAccounts
- Get Sms For TargetRead-only
Get Sms List for a Target. DEBUG: Get a list of recent sms given a Target
powerdialer.getSmsForTarget
- Get Static ListRead-only
Get Static List. Get a single Static List by id
powerdialer.getStaticList
- Get Static ListsRead-only
Get Static Lists. Get a list of Static Lists
powerdialer.getStaticLists
- Get Vars InfoRead-only
Get auto-complete variable info. Auto-complete variable info belonging to a campaign with campaign id
powerdialer.getVarsInfo
- Get WorkerRead-only
Get a Worker. Get a Worker
powerdialer.getWorker
- Get WorkersRead-only
Get Workers. Get a list of Workers for a Campaign
powerdialer.getWorkers
- Patch Salesforce List ViewWrite
Update Salesforce List View. Perform actions on a Salesforce list view (e.g. refresh_count)
powerdialer.patchSalesforceListView
- Post LoginWrite
Login with a Dialpad access token. Establishes a browser session from a Dialpad access token bearer: sets the session cookie and returns the login json (Dialpad's raw payload with raw=1)
powerdialer.postLogin
- Query LeadsWrite
List of Leads by Query. Get a list of Leads based on complex Queries
powerdialer.queryLeads
- Search CampaignsWrite
Search Campaigns with POST. POST version of /api/campaign - supports large lists and date range filtering
powerdialer.searchCampaigns
- Sms ItemDestructive
Send SMS. DEBUG: Send a text message through dialpad for a given LeadListItem
powerdialer.smsItem
- Start Campaign Result ExportWrite
Start a campaign result export job. Start a campaign result export job
powerdialer.startCampaignResultExport
- Start Lead ExportWrite
Start a Lead CSV export. Start a CSV export of this company's Leads and return the export record. The export runs in the background: a BigQuery query job plus an extract job routinely takes longer than a request can wait. Poll GET /api/lead_export/<id> until it returns a 'url'. Rows are read from the BigQuery mirror of Spanner, which lags writes, so a Lead created moments ago may not be included — narrow with 'since' and treat freshness as best-effort. Columns are the standard Lead fields plus every property registered via /api/custom_property.
powerdialer.startLeadExport
- Update Api KeyWrite
Update API Key. Rename a key
powerdialer.updateApiKey
- Update AudienceWrite
Update an Audience. Update an Audience name and/or query
powerdialer.updateAudience
- Update BotWrite
Update Bot. Update a Bot's name or kare ids
powerdialer.updateBot
- Update Bot DialogWrite
Update Bot Dialog. Perform an action on a BotDialog, e.g. end it without deleting
powerdialer.updateBotDialog
- Update CampaignDestructive
Update Campaign. Update a Campaign like starting, resetting, etc
powerdialer.updateCampaign
- Update Campaign GroupWrite
Update Campaign Group. Update Campaign Group
powerdialer.updateCampaignGroup
- Update CsvWrite
Update CSV. Update a CSV with a mapping, labels, name, etc
powerdialer.updateCsv
- Update Custom PropertyWrite
Update Custom Property. Update a custom property
powerdialer.updateCustomProperty
- Update Global SettingsWrite
Update Company GlobalSettings. Update company GlobalSettings entity
powerdialer.updateGlobalSettings
- Update LeadWrite
Update Lead. Update a Lead
powerdialer.updateLead
- Update Lead ItemWrite
Update LeadItem. Update a LeadItem
powerdialer.updateLeadItem
- Update Lead ListWrite
Update LeadList. Update a LeadList with csv_ids, audience_ids, etc. Supports actions: set_audience, remove_audience, create_static_list, add_leads, remove_leads, add_snapshot, refresh_snapshot, clear_snapshot, clear_manual, refresh_audience
powerdialer.updateLeadList
- Update PhoneWrite
Update Phone. Update a Phone DNC/DNT statuses
powerdialer.updatePhone
- Update Phone CsvWrite
Update Phone CSV. Update a Phone CSV with a mapping, labels, name, etc
powerdialer.updatePhoneCsv
- Update RuleWrite
Update a rule for a campaign. Update a rule for a campaign
powerdialer.updateRule
- Update Salesforce List View ImportWrite
Update Salesforce ListView Import. Update a Salesforce ListView Import, e.g., start the import job
powerdialer.updateSalesforceListViewImport
- Update Salesforce Object MappingWrite
Update Salesforce Object Mapping. Update an existing Salesforce object mapping
powerdialer.updateSalesforceObjectMapping
- Update Service AccountWrite
Update Service Account. Rename a service account or change its role. Company admins only
powerdialer.updateServiceAccount
- Update Static ListWrite
Update Static List. Update a Static List with leads
powerdialer.updateStaticList
- Update WorkerWrite
Update Worker. Update a Worker
powerdialer.updateWorker
Users
- Assign NumberDestructive
Dialpad Number -- Assign. Assigns a number to a user. The number will automatically be taken from the company's reserved block if there are reserved numbers, otherwise a number will be auto-assigned from the provided area code. Rate limit: 1200 per minute.
users.assign_number
- CreateDestructive
User -- Create. Creates a new user. Rate limit: 1200 per minute.
users.create
- Create BatchDestructive
User -- Create Batch. Creates up to 25 users in one call, for example to invite a team. Each user is created independently with the same rules as creating a single user, so a failure does not undo the users that were created before it. The response has one result per requested user, in the order sent, with either the created user or the reason it was not created. The reason code no_seats_available means the office has no free license of the type the user would consume. An unexpected server error ends the whole call with a 503 and no per-user results, and the users created before it stay created. Rate limit: 1200 per minute.
users.create_batch
- DeleteDestructive
User -- Delete. Deletes a user by id. Rate limit: 1200 per minute.
users.delete
- E911.GetRead-only
E911 Address -- Get. Gets E911 address of the user by user id. Rate limit: 1200 per minute.
users.e911.get
- E911.UpdateWrite
E911 Address -- Update. Update E911 address of the given user. Rate limit: 1200 per minute.
users.e911.update
- GetRead-only
User -- Get. Get a user by id. Returns identity (name, email, job_title), contact details (phone_numbers, extension), status (state, do_not_disturb, is_on_duty, on_duty_status), license type, office membership (office_id, group_details), and voicemail settings. Rate limit: 1200 per minute.
users.get
- Initiate CallDestructive
Call -- Initiate. Causes a user's Dialpad application to initiate an outbound call. Note that the user must have at least one active autocallable device (the web or desktop Dialpad app, or a CTI application). The Dialpad mobile apps and physical deskphones do not support this API call. Rate limit: 5 per minute.
users.initiate_call
- ListRead-only
User -- List. Gets company users, optionally filtering by email. NOTE: The `limit` parameter has been soft-deprecated. Please omit the `limit` parameter, or reduce it to `100` or less. - Limit values of greater than `100` will only produce a page size of `100`, and a `400 Bad Request` response will be produced 20% of the time in an effort to raise visibility of side-effects that might otherwise go un-noticed by solutions that had assumed a larger page size. - The `cursor` value is provided in the response, and can be passed as a parameter to retrieve subsequent pages of results. Rate limit: 1200 per minute.
users.list
- List PersonasRead-only
Persona -- List. Provides a list of personas for a user. A persona is a target that a user can make calls from. The receiver of the call will see the details of the persona rather than the user. Rate limit: 1200 per minute.
users.list_personas
- Move OfficeDestructive
User -- Switch Office. Moves the user to a different office. For international offices only, all of the user's numbers will be unassigned and a new number will be assigned except when the user only has internal numbers starting with 803 -- then the numbers will remain unchanged. Admin can also assign numbers via the user assign number API after. Only supported on paid accounts and there must be enough licenses to transfer the user to the destination office. Rate limit: 1200 per minute.
users.move_office
- Set Caller IdWrite
Caller ID -- Set. Set Caller ID for a given user ID. Rate limit: 1200 per minute.
users.set_caller_id
- Toggle Call RecordingWrite
Call Recording -- Toggle. Turns call recording on or off for a user's active call. Rate limit: 1200 per minute.
users.toggle_call_recording
- Toggle Call ViWrite
Call VI -- Toggle. Turns Voice Intelligence (live transcription and real-time assist) on or off for the user's currently active call, optionally setting the transcription locale. Fails if the user has no active call. Reversible by calling again. Rate limit: 1200 per minute.
users.toggle_call_vi
- Toggle DndWrite
Do Not Disturb -- Toggle. Toggle DND status on or off for the given user. Rate limit: 1200 per minute.
users.toggle_dnd
- Unassign NumberDestructive
Dialpad Number -- Unassign. Un-assigns a phone number from a user. The number will be returned to the company's reserved block if there is one. Otherwise the number will be released. Rate limit: 1200 per minute.
users.unassign_number
- UpdateWrite
User -- Update. Updates the provided fields for an existing user. Rate limit: 1200 per minute.
users.update
- Update StatusWrite
User Status -- Update. Update user's status. Returns the user's status if the user exists. Rate limit: 1200 per minute.
users.update_status
Callcenters
- CreateWrite
Call Centers -- Create. Create a new call center in the specified office. Requires name and office_id. Requires a company admin API key. Rate limit: 1200 per minute.
callcenters.create
- DeleteDestructive
Call Centers -- Delete. Deletes a call center by id. Requires a company admin API key. Rate limit: 1200 per minute.
callcenters.delete
- GetRead-only
Call Centers -- Get. Gets a call center by id. Rate limit: 1200 per minute.
callcenters.get
- Get StatusRead-only
Call Centers -- Status. Get live operational metrics for a call center: availability status, available operator count, queued calls, longest wait time, and on-duty operator count. Rate limit: 1200 per minute.
callcenters.get_status
- ListRead-only
Call Centers -- List. Gets all the call centers for an office. Rate limit: 1200 per minute.
callcenters.list
- ListallRead-only
Call Centers -- List. Gets all the call centers for the company. Rate limit: 1200 per minute.
callcenters.listall
- Operators.AddDestructive
Operator -- Add. Adds an operator to a call center. > Warning > > This API may result in the usage of call center licenses if required and available. If the licenses are required and not available the operation will fail. Licenses are required when adding an operator that does not have a call center license. Rate limit: 1200 per minute.
callcenters.operators.add
- Operators.DeleteDestructive
Operator -- Remove. Removes an operator from a call center. Note: This API will not change or release any licenses. Rate limit: 1200 per minute.
callcenters.operators.delete
- Operators.Get Duty StatusRead-only
Operator -- Get Duty Status. Gets the operator's on duty status and reason. Rate limit: 1200 per minute.
callcenters.operators.get_duty_status
- Operators.Get Skill LevelRead-only
Operator -- Get Skill Level. Gets the skill level of an operator within a call center. Rate limit: 1200 per minute.
callcenters.operators.get_skill_level
- Operators.ListRead-only
Operators -- List. List all operators (users and rooms) assigned to a call center. Returns operator names, roles, and on-duty status. Rate limit: 1200 per minute.
callcenters.operators.list
- Operators.Update Duty StatusWrite
Operator -- Update Duty Status. Updates the operator's duty status for all call centers which user belongs to. Rate limit: 1200 per minute.
callcenters.operators.update_duty_status
- Operators.Update Skill LevelWrite
Operator -- Update Skill Level. Updates the skill level of an operator within a call center. Rate limit: 1200 per minute.
callcenters.operators.update_skill_level
- Queue.ListRead-only
Call Centers -- Queue. List the calls and callbacks currently waiting in a call center's queue, ordered oldest-queued first. Includes calls that are ringing an operator but not yet answered. Rate limit: 30 per minute.
callcenters.queue.list
- UpdateWrite
Call Centers -- Update. Updates a call center by id. Requires a company admin API key. Rate limit: 1200 per minute.
callcenters.update
Call
- Add LabelsWrite
Label -- Add. Adds labels to a determined call id, keeping any labels already on the call. A label already present is not duplicated. Labels cannot be removed through this endpoint. Rate limit: 250 per minute.
call.add_labels
- AssignWrite
Call -- Assign Operator. Assigns an operator to a call queued in a contact center. Only contact center calls are eligible for this operation. Currently supports assigning one operator per request. Rate limit: 12 per minute.
call.assign
- Get Ai RecapRead-only
Call -- Get Ai Recap. Gets the Ai Recap for a call. Requires scope: ``ai_recap`` Rate limit: 12 per minute.
call.get_ai_recap
- Get Assigned OperatorsRead-only
Call -- Assigned Operators. Get all assigned operators from a call queued in a contact center. Only contact center calls are eligible for this operation. Rate limit: 250 per minute.
call.get_assigned_operators
- Get Call InfoRead-only
Call -- Get. Get call status and detailed information for a concluded call, including direction, duration, recording URLs, CSAT scores, voicemail metadata, and transcription text. Also returns routing_breadcrumbs, which is only populated for calls routed through a customer-configured API Call Router and is empty for every other call. Rate limit: 10 per minute.
call.get_call_info
- HangupDestructive
Call Actions -- Hang up. Hangs up the call. Rate limit: 1200 per minute.
call.hangup
- InitiateDestructive
Call -- Initiate via Ring. Initiates an outbound call to ring all devices (or a single specified device). Note that the user must have at least one active device (a web, desktop or mobile Dialpad app; a CTI application; or a physical deskphone). Rate limit: 5 per minute.
call.initiate
- Initiate Ivr CallDestructive
Call -- Initiate IVR Call. Initiates an outbound call to ring an IVR Workflow. Rate limit: 10 per minute per IVR. Rate limit: 1200 per minute.
call.initiate_ivr_call
- ListRead-only
Call -- List. Provides a paginated list of calls matching the specified filter parameters in reverse-chronological order by call start time (i.e. recent calls first) Note: This API will only include calls that have already concluded. When no target is specified, company-level API keys and company admins list all of the company's calls, and other user-level API keys list the authenticated user's own calls. Requires scope: ``calls:list`` Rate limit: 1200 per minute.
call.list
- Participants.AddDestructive
Call -- Add Participant. Adds another participant to a call. Valid methods to add are by phone or by target. Targets require to have a primary phone Rate limit: 1200 per minute.
call.participants.add
- Transfer CallDestructive
Call -- Transfer. Transfers call to another recipient. Rate limit: 1200 per minute.
call.transfer_call
- Unassign All Call OperatorsWrite
Call -- Unassign All Call Operators. Unassigns all assigned operators from a call queued in a contact center. Only contact center calls are eligible for this operation. Rate limit: 12 per minute.
call.unassign_all_call_operators
- Unassign OperatorWrite
Call -- Unassign Call Operator. Unassigns an operator from a call queued in a contact center. Only contact center calls are eligible for this operation. Currently supports unassigning one specific operator per request. Rate limit: 12 per minute.
call.unassign_operator
- UnparkWrite
Call -- Unpark. Unparks a call previously parked on an Office mainline, routing it to the specified user. Rate limit: 1200 per minute.
call.unpark
Numbers
- AssignDestructive
Dialpad Number -- Assign. Assigns a specific phone number to a target. Use this when the number to assign is already known; use the auto-assign endpoint to let Dialpad pick one. Valid targets are a user or department, an office, room, callcenter, callrouter, staffgroup, channel or coachinggroup. Rate limit: 1200 per minute.
numbers.assign
- Assign Call Router Number.PostDestructive
Dialpad Number -- Assign. Assigns a number to a callrouter. The number will automatically be taken from the company's reserved pool if there are reserved numbers, otherwise a number will be auto-assigned from the provided area code. Rate limit: 1200 per minute.
numbers.assign_call_router_number.post
- Assign Office Number.PostDestructive
Dialpad Number -- Assign. Assigns a number to a office. The number will automatically be taken from the company's reserved pool if there are reserved numbers, otherwise a number will be auto-assigned from the provided area code. Rate limit: 1200 per minute.
numbers.assign_office_number.post
- Assign Room Number.PostDestructive
Dialpad Number -- Assign. Assigns a number to a room. The number will automatically be taken from the company's reserved block if there are reserved numbers, otherwise a number will be auto-assigned from the provided area code. Rate limit: 1200 per minute.
numbers.assign_room_number.post
- Auto AssignDestructive
Dialpad Number -- Auto-Assign. Assigns an automatically selected phone number to a target and returns the number that was chosen. The number is taken from the company's reserved pool if one exists, otherwise a new number is allocated from the provided area code. Use the assign endpoint instead when a specific number is required. Target includes user, department, office, room, callcenter and callrouter, plus staffgroup, channel and coachinggroup. Rate limit: 1200 per minute.
numbers.auto_assign
- GetRead-only
Dialpad Number -- Get. Gets the details of a single phone number: its type, area code, status, and the target it is assigned to. Requires a company admin API key. Rate limit: 1200 per minute.
numbers.get
- ListRead-only
Dialpad Number -- List. Lists the phone numbers in your company, each with its type, area code, status and the target it is assigned to. Filter by status to find numbers in a particular state, or by area code to find numbers in a particular region. Requires a company admin API key. Rate limit: 1200 per minute.
numbers.list
- Office Unassign Number.PostDestructive
Dialpad Number -- Unassign. Un-assigns a phone number from a office mainline. The number will be returned to the company's reserved pool if there is one. Otherwise the number will be released. Rate limit: 1200 per minute.
numbers.office_unassign_number.post
- Room Unassign Number.PostDestructive
Dialpad Number -- Unassign. Un-assigns a phone number from a room. The number will be returned to the company's reserved pool if there is one. Otherwise the number will be released. Rate limit: 1200 per minute.
numbers.room_unassign_number.post
- SwapDestructive
Dialpad Number -- Swap. Replaces a target's primary phone number with a different one and returns the new number. The old number is released. How the replacement is chosen depends on swap_details: give a specific number to swap to that number (it must already be in the company's reserved pool, and the company must have the reserved_pool experiment enabled), give an area code to take an available number from that area code, or omit swap_details to have one chosen automatically from the reserved pool, falling back to the target's office area code. Rate limit: 1200 per minute.
numbers.swap
- UnassignDestructive
Dialpad Number -- Unassign. Un-assigns a phone number from its target. This does not delete the number: it returns to the company's reserved pool if one exists, and can be reassigned later. Pass "release" to give the number up entirely instead, which cannot be undone. Rate limit: 1200 per minute.
numbers.unassign
Offices
- CreateDestructive
Office -- Create. Creates a secondary office. This provisions a billed entity: currency, plan period and a billing address are all required, and the new office counts against the company's office limit. There is no corresponding delete endpoint, so an office created here can only be removed by support. Rate limit: 1200 per minute.
offices.create
- E911.GetRead-only
E911 Address -- Get. Gets E911 address of the office by office id. Rate limit: 1200 per minute.
offices.e911.get
- E911.UpdateWrite
E911 Address -- Update. Update E911 address of the given office. Rate limit: 1200 per minute.
offices.e911.update
- GetRead-only
Office -- Get. Gets an office by id. Rate limit: 1200 per minute.
offices.get
- ListRead-only
Office -- List. Gets the offices in the company. The result set depends on the caller: company admins get every office, while a user-level key gets only the offices that user belongs to. Rate limit: 1200 per minute.
offices.list
- Offdutystatuses.GetRead-only
Off-Duty Status -- List. Lists Off-Duty status values. Rate limit: 1200 per minute.
offices.offdutystatuses.get
- Operators.DeleteDestructive
Operator -- Remove. Removes an operator from office's mainline. Rate limit: 1200 per minute.
offices.operators.delete
- Operators.GetRead-only
Operator -- List. Gets mainline operators for an office. Rate limit: 1200 per minute.
offices.operators.get
- Operators.PostWrite
Operator -- Add. Adds an operator into office's mainline. Rate limit: 1200 per minute.
offices.operators.post
- Primary.GetRead-only
Office -- Get Primary. Gets the primary office for the company. Rate limit: 1200 per minute.
offices.primary.get
- UpdateWrite
Office -- Update. Updates an office's business hours. Only the hours-of-operation fields listed below can be changed here -- name, billing and routing settings are not editable through this endpoint. Rate limit: 1200 per minute.
offices.update
Departments
- CreateWrite
Departments -- Create. Create a new department in the specified office. Requires name and office_id. Requires a company admin API key. Rate limit: 1200 per minute.
departments.create
- DeleteDestructive
Departments -- Delete. Permanently delete a department. This removes the department and all its configuration. Cannot be undone. Requires a company admin API key. Rate limit: 1200 per minute.
departments.delete
- GetRead-only
Department -- Get. Gets a department by id. Rate limit: 1200 per minute.
departments.get
- ListRead-only
Department -- List. Gets all the departments for an office. Rate limit: 1200 per minute.
departments.list
- ListallRead-only
Department -- List. Gets all the departments in the company. Rate limit: 1200 per minute.
departments.listall
- Operators.AddWrite
Operator -- Add. Add a user or room as an operator to a department. Specify operator_type (user or room) and optional role (operator or admin). Rate limit: 1200 per minute.
departments.operators.add
- Operators.DeleteDestructive
Operator -- Remove. Remove an operator (user or room) from a department. Specify operator_id and operator_type. Rate limit: 1200 per minute.
departments.operators.delete
- Operators.ListRead-only
Operator -- List. List all operators (users and rooms) assigned to a department. Returns operator names, roles, and on-duty status. Rate limit: 1200 per minute.
departments.operators.list
- UpdateWrite
Departments -- Update. Updates an existing department. Requires a company admin API key. Rate limit: 1200 per minute.
departments.update
Accesscontrolpolicies
- AssignWrite
Access Control Policies -- Assign. Assigns a user to an access control policy. Requires a company admin API key. Rate limit: 1200 per minute.
accesscontrolpolicies.assign
- AssignmentsRead-only
Access Control Policies -- List Assignments. Lists all users assigned to this access control policy. Rate limit: 1200 per minute.
accesscontrolpolicies.assignments
- CreateWrite
Access Control Policies -- Create. Creates a new custom access control policy. Requires a company admin API key. Rate limit: 1200 per minute.
accesscontrolpolicies.create
- DeleteDestructive
Access Control Policies -- Delete. Deletes a policy by marking the state as deleted, and removing all associated users. Requires a company admin API key. Rate limit: 1200 per minute.
accesscontrolpolicies.delete
- GetRead-only
Access Control Policies -- Get. Get a specific access control policy's details. Rate limit: 1200 per minute.
accesscontrolpolicies.get
- ListRead-only
Access Control Policies -- List Policies. Gets all access control policies belonging to the company. Rate limit: 1200 per minute.
accesscontrolpolicies.list
- UnassignWrite
Access Control Policies -- Unassign. Unassigns one or all target groups associated with the user for an access control policy. Requires a company admin API key. Rate limit: 1200 per minute.
accesscontrolpolicies.unassign
- UpdateWrite
Access Control Policies -- Update. Updates the provided fields for an existing access control policy. Requires a company admin API key. Rate limit: 1200 per minute.
accesscontrolpolicies.update
Meetings
- Conference-Meetings.ListRead-only
Meeting Summary -- List. Lists summaries of meetings that have occurred in the specified meeting room. Requires scope: ``conference:read`` Rate limit: 1200 per minute.
meetings.conference-meetings.list
- Conference-Rooms.ListRead-only
Meeting Room -- List. Lists all conference rooms. Requires scope: ``conference:read`` Rate limit: 1200 per minute.
meetings.conference-rooms.list
- Meetings.CreateWrite
Dialpad Meeting -- Create. Creates a Dialpad meeting. Requires scope: ``conference:all`` Rate limit: 1200 per minute.
meetings.meetings.create
- Meetings.DeleteDestructive
Dialpad Meeting -- Delete. Deletes a Dialpad meeting. Requires scope: ``conference:all`` Rate limit: 1200 per minute.
meetings.meetings.delete
- Meetings.GetRead-only
Dialpad Meeting -- Get. Gets a Dialpad meeting. Requires scope: ``conference:all`` Rate limit: 1200 per minute.
meetings.meetings.get
- Meetings.ListRead-only
Dialpad Meeting -- List. Lists all Dialpad meetings for a specified user. Requires scope: ``conference:all`` Rate limit: 1200 per minute.
meetings.meetings.list
- Meetings.Room.CreateWrite
Meeting Room -- Create. Creates a meeting room (personal or unique meeting). Requires scope: ``conference:all`` Rate limit: 1200 per minute.
meetings.meetings.room.create
- Meetings.UpdateWrite
Dialpad Meeting -- Update. Updates a Dialpad meeting. Requires scope: ``conference:all`` Rate limit: 1200 per minute.
meetings.meetings.update
Channels
- CreateWrite
Channel -- Create. Creates a new channel. Rate limit: 1200 per minute.
channels.create
- DeleteDestructive
Channel -- Delete. Deletes a channel by id. Rate limit: 1200 per minute.
channels.delete
- GetRead-only
Channel -- Get. Get channel by id Rate limit: 1200 per minute.
channels.get
- ListRead-only
Channel -- List. Lists all channels in the company. Rate limit: 1200 per minute.
channels.list
- Members.AddWrite
Member -- Add. Adds a user to a channel. Rate limit: 1200 per minute.
channels.members.add
- Members.DeleteDestructive
Member -- Remove. Removes a member from a channel. Rate limit: 1200 per minute.
channels.members.delete
- Members.ListRead-only
Members -- List. List all the members from a channel Rate limit: 1200 per minute.
channels.members.list
Contacts
- CreateWrite
Contact -- Create. Creates a new contact. Rate limit: 100 per minute.
contacts.create
- Create With UidWrite
Contact -- Create or Update. Creates a new shared contact with uid. Rate limit: 100 per minute.
contacts.create_with_uid
- DeleteDestructive
Contact -- Delete. Deletes a contact by id. Rate limit: 1200 per minute.
contacts.delete
- GetRead-only
Contact -- Get. Gets a contact by id. Currently, only contacts of type shared and local can be retrieved by this API. Rate limit: 1200 per minute.
contacts.get
- ListRead-only
Contact -- List. Gets company shared contacts, or user's local contacts if owner_id is provided. NOTE: The `limit` parameter has been soft-deprecated. Please omit the `limit` parameter, or reduce it to `100` or less. - Limit values of greater than `100` will only produce a page size of `100`, and a `400 Bad Request` response will be produced 20% of the time in an effort to raise visibility of side-effects that might otherwise go un-noticed by solutions that had assumed a larger page size. - The `cursor` value is provided in the response, and can be passed as a parameter to retrieve subsequent pages of results. Rate limit: 1200 per minute.
contacts.list
- SearchRead-only
Contact -- Search. Searches local, shared, and lead contacts the API key may read within its company. All filters must match (AND). Contacts sharing an identifier are returned separately. Results may lag behind updates. A short or empty page may still include a next-page cursor. Empty items and external_ids are omitted. The cursor is omitted when the search is complete. Rate limit: 1200 per minute.
contacts.search
- UpdateWrite
Contact -- Update. Updates the provided fields for an existing contact. Rate limit: 1200 per minute.
contacts.update
Deskphones
- Rooms.Create International PinWrite
Room Phone -- Assign PIN. Assigns a PIN for making international calls from rooms When PIN protected international calls are enabled for the company, a PIN is required to make international calls from room phones. Requires a company admin API key. Rate limit: 1200 per minute.
deskphones.rooms.create_international_pin
- Rooms.DeleteDestructive
Room Phone -- Delete. Deletes a room desk phone by id. Rate limit: 1200 per minute.
deskphones.rooms.delete
- Rooms.GetRead-only
Room Phone -- Get. Gets a room desk phone by id. Rate limit: 1200 per minute.
deskphones.rooms.get
- Rooms.ListRead-only
Room Phone -- List. Gets all desk phones under a room. Rate limit: 1200 per minute.
deskphones.rooms.list
- Users.DeleteDestructive
Desk Phone -- Delete. Deletes a user desk phone by id. Rate limit: 1200 per minute.
deskphones.users.delete
- Users.GetRead-only
Desk Phone -- Get. Gets a user desk phone by id. Rate limit: 1200 per minute.
deskphones.users.get
- Users.ListRead-only
Desk Phone -- List. Gets all desk phones under a user. Rate limit: 1200 per minute.
deskphones.users.list
Company
- GetRead-only
Company -- Get. Gets company information: name, primary office, admin contact, plan state and billing address. Rate limit: 1200 per minute.
company.get
- Get Ai SettingsRead-only
Company -- Get AI Settings. Gets the company-level AI settings: whether Call AI is enabled and whether the company allows its data to be used for AI training. Rate limit: 1200 per minute.
company.get_ai_settings
- Sms Opt OutRead-only
Company -- Get SMS Opt-out List. Lists the external phone numbers that have opted out of (or back in to) SMS from this company, filtered by opt-out state and optionally by A2P campaign. Use this before sending SMS to confirm a recipient has not opted out. Requires a company admin API key. Rate limit: 250 per minute.
company.sms_opt_out
- UpdateWrite
Company -- Update. Updates the company's name. For a company with a single office, the office is renamed too. Only an admin of the company acting as a user can call this: a missing user credential gets a 401, and a user who is not an admin of this company gets a 403. Rate limit: 1200 per minute.
company.update
- Update Ai SettingsWrite
Company -- Update AI Settings. Updates the company-level AI settings, and syncs the change to the enterprise the same way the admin portal does. Settings that are omitted are left unchanged, and a setting cannot be cleared, so an explicit null is rejected with a 400, as is a request that sets nothing. A company-level API key can call this without a user credential. Any other caller must be a company admin, the admin of a single-office company, or have write access to AI settings: a missing user credential gets a 401, and any other caller gets a 403. Rate limit: 1200 per minute.
company.update_ai_settings
- Update SettingsWrite
Company -- Update Settings. Updates company settings. Requires a company admin API key. Rate limit: 1200 per minute.
company.update_settings
Scheduled Messages
- CreateDestructive
Schedule -- Create. Creates a new scheduled message that will be sent at the specified time. Messages can be sent to multiple phone numbers OR to a Dialpad channel. Supports both SMS (text only) and MMS (text with media attachments). Rate limit: 1200 per minute.
scheduled_messages.create
- DeleteDestructive
Schedule -- Delete. Deletes (cancels) a scheduled message. The message will not be sent. Rate limit: 1200 per minute.
scheduled_messages.delete
- GetRead-only
Schedule -- Get. Gets a single scheduled message by ID. Rate limit: 1200 per minute.
scheduled_messages.get
- ListRead-only
Schedule -- List. Lists all active scheduled messages for the authenticated user. Only active (pending) schedules are returned. Deleted or sent schedules are not included. Results can be paginated using the cursor parameter. Rate limit: 1200 per minute.
scheduled_messages.list
- Send NowDestructive
Schedule -- Send Now. Immediately sends a scheduled message and deletes the schedule. This is useful for testing or when you want to send a scheduled message before its scheduled time. Rate limit: 1200 per minute.
scheduled_messages.send_now
- UpdateWrite
Schedule -- Update. Updates an existing scheduled message. Supports partial updates. Only the fields provided in the request will be updated. Fields not provided will retain their existing values. This follows PATCH semantics. Rate limit: 1200 per minute.
scheduled_messages.update
Callrouters
- CreateWrite
Call Router -- Create. Creates a new API-based call router. Rate limit: 1200 per minute.
callrouters.create
- DeleteDestructive
Call Router -- Delete. Deletes the API call router with the given ID. Rate limit: 1200 per minute.
callrouters.delete
- GetRead-only
Call Router -- Get. Gets the API call router with the given ID. Rate limit: 1200 per minute.
callrouters.get
- ListRead-only
Call Router -- List. Lists all of the API call routers for a given company or office. Rate limit: 1200 per minute.
callrouters.list
- UpdateWrite
Call Router -- Update. Updates the API call router with the given ID. Rate limit: 1200 per minute.
callrouters.update
Coaching Team
- GetRead-only
Coaching Team -- Get. Get details of a specified coaching team. Rate limit: 1200 per minute.
coaching_team.get
- ListRead-only
Coaching Team -- List. Get a list of coaching teams of a office. Rate limit: 1200 per minute.
coaching_team.list
- ListallRead-only
Coaching Team -- List. Get a list of all coaching teams in the company. Rate limit: 1200 per minute.
coaching_team.listall
- Members.AddWrite
Coaching Team -- Add Member. Add a user to the specified coaching team as trainee or coach. Rate limit: 1200 per minute.
coaching_team.members.add
- Members.GetRead-only
Coaching Team -- List Members. List all members of a coaching team with their roles (coach or trainee), contact info, and availability status. Rate limit: 1200 per minute.
coaching_team.members.get
Dispositions
- CreateWrite
Dispositions -- Create. Creates a disposition for an office. Rate limit: 1200 per minute.
dispositions.create
- DeleteDestructive
Dispositions -- Delete. Deletes the disposition by id. Rate limit: 1200 per minute.
dispositions.delete
- GetRead-only
Dispositions -- Get. Gets a disposition by id. Rate limit: 1200 per minute.
dispositions.get
- ListRead-only
Dispositions -- List. Gets a list of dispositions by a target. Rate limit: 1200 per minute.
dispositions.list
- UpdateWrite
Dispositions -- Update. Updates the disposition by id. Bulk updates for the targets assigned to a disposition is not supported. Rate limit: 1200 per minute.
dispositions.update
Rooms
- DeleteDestructive
Room -- Delete. Deletes a room by id. Rate limit: 1200 per minute.
rooms.delete
- GetRead-only
Room -- Get. Gets a room by id. Rate limit: 1200 per minute.
rooms.get
- ListRead-only
Room -- List. Gets all rooms in your company, optionally filtering by office. Rate limit: 1200 per minute.
rooms.list
- PatchWrite
Room -- Update. Updates room details by id. Rate limit: 1200 per minute.
rooms.patch
- PostWrite
Room -- Create. Creates a new room. Rate limit: 1200 per minute.
rooms.post
Schedule Reports
- CreateWrite
schedule reports -- Create. Creates a schedule reports subscription for your company. An endpoint_id is required in order to receive the event payload and can be obtained via websockets or webhooks. A schedule reports is a mechanism to schedule daily, weekly or monthly record and statistics reports. Rate limit: 1200 per minute.
schedule_reports.create
- DeleteDestructive
Schedule reports -- Delete. Deletes a schedule report subscription by id. A schedule report is a mechanism to schedule daily, weekly or monthly record and statistics reports. Rate limit: 1200 per minute.
schedule_reports.delete
- GetRead-only
Schedule reports -- Get. Gets a schedule report subscription by id. A schedule report is a mechanism to schedule daily, weekly or monthly record and statistics reports. Rate limit: 1200 per minute.
schedule_reports.get
- ListRead-only
Schedule reports -- List. Lists all schedule reports subscription for a company. A schedule report is a mechanism to schedule daily, weekly or monthly record and statistics reports. Rate limit: 1200 per minute.
schedule_reports.list
- UpdateWrite
Schedule reports -- Update. Updates a schedule report subscription by id. A schedule report is a mechanism to schedule daily, weekly or monthly record and statistics reports. Rate limit: 1200 per minute.
schedule_reports.update
Websockets
- CreateWrite
Websocket -- Create. Creates a new websocket for your company. A unique websocket ID will be generated when successfully creating a websocket. A websocket ID is to be required when creating event subscriptions. One websocket ID can be shared between multiple event subscriptions. When triggered, events will be accessed through provided websocket_url under websocket. The url will be expired after 1 hour. Please use the GET websocket API to regenerate url rather than creating new ones. If a secret is provided, the websocket events will be encoded and signed in the JWT format using the shared secret with the HS256 algorithm. The JWT payload should be decoded and the signature verified to ensure that the event came from Dialpad. If no secret is provided, unencoded events will be sent in the JSON format. It is recom
websockets.create
- DeleteDestructive
Websocket -- Delete. Deletes a websocket by id. Rate limit: 1200 per minute.
websockets.delete
- GetRead-only
Websocket -- Get. Gets a websocket by id. Rate limit: 1200 per minute.
websockets.get
- ListRead-only
Websocket -- List. Gets a list of all the websockets that are associated with the company. Rate limit: 1200 per minute.
websockets.list
- UpdateWrite
Websocket -- Update. Updates a websocket by id. Rate limit: 1200 per minute.
websockets.update
Blockednumbers
- AddWrite
Blocked Number -- Add. Blocks the given phone numbers company-wide, so that inbound calls and texts from them are rejected for every user in the company. Returns no content on success. Blocking is reversible via the remove endpoint. Rate limit: 1200 per minute.
blockednumbers.add
- GetRead-only
Blocked Number -- Get. Checks whether a single phone number is blocked company-wide. Returns the number if it is blocked, and 404s if it is not blocked or was blocked outside the API. Rate limit: 1200 per minute.
blockednumbers.get
- ListRead-only
Blocked Numbers -- List. Lists the phone numbers blocked company-wide through the API. Numbers blocked by other means are not included. Rate limit: 1200 per minute.
blockednumbers.list
- RemoveWrite
Blocked Number -- Remove. Unblocks the given phone numbers company-wide, restoring inbound calls and texts from them. Returns no content on success. Rate limit: 1200 per minute.
blockednumbers.remove
Bulk Messages
- GetRead-only
Bulk Message -- Get. Gets a single bulk message by ID. Rate limit: 1200 per minute.
bulk_messages.get
- ListRead-only
Bulk Message -- List. Lists all bulk messages for the authenticated user. Results can be paginated using the cursor parameter. Rate limit: 1200 per minute.
bulk_messages.list
- SendDestructive
Bulk Message -- Send. Sends a bulk message to multiple recipients (up to 50). This endpoint allows you to send the same message to multiple phone numbers. All existing logic (including spam checks, delivery behavior, and visibility in the Bulk Messages UI tab) will remain the same for API-triggered sends. **Important**: Message sending is asynchronous. This endpoint creates the bulk message batch and returns immediately with success=True, indicating the batch was created successfully. Individual messages are sent in the background. To check the delivery status of individual recipients, use the GET /message/bulk/{id} endpoint to retrieve the batch with delivery status information (attempted_send, error_message, delivery_status fields per recipient). Rate limit: 1200 per minute.
bulk_messages.send
- UpdateWrite
Bulk Message -- Update. Updates a bulk message text and/or media. Supports partial updates. Only the fields provided in the request will be updated. Fields not provided will retain their existing values. This follows PATCH semantics. Rate limit: 1200 per minute.
bulk_messages.update
Call Review Share Link
- CreateWrite
Call Review Sharelink -- Create. Create a call review share link by call id. Rate limit: 250 per minute.
call_review_share_link.create
- DeleteDestructive
Call Review Sharelink -- Delete. Delete a call review share link by id. Rate limit: 1200 per minute.
call_review_share_link.delete
- GetRead-only
Call Review Sharelink -- Get. Gets a call review share link by call id. Rate limit: 1200 per minute.
call_review_share_link.get
- UpdateWrite
Call Review Sharelink -- Update. Update a call review share link by id. Rate limit: 250 per minute.
call_review_share_link.update
Ivr
- AssignWrite
Custom IVR -- Assign. Assigns an already-created IVR recording to a target for a given IVR type, replacing whatever was previously assigned. This selects which existing recording plays; it does not change the recording's own name or description. Rate limit: 1200 per minute.
ivr.assign
- CreateWrite
Custom IVR -- Create. Creates a new custom IVR recording for a target. The audio is supplied in the "file" field as a Base64-encoded MP3. Returns the created IVR, including the id needed to assign it to a target. Rate limit: 1200 per minute.
ivr.create
- DeleteDestructive
Custom IVR -- Delete. Un-assigns an IVR recording from a target for a given IVR type and deletes the recording. The target falls back to its default behaviour for that IVR type. Rate limit: 1200 per minute.
ivr.delete
- Update DetailsWrite
Custom IVR -- Update. Renames an existing IVR recording or changes its description. This edits the recording's own metadata only; it does not change which target the recording is assigned to and does not replace the audio. Rate limit: 1200 per minute.
ivr.update_details
Recording Share Link
- CreateWrite
Recording Sharelink -- Create. Creates a recording share link. Rate limit: 100 per minute.
recording_share_link.create
- DeleteDestructive
Recording Sharelink -- Delete. Deletes a recording share link by id. Rate limit: 1200 per minute.
recording_share_link.delete
- GetRead-only
Recording Sharelink -- Get. Gets a recording share link by id. Rate limit: 1200 per minute.
recording_share_link.get
- UpdateWrite
Recording Sharelink -- Update. Updates a recording share link by id. Rate limit: 100 per minute.
recording_share_link.update
Scorecards
- Export.CreateWrite
Scorecards export -- Initiate Processing. Begins processing a scorecards export asynchronously, returning a request id to get the status and retrieve the results by calling GET /scorecards/export/{request_id}. Scorecards for the whole company will be processed by default. A target_id and target_type can be provided to limit the export to a single target. Rate limit: 250 per minute.
scorecards.export.create
- Export.GetRead-only
Scorecards export -- Get Result. Gets the progress and result of a scorecards report request. Rate limit: 1200 per minute.
scorecards.export.get
- GetRead-only
Scorecards -- Get. Gets a scorecard by id. Rate limit: 1200 per minute.
scorecards.get
- ListRead-only
Scorecards -- List. Gets a list of scorecards of a target. Rate limit: 1200 per minute.
scorecards.list
Anonymization
- CallcontentDestructive
Call Content -- Delete (Bulk). Removes call recordings, screen recordings, transcripts, and AI data from the specified calls. The call records themselves are preserved. This operation is asynchronous — queues a task and returns a request_id for status polling. Rate limit: 10 per minute.
anonymization.callcontent
- ContactsDestructive
Anonymize -- Contacts (Bulk). Anonymizes the specified contacts by removing all PII (name, phone, email, etc). Call recordings and AI data associated with these contacts are also removed. This operation is asynchronous — queues one task per contact and returns a request_id for status polling. Rate limit: 10 per minute.
anonymization.contacts
- Requests.GetRead-only
Anonymization Request -- Get. Returns the current status of an anonymization request. Rate limit: 1200 per minute.
anonymization.requests.get
Recordings
- Admin Call.DownloadRead-only
Admin Call Recording -- Download. Downloads an admin recording through its share-link ID as a bounded base64 result.
recordings.admin_call.download
- Call.DownloadRead-only
Call Recording -- Download. Downloads completed call audio as a bounded base64 result; requires recordings_export scope.
recordings.call.download
- Voicemail.DownloadRead-only
Voicemail Recording -- Download. Downloads voicemail audio as a bounded base64 result; requires recordings_export scope.
recordings.voicemail.download
Callback
- EnqueueDestructive
Call Back -- Enqueue. Requests a call back to a given number by an operator in a given call center, and returns the request's position in the queue. The call back joins the call center queue like a regular call and dials out when the next operator becomes available, respecting the call center's business and holiday hours and queue settings. International call backs are not supported, and a duplicate call back for the same number and call center is rejected. Rate limit: 1200 per minute.
callback.enqueue
- ValidateWrite
Call Back -- Validate. Performs a dry run of a callback request without adding it to the call center queue and without placing any call. Runs the same validation as enqueuing would, so it reports the same failures (unreachable number, international destination, duplicate request, call center closed) up front. Returns whether the request would succeed. Rate limit: 1200 per minute.
callback.validate
Stats
- Export.CreateWrite
Stats -- Initiate Processing. Begins processing statistics asynchronously, returning a request id to get the status and retrieve the results by calling GET /stats/{request_id}. Stats for the whole company will be processed by default. An office_id can be provided to limit stats to a single office. A target_id and target_type can be provided to limit stats to a single target. Rate limit: 200 per hour.
stats.export.create
- Export.GetRead-only
Stats -- Get Result. Gets the progress and result of a statistics request. Rate limit: 1200 per minute.
stats.export.get
Transcripts
- GetRead-only
Call Transcript -- Get. Gets the Dialpad AI transcript of a call, including moments. Rate limit: 1200 per minute.
transcripts.get
- Get UrlRead-only
Call Transcript -- Get URL. Gets the transcript url of a call. Rate limit: 1200 per minute.
transcripts.get_url
Userdevices
- GetRead-only
User Device -- Get. Get details of a specific device including its type, display name, phone number, and registration dates. Rate limit: 1200 per minute.
userdevices.get
- ListRead-only
User Device -- List. List registered devices for a user, including desk phones, softphones, and mobile apps. Returns device type, display name, phone number, and registration dates. Rate limit: 1200 per minute.
userdevices.list
Wfm
- Wfm-Metrics-Activity.GetRead-only
Activity Metrics. Returns paginated, activity-level metrics for specified agents. Rate limit: 1200 per minute.
wfm.wfm-metrics-activity.get
- Wfm-Metrics-Agent.GetRead-only
Agent Metrics. Returns paginated, detailed agent-level performance metrics. Rate limit: 1200 per minute.
wfm.wfm-metrics-agent.get
Agentgroup
- GetRead-only
Agent Group -- Get. Requires scope: ``agent_groups:read`` Rate limit: 1200 per minute.
agentgroup.get
App Settings
- GetRead-only
App Settings -- Get. Gets the app settings of the OAuth app that is associated with the API key for the target, if target_type and target_id are provided. Otherwise, will return the app settings for the company. Rate limit: 1200 per minute.
app_settings.get
Available Licenses
- ListRead-only
Licenses -- List Available. Gets how many licenses of each line type an office has purchased but not yet assigned, so a count of zero for a line type means a new user or room of that type cannot be added without buying more. Rate limit: 1200 per minute.
available_licenses.list
Available Numbers
- ListRead-only
Dialpad Number -- List Available. Searches the phone numbers that are available to assign, in the country of the user's office. Search by area code, city or the first digits of a number, and page through the results with the cursor. The search has these fallbacks: - A toll-free search with no matches returns any available toll-free numbers instead. - For a US search that has run out of results, the response lists overlaying_area_codes: other area codes that serve the same region, to search next. - When nothing matches an international search, set country_fallback to get numbers from the whole country instead; the response then has search_extended_to_country set. Requires a user API key. Rate limit: 1200 per minute.
available_numbers.list
Call Labels
- ListRead-only
Label -- List. Gets all labels for a determined company. Rate limit: 1200 per minute.
call_labels.list
Callbacks
- ListRead-only
Call Back -- List. Lists the callback requests waiting in a call center's queue, oldest first, so the first result has been waiting longest. Each callback reports the number to call back, when it was queued, and a status that is either "queued" while the request is still waiting for an operator or "timed_out" once it waited longer than the call center's max_hold_seconds. Queued callbacks carry their position in the queue; timed-out ones do not. The API key must have admin rights on the specified call center; this is a per-call-center check rather than a company-wide admin requirement. Rate limit: 1200 per minute.
callbacks.list
Caller Id
- Users.GetRead-only
Caller ID -- Get. List all available Caller IDs and the active Caller ID for a given user ID Rate limit: 1200 per minute.
caller_id.users.get
Custom Ivrs
- ListRead-only
Custom IVR -- List. Lists the custom IVR recordings configured on a target, such as greetings, hold music and menu prompts. A target can have many IVRs of different types, so pass ivr_type to narrow the results to one kind. Rate limit: 1200 per minute.
custom_ivrs.list
Digital
- Sessions.ListRead-only
Digital -- Sessions -- List. Gets list of digital sessions which are started/ended in the requested period. Requested period must be less than 7 days. Requires scope: ``digital_sessions`` Rate limit: 100 per minute.
digital.sessions.list
Fax
- SendDestructive
Fax -- Send. Sends a fax to a phone number. Rate limit: 250 per minute.
fax.send
Faxline
- AssignDestructive
Fax Line -- Assign. Assigns a fax line to a target. Target includes user and department. Depending on the chosen line type, the number will be taken from the company's reserved pool if there are available reserved numbers, otherwise numbers can be auto-assigned using a provided area code. Requires a company admin API key. Rate limit: 1200 per minute.
faxline.assign
Number Tags
- UpdateWrite
Number Tags -- Update tags for a phone number.. Sets the contact preferences for a phone number company-wide. "do_not_call" blocks outbound calls to the number and "do_not_text" blocks outbound texts. Returns the resulting preferences. Either preference can be turned back off by sending the opposite value. Requires a company admin API key. Rate limit: 1200 per minute.
number_tags.update
Office Plan
- GetRead-only
Billing Plan -- Get. Gets an office's billing plan: how many licenses of each line type the office has purchased, its remaining calling-credit balance, and the start of the next billing cycle. This reports licenses that are paid for, not how many are free to assign. Rate limit: 1200 per minute.
office_plan.get
Phone Number
- FormatWrite
Phone String -- Reformat. Converts a phone number between local and E.164 format. Returns the E.164 number, the formatted local number, the area code, and the ISO country code. Rate limit: 1200 per minute.
phone_number.format
Reports
- Scheduledstats.DownloadRead-only
Report Download API -- Download scheduled stats. Downloads the requested scheduled report when available. The official page documents the report type user_voiceline and a YYYY-MM-DD date, but does not publish a success content type or response schema; the plugin returns the report bytes in a validated base64 envelope.
reports.scheduledstats.download
Screen Pop
- InitiateWrite
Screen-pop -- Trigger. Opens the given URI on the user's active Dialpad device, so an agent sees the relevant record (CRM contact, ticket, order) without searching for it. Returns the device the pop was delivered to. Requires the `screen_pop` OAuth scope. Requires scope: ``screen_pop`` Rate limit: 5 per minute.
screen_pop.initiate
Search
- UsersRead-only
User -- Search. Searches for users matching a specific criteria. It matches phone numbers, emails, or name. Optionally, it accepts filters to reduce the amount of final results. - The `cursor` value is provided in the response, and can be passed as a parameter to retrieve subsequent pages of results. Rate limit: 1200 per minute.
search.users
Sms
- SendDestructive
SMS -- Send. Sends an SMS message to a phone number or to a Dialpad channel on behalf of a user. Provide either to_numbers or channel_hashtag as the recipient, and either text or media as the content. A channel's hashtag is available from the channel endpoints. Tier 0 Rate limit: 100 per minute. Tier 1 Rate limit: 800 per minute.
sms.send
Connect Dialpad to Claude, ChatGPT or Cursor
- 1
Connect Dialpad in Corsair
Add your Dialpad API key or sign in with OAuth once in Corsair. Corsair stores the credential encrypted and makes the Dialpad API calls for your agent, so it never goes into a prompt or a config file. Connect Dialpad
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Dialpad. On a ChatGPT personal plan, connect Dialpad here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Dialpad's read and write operations run right away and its 73 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/dialpad, add the Dialpad plugin, and connect with an API key or OAuth. Then call methods like corsair.dialpad.api.accesscontrolpolicies.assign() from your app. Corsair stores tokens, and keeps each tenant isolated.
Yes. Dialpad supports an API key or OAuth. Use credentials or OAuth scopes that match what you automate. Create them in the Dialpad developer console, then paste into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Dialpad, GitHub, Notion, Stripe, and the rest. Trigger Dialpad from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for manage company calling, users, contacts, messages, routing, reporting, Dialpad Meetings, WFM, and PowerDialer through the documented Dialpad REST APIs. Common builds include sync jobs, admin tooling, and agents that call Dialpad APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Dialpad API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/dialpad in the open repo. When Dialpad ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Dialpad data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Dialpad data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Dialpad on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 73 destructive Dialpad operations. You can change a link's mode at hub.corsair.dev/me.