Customers API
Retrieve customer data and interaction timelines.
List customers
GET /api/v1/customers
Authorization: Bearer <token>Returns the top 100 customers sorted by lastSeen (most recent first).
Get a customer
GET /api/v1/customers/:id
Authorization: Bearer <token>Returns the customer profile along with their touchpoints.
Customer timeline
GET /api/v1/customers/:id/timeline
Authorization: Bearer <token>Returns all touchpoints for this customer ordered chronologically (ascending). Each touchpoint includes the action, channel, campaign attribution, and timestamp.
Dedupe duplicates
POST /api/v1/customers/dedupe
Authorization: Bearer <token>
Content-Type: application/jsonMerges duplicate Customer nodes by email. Supports a ?dry_run=true
query param that returns the merge plan without applying it.
The resolver picks the canonical record for each duplicate group by
(1) presence of cio_id, (2) edge count, (3) lexicographic id as the
tiebreaker. All edges from dupes re-point to the canonical, then the
dupes are deleted. Idempotent. Running it again on a clean workspace
is a no-op.
Use this once after the Supabase 1000-row-cap pagination fix if you ran syncs on a pre-fix workspace and see suspiciously high Customer counts.
Related endpoints
| Endpoint | Description |
|---|---|
GET /api/v1/segments | List all customer segments |
GET /api/v1/campaigns | List all campaigns |
GET /api/v1/opportunities | Top 50 opportunities by score |
GET /api/v1/journeys | List customer journeys |
GET /api/v1/cohorts | List algorithm-discovered cohorts |
GET /api/v1/products | List products |