Appearance
REST API Overview
About 331 wordsAbout 1 min
New here? Start with an SDK instead of calling the REST API directly.
Base URL
http://localhost:8080 (local development)
https://api.gethook.to (production)Authentication
All management endpoints require:
Authorization: Bearer hk_<your-api-key>The ingest endpoint (POST /ingest/{token}) uses the path token as auth — no Bearer header needed.
Response format
All responses are wrapped in a data key on success, or an error key on failure.
Success:
{ "data": { ... } }Error:
{ "error": "descriptive message" }HTTP status codes
| Code | Meaning |
|---|---|
200 | OK |
201 | Created |
202 | Accepted (async, e.g. ingest) |
204 | No Content (e.g. delete) |
400 | Bad Request — check error field |
401 | Unauthorized — invalid or missing API key |
404 | Not Found |
500 | Internal Server Error |
Endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /v1/accounts | None | Create account + bootstrap key |
POST | /v1/api-keys | Bearer | Create API key |
GET | /v1/api-keys | Bearer | List API keys |
DELETE | /v1/api-keys/{id} | Bearer | Revoke API key |
POST | /v1/sources | Bearer | Create source |
GET | /v1/sources | Bearer | List sources |
GET | /v1/sources/{id} | Bearer | Get source |
POST | /v1/destinations | Bearer | Create destination |
GET | /v1/destinations | Bearer | List destinations |
GET | /v1/destinations/{id} | Bearer | Get destination |
PATCH | /v1/destinations/{id} | Bearer | Update destination |
POST | /v1/routes | Bearer | Create route |
GET | /v1/routes | Bearer | List routes |
POST | /ingest/{token} | Token | Receive inbound webhook |
GET | /v1/events | Bearer | List inbound events |
GET | /v1/events/{id} | Bearer | Get inbound event + attempts |
POST | /v1/events/{id}/replay | Bearer | Replay inbound event |
POST | /v1/outbound-events | Bearer | Publish outbound event |
GET | /v1/outbound-events | Bearer | List outbound events |
GET | /v1/outbound-events/{id} | Bearer | Get outbound event + attempts |
POST | /v1/outbound-events/{id}/replay | Bearer | Replay outbound event |
POST | /v1/exports | Bearer | Create async export job |
GET | /v1/exports | Bearer | List export jobs |
GET | /v1/exports/{id} | Bearer | Get export job status |
GET | /v1/exports/{id}/download | Bearer | Download export result |
POST | /v1/brand-settings | Bearer | Upsert brand settings |
GET | /v1/brand-settings | Bearer | Get brand settings |
POST | /v1/custom-domains | Bearer | Register custom domain |
GET | /v1/custom-domains | Bearer | List custom domains |
GET | /healthz | None | Liveness probe |
GET | /readyz | None | Readiness probe |