Ingest quickstart

Get from zero to a routed event in three steps.

1. Create an ingest key

Sign in (a free tenant is provisioned automatically), open Ingest keys → New ingest key, and copy the token. It looks like ik_live_… and is shown once — Hookie only stores its hash.

2. Send an event

POST any JSON. Put the dataset name in the path to route directly:

curl -X POST https://hookie.ai/v1/ingest/ik_live_xxx/leads \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","plan":"pro","score":91}'

You'll get back the submission id and where it routed:

201 Created
{
  "submission_id": "9d3f…",
  "routed": ["leads"],
  "records": 1
}

3. See it in the console

Open Datasets → leads to see the record, Submissions for the raw capture, and Live to watch events stream in as they arrive.

Let your rules route it

Omit the dataset and Hookie runs your mapping rules to decide the destination dataset and shape:

# No dataset in the path → your routing rules decide where it lands
curl -X POST https://hookie.ai/v1/ingest/ik_live_xxx \
  -H "Content-Type: application/json" \
  -d '{"type":"signup","email":"[email protected]"}'

Safe retries

Send an Idempotency-Key and a retry returns the original submission instead of creating a duplicate — and it never counts twice against your quota:

curl -X POST https://hookie.ai/v1/ingest/ik_live_xxx/leads \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1042" \
  -d '{"order":1042,"total":59.9}'

Next