Go back to dialerseat.comsales@dialerseat.com
Reference

API reference

REST over HTTPS with JSON bodies. Authenticate with a secret key as a bearer token (authentication). Test keys see only test data and never dial. Errors follow one shape (errors and limits).

Base URLhttps://api.dialerseat.com/v1

Account

GET/me

Check your key

Which platform and environment a key belongs to, and whether it can dial. The first call to make.

request
curl https://api.dialerseat.com/v1/me \
  -H "Authorization: Bearer dsk_test_..."

Seats

POST/seats

Create a seat

Create or update the DialerSeat seat for one of your users, keyed on your own user id.

request
curl -X POST https://api.dialerseat.com/v1/seats \
  -H "Authorization: Bearer dsk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "external_user_id": "usr_829", "email": "ana@acme.com", "name": "Ana Ruiz", "billed_to": "user" }'
GET/seats

List seats

Every seat on the platform with its status and who pays for it.

request
curl https://api.dialerseat.com/v1/seats \
  -H "Authorization: Bearer dsk_test_..."
GET/seats/{id}

Retrieve a seat

One seat, including its dial-mode exception if it has one.

request
curl https://api.dialerseat.com/v1/seats/seat_123 \
  -H "Authorization: Bearer dsk_test_..."
PATCH/seats/{id}

Update a seat

Change a seat's name, billing (user or platform) or dial mode.

request
curl -X PATCH https://api.dialerseat.com/v1/seats/seat_123 \
  -H "Authorization: Bearer dsk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "billed_to": "platform" }'
DELETE/seats/{id}

Disable a seat

Stop a seat dialing. Its call history is kept.

request
curl -X DELETE https://api.dialerseat.com/v1/seats/seat_123 \
  -H "Authorization: Bearer dsk_test_..."

Sessions

POST/seats/{id}/sessions

Create a miniplayer session

A 15-minute token that signs the seat into the embedded dialer with no second login.

request
curl -X POST https://api.dialerseat.com/v1/seats/seat_123/sessions \
  -H "Authorization: Bearer dsk_test_..."

Campaigns

POST/campaigns

Create a campaign

Tie one of your CRM campaigns to a DialerSeat campaign: dial mode, AMD, voicemail drop, calling hours, dispositions.

request
curl -X POST https://api.dialerseat.com/v1/campaigns \
  -H "Authorization: Bearer dsk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "external_id": "crm_campaign_77", "name": "November renewals", "dial_mode": "power" }'
GET/campaigns

List campaigns

Every campaign with lead counts and progress.

request
curl https://api.dialerseat.com/v1/campaigns \
  -H "Authorization: Bearer dsk_test_..."
PATCH/campaigns/{id}

Update a campaign

Pause, resume, or change its dial mode and settings.

request
curl -X PATCH https://api.dialerseat.com/v1/campaigns/crm_campaign_77 \
  -H "Authorization: Bearer dsk_test_..."

Leads

POST/campaigns/{id}/leads

Add leads

Push up to 500 leads per request. Each keeps your external id so results map back to your record.

request
curl -X POST https://api.dialerseat.com/v1/campaigns/crm_campaign_77/leads \
  -H "Authorization: Bearer dsk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "leads": [ { "external_id": "c_5501", "phone": "+15125550142", "first_name": "Dana", "consent_source": "web form" } ] }'
DELETE/campaigns/{id}/leads/{external_id}

Remove a lead

Take a lead out of the queue before it is dialled.

request
curl -X DELETE https://api.dialerseat.com/v1/campaigns/crm_campaign_77/leads/c_5501 \
  -H "Authorization: Bearer dsk_test_..."

Dispositions

GET/dispositions

List dispositions

Your disposition codes and the outcome each one maps to.

request
curl https://api.dialerseat.com/v1/dispositions \
  -H "Authorization: Bearer dsk_test_..."
POST/dispositions

Create a disposition

Add one of your CRM's outcomes so agents pick it in the miniplayer.

request
curl -X POST https://api.dialerseat.com/v1/dispositions \
  -H "Authorization: Bearer dsk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "code": "APPT_SET", "label": "Appointment set", "outcome": "conversion" }'

Calls

GET/calls

List calls

Calls since a timestamp, with outcome, talk time, AMD result and disposition.

request
curl https://api.dialerseat.com/v1/calls \
  -H "Authorization: Bearer dsk_test_..."
GET/calls/{id}

Retrieve a call

One call, including a short-lived recording link when the campaign records.

request
curl https://api.dialerseat.com/v1/calls/seat_123 \
  -H "Authorization: Bearer dsk_test_..."

Compliance

POST/dnc

Add to do-not-call

Suppress a number across every campaign on the platform.

request
curl -X POST https://api.dialerseat.com/v1/dnc \
  -H "Authorization: Bearer dsk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "phone": "+15125550142" }'

Usage

GET/usage

Retrieve usage

Seat-weeks and dials for a period, per seat and in total.

request
curl https://api.dialerseat.com/v1/usage \
  -H "Authorization: Bearer dsk_test_..."

Webhook events

Signed with your endpoint's secret. How to verify.

EventSent when
seat.activatedA seat can dial: payment went through, or the platform covers it.
seat.payment_failedA user-billed seat's weekly charge failed. Dialing stops at the end of the paid days.
seat.disabledA seat stopped: cancelled, or disabled through the API.
call.startedA line started ringing.
call.answeredThe lead answered and is connected to the agent. amd_result is pending while answering-machine detection is still listening, or not_run when it is off.
call.endedThe call ended. Includes duration, talk seconds, who hung up (lead, agent, amd, no_answer, busy, failed, agent_unreachable) and the final AMD result.
call.dispositionedThe agent picked a disposition. Your code, your label, our outcome class.
recording.readyA recording is stored and can be fetched.
lead.exhaustedA lead used every attempt the campaign allows.
campaign.completedEvery lead in a campaign is dialled or exhausted.