Browse help
/
API & webhooks

Use the CallSync API

Create an API key, fetch calls and connect your own tools.

6 min read
On this page
On this page

Before you start

In the dashboard, review Plan & billing and confirm that API & webhooks is enabled and your workspace plan is active. You will also need permission to manage API keys in API & Apps.

The REST API base URL is https://mcp.callsyncapp.com/api/v1. Use the API to request data when your integration needs it. Use webhooks when you want CallSync to send events to your receiver.

Create and store your API key

0 of 3 steps checked

Fetch your recent calls

Run this from your server or terminal after setting CALLSYNC_API_KEY. It requests the first page of five calls, ordered by the most recent call time.

bash
curl --fail-with-body --get 'https://mcp.callsyncapp.com/api/v1/calls' \
  --data-urlencode 'limit=5' \
  --data-urlencode 'page=1' \
  -H "Authorization: Bearer $CALLSYNC_API_KEY"

Read the response

Successful calls responses contain status, data and pagination. Each call includes its ID, time, direction, duration, caller, staff, note, recording and AI details when available. Missing recording or AI information does not mean the call failed to sync.

The example below shows an empty workspace response; your data array contains call objects when eligible calls exist.

json
{
  "status": "success",
  "data": [],
  "pagination": { "page": 1, "limit": 5, "total": 0 }
}

Filter and paginate calls

Use pagination.total to determine whether more calls remain. Call data can change while you page through it; use each call’s ID to avoid duplicate records in your integration.

ParameterUsage
limitUse an integer from 1 to 10 for calls per page. Default: 5.
pageStart at 1. Increase it to fetch the next page.
searchSearch calls by phone/name, notes, employee and available AI text.
directionUse incoming or outgoing to filter call direction.
bash
curl --fail-with-body --get 'https://mcp.callsyncapp.com/api/v1/calls' \
  --data-urlencode 'search=Alex' \
  --data-urlencode 'direction=outgoing' \
  --data-urlencode 'limit=10' \
  --data-urlencode 'page=1' \
  -H "Authorization: Bearer $CALLSYNC_API_KEY"

Fetch related workspace data

These are paths relative to the base URL. The analysis endpoint requires call_id; if no analysis exists yet, data contains a not_found status. Do not assume all endpoints have the same response or pagination shape.

GET endpointPurpose
/callsRecent calls with contact, recording and AI details.
/analysis?call_id=CALL_IDAnalysis for one call. Replace CALL_ID with the ID returned by /calls.
/callersContact activity, including total calls and last interaction.
/identitiesSaved contact names, notes and labels.
/employeesTeam/device details. Archived people are excluded unless include_archived=true.

If a request fails

  • Check the HTTP status and response body before using the returned data.
  • For 401, check the Bearer header and whether the key was regenerated.
  • For 400 on analysis, confirm that call_id is present.
  • For an empty calls list, verify the workspace key, filters and the phone’s sync status.
  • For network or server errors, retry with a bounded delay and log the status. Avoid repeatedly retrying invalid credentials.

Related guides

Set up CallSync webhooks
Still stuck?

Tell us which step you need help with.

Contact us