Ingest quickstart

Get from zero to a routed event in three steps.

1. Create a project & endpoint

Sign in (a free workspace is provisioned automatically), click Create Project, then open the project's Endpoints tab and Add Endpoint. Hookie generates a high-entropy webhook URL — the URL itself is the secret, so anyone who has it can send events:

https://app.hookie.ai/{workspace}/{project}/{webhook}

The Overview tab shows the full URL with a copy button and a ready-to-paste curl example.

2. Send an event

POST any JSON to your endpoint URL. The whole payload is stored into the endpoint's dataset:

curl -X POST 'https://app.hookie.ai/your-workspace/orders/aBcXyz…' \
  -H "Content-Type: application/json" \
  -d '{"order":1042,"email":"[email protected]","total":59.9}'

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

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

3. See it in the console

Open the project's Datasets tab to see the record as a table, Activity for the raw submissions, and the Home dashboard to watch your usage tick up.

Route with rules

Add rules on the project's Rules tab to split events into different datasets by condition. Leave conditions empty to match every event, and mappings empty to store the whole payload.

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://app.hookie.ai/your-workspace/orders/aBcXyz…' \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1042" \
  -d '{"order":1042,"total":59.9}'

Prefer a key?

Machine-to-machine senders can also use an ingest key (ik_live_…, created on the project's Endpoints/Keys tab, stored hashed and shown once):

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

Next