API Overview
Base URLs
Section titled “Base URLs”| Region | Base URL |
|---|---|
| US | https://api.traceclick.io |
| EU | https://api-eu.traceclick.io |
Use the base URL that matches the region your app was created in.
Authentication
Section titled “Authentication”All API endpoints require an API key passed in the X-Api-Key header:
curl https://api.traceclick.io/v1/links \ -H "X-Api-Key: tr_live_xxxxxxxxxxxx"API keys start with tr_live_ for production or tr_test_ for sandbox environments.
Rate limits
Section titled “Rate limits”| Endpoint | Limit | Scoped by |
|---|---|---|
POST /v1/links | 60 req/min | API key |
GET /v1/links | 120 req/min | API key |
PATCH /v1/links/{code} | 60 req/min | API key |
DELETE /v1/links/{code} | 60 req/min | API key |
POST /v1/privacy/* | 30 req/min | API key |
POST /v1/debug/attribution | 30 req/min | IP address |
When you exceed a rate limit, the API returns 429 Too Many Requests. Wait and retry after a short delay.
Errors
Section titled “Errors”The API returns standard HTTP status codes with a JSON error body:
{ "error": "Short description of the problem"}| Status | Meaning |
|---|---|
400 | Bad request — invalid JSON, missing required field, or validation failure |
401 | Unauthorized — missing or invalid API key, or region mismatch |
404 | Not found — the requested resource doesn’t exist |
429 | Rate limit exceeded — too many requests, retry later |
500 | Server error — something went wrong on our end |
Content type
Section titled “Content type”All request and response bodies use JSON. Set the Content-Type header for POST/PATCH requests:
curl -X POST https://api.traceclick.io/v1/links \ -H "X-Api-Key: tr_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"deepLinkPath": "/welcome"}'