Authentication
Anonymous endpoints (product search, the pain-points taste, competitors) need nothing. Everything else needs a paid-team API key, sent as a bearer token:Response envelope
Every response is a JSON envelope. Success:data is the payload (an object or an array). meta is optional and carries things
like pagination on list endpoints and an upsell CTA on anonymous tastes.
Pagination
List endpoints are page-based (1-indexed). Passpage and page_size (max 100,
default 20). The response’s meta.pagination tells you whether to keep going:
Errors
Errors use a stable machinecode plus a human message. The HTTP status matches the
code:
| Status | code | When |
|---|---|---|
| 400 | invalid_request | Malformed parameters or body. |
| 401 | unauthorized | Missing, invalid, revoked, or expired API key. |
| 402 | payment_required | Not enough credits for a credit-spending action. |
| 403 | forbidden | A limit was reached (e.g. the plan’s product cap). |
| 404 | not_found | Unknown resource id. |
| 429 | rate_limited | Rate limit exceeded - see the Retry-After header. |
| 500 | internal_error | Something went wrong on our side. |