Deep Sync for Developers

Build on the identity graph.

One REST API for deterministic identity resolution, enrichment, audiences, and activation — across every channel. Programmatic access to the same graph that powers Deep Sync, with a single key.

Base URL api.deepsync.com/v1Auth Bearer tokenFormat JSON over HTTPS

Start here

New to the Deep Sync API? Generate a key, make your first authenticated request, and resolve an identity in under five minutes.

Getting started

The Deep Sync API gives you programmatic access to the same deterministic identity graph that powers our platform. Every capability — resolution, enrichment, audience building, and activation — is exposed as a REST resource that speaks JSON over HTTPS.

All requests go to a single base URL. The API is versioned in the path, so upgrades never break your integration without warning.

Base URL
https://api.deepsync.com/v1
Sandbox first. Every account includes a sandbox environment at api.sandbox.deepsync.com/v1 with synthetic identities — no billable matches and no production data.

Authentication

Authenticate every request with a bearer token. Create keys from the API keys tab of your Deep Sync workspace; each key is scoped to an environment and a set of capabilities.

cURL
curl https://api.deepsync.com/v1/identity/resolve \
  -H "Authorization: Bearer $DEEPSYNC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "email": "alex@example.com" }'
Keep keys server-side. Secret keys grant full access to your graph. Never embed them in browser or mobile code — proxy through your backend.

Identity resolution

Send any combination of email, phone, or postal identifiers and receive a stable deepsync_id, the household it belongs to, and the linked device identifiers (MAIDs) we hold for that person.

POST /v1/identity/resolve
{
  "email": "alex@example.com",
  "phone": "+12065551234",
  "postal": {
    "name": "Alex Morgan",
    "zip": "98033"
  }
}

A successful response returns the resolved identity and a confidence score:

200 OK
{
  "deepsync_id": "DS_4f3c9a21e8",
  "match": true,
  "confidence": 0.98,
  "household_id": "HH_91b07c",
  "maids": ["a1b2c3d4", "e5f6g7h8"]
}

Enrichment

Once you hold a deepsync_id, append attributes from the graph — demographics, household composition, and modeled behavioral segments. Request only the attribute groups you need; you are billed per group, per record.

POST /v1/enrich
{
  "deepsync_id": "DS_4f3c9a21e8",
  "attributes": ["demographics", "household", "interests"]
}

Audiences

Group resolved records into an audience, then let the graph expand it with deterministic lookalikes drawn from real, matched people — not probabilistic models. Audiences are reusable across every activation destination.

POST /v1/audiences
{
  "name": "High-value lapsed buyers",
  "seed": ["DS_4f3c9a21e8", "DS_77ab12c0"],
  "expand": {
    "model": "lookalike",
    "size": 250000
  }
}

Activation

Deliver an audience to any connected destination — Meta, Google, The Trade Desk, Snowflake, and 200+ more — with a single call. Deep Sync handles the onboarding, match, and channel-specific formatting.

POST /v1/activations
{
  "audience_id": "AUD_3b9f01",
  "destination": "meta",
  "account_id": "act_5567",
  "refresh": "daily"
}

Rate limits & errors

Limits are applied per key. Every response includes your remaining quota in the response headers. The API uses conventional HTTP status codes to signal success or failure.

CodeMeaning
200Success — the request was processed.
400Bad request — a parameter is malformed or missing.
401Unauthorized — the API key is missing or invalid.
429Too many requests — you have exceeded your rate limit.
5xxServer error — safe to retry with backoff.

SDKs & tools

Official SDKs wrap authentication, retries, and pagination so you can call the graph in one line. Install the one for your stack:

Install
# Node
npm install @deepsync/sdk

# Python
pip install deepsync

FAQs

How is a match billed?

You are billed only for successful matches and the enrichment groups you request. Sandbox calls are always free.

Is the data privacy-safe?

Yes. The graph is built on consented, deterministic data and the API never returns raw PII you did not send. See our Data Ethics & Privacy page.

How do I get production access?

Talk to our team to provision a production key and review your use case. Sandbox access is available the moment you sign up.

Need a hand wiring this up?

Talk to an engineer