List purchases
GET /v1/domain-purchases — paginated, filterable list of every purchase in your workspace.
GET /v1/domain-purchases
Lists every purchase tied to your workspace's API key. Cursor-paginated and filterable so you can power a customer-facing dashboard, a CRM lookup, or a support tool without keeping a parallel record.
Request
curl https://api.domainee.dev/v1/domain-purchases \
-H "Authorization: Bearer $DOMAINEE_API_KEY"
Query parameters
All optional. Filters stack.
| Param | Notes |
|---|---|
hostname | Exact-match filter (case-insensitive). |
status | pending · completed · failed · refunded. Repeat the param for multiple. |
customerReference | Match the opaque string you stashed at purchase time. |
createdAfter | ISO 8601 date — inclusive lower bound. |
createdBefore | ISO 8601 date — inclusive upper bound. |
limit | 1–200, default 50. |
cursor | Pagination cursor from a previous nextCursor. |
Useful queries
All purchases for one of your end-users, by the reference you stored:
curl "https://api.domainee.dev/v1/domain-purchases?customerReference=user_jane_42" \
-H "Authorization: Bearer $DOMAINEE_API_KEY"
Failed purchases this month (support triage):
curl "https://api.domainee.dev/v1/domain-purchases?status=failed&status=refunded&createdAfter=2026-05-01" \
-H "Authorization: Bearer $DOMAINEE_API_KEY"
Find a specific domain:
curl "https://api.domainee.dev/v1/domain-purchases?hostname=janesbakery.com" \
-H "Authorization: Bearer $DOMAINEE_API_KEY"
Response — 200 OK
{
"purchases": [
{
"id": "f8a0c1b9-1234-…",
"hostname": "janesbakery.com",
"years": 1,
"wholesaleCents": 1418,
"feeCents": 100,
"totalCents": 1518,
"currency": "USD",
"registrar": "namecheap",
"status": "completed",
"registrant": {
"firstName": "Jane",
"lastName": "Smith",
"email": "jane@bakery.example",
"country": "US"
},
"whoisPrivacyEnabled": true,
"autoRenew": false,
"expiresAt": "2027-05-17T15:42:11.000Z",
"customerReference": "user_jane_42",
"createdAt": "2026-05-17T15:42:09.000Z"
}
],
"nextCursor": "f8a0c1b9-1234-…"
}
nextCursor is null on the last page.
Notes
- Always implicitly scoped to the API key's workspace. There's no workspace-jumping query — one API key, one workspace's purchases.
- Failed/refunded rows are kept, not deleted. Useful for reconciliation.
- The
registrantfield on the row is a snapshot taken at purchase time. Source of truth for the live contact lives at the registrar.