docs
Enrichment

Start a batch lookup

POST
/v1/enrich/batch

Looks up up to 10,000 people in one job. Costs 1 chip per match, never more than max_chips. Poll GET /v1/enrich/jobs/{id} or subscribe to the enrichment.completed webhook.

This call can spend chips. Send an Idempotency-Key header so a retry never charges twice.

Authorization

bearerAuth
headerAuthorizationBearer <API key>

Create a key in the app under Developers. Keys start with dcd_live_.

Header Parameters

Idempotency-Key?string

Unique string for this request. Repeat the call with the same key within 24 hours and you get the original result, marked with the header Idempotent-Replayed: true, without being charged or building twice. Reusing a key with a different request is a 409. A request that failed can be retried with the same key.

Length1 <= length <= 255

Request Body

application/json
  1. body

Look up many people in one job. Each match costs 1 chip. Rows with no match are free.

rows*array<>

Things to look up, 1 to 10,000 rows.

Items1 <= items <= 10000
max_chips*integer

The most chips the whole job may spend. The job stops matching once it is reached.

Range1 <= value <= 9007199254740991

Response Body

Success.

application/json
  1. response

A batch enrichment job. Poll it, or subscribe to the enrichment.completed webhook.

id*string

Enrichment job id. Starts with enr_.

Match^enr_
status*string

Where the job is.

Value in"pending""running""completed""failed"
total*integer

Rows submitted.

Range0 <= value <= 9007199254740991
processed*integer

Rows looked up so far. Equals total once the job has finished.

Range0 <= value <= 9007199254740991
matched*integer

Rows matched so far.

Range0 <= value <= 9007199254740991
chips_charged*integer

Chips spent by this job so far.

Range0 <= value <= 9007199254740991
error_code*|

Why the job stopped early: 'insufficient_chips' when you ran out of chips (rows after that were not looked up), or the error that failed the job, such as 'upstream_unavailable'. Null when it ran to the end.

created_at*string

When the job was created.

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
Formatdate-time
result_url*|

Download link for the result CSV: your rows plus the matched lead fields. Valid for 15 minutes; fetch the job again for a new one. Null until the job finishes.

request_id*string

Id of the request that produced this response. A replayed idempotent response keeps the original id.

Example Request
curl -X POST 'https://api.diced.si/v1/enrich/batch' \  -H 'Authorization: Bearer dcd_live_your_key' \  -H 'Idempotency-Key: 9b2f6c1e-4d7a-4f0b-8e3a-1c5d2e7f9a04' \  -H 'Content-Type: application/json' \  -d '{  "rows": [    {      "email": "jane@example.com"    },    {      "phone": "+15125550100"    },    {      "md5": "5d41402abc4b2a76b9719d911017c592"    }  ],  "max_chips": 3}'
Example Response
{  "id": "string",  "status": "pending",  "total": 0,  "processed": 0,  "matched": 0,  "chips_charged": 0,  "error_code": "unauthorized",  "created_at": "2019-08-24T14:15:22Z",  "result_url": "http://example.com",  "request_id": "string"}