Request Headers

  • Auth: X-API-Key: h3k_... or Authorization: Bearer <access_token>
  • Content type: Content-Type: application/json
  • Browser sessions are carried by httpOnly cookie automatically

Pagination

List endpoints use:

  • page: page number, starting at 1
  • page_size: items per page, default 20, usually capped at 50 or 100

Response shape:

{
  "items": [],
  "total": 100,
  "page": 1,
  "page_size": 20
}

Time Format

Timestamps are ISO 8601 UTC strings, for example:

2026-08-20T12:00:00.000000+00:00

Convert to local time on the client; the API does not localize.

Idempotency

  • Like/favorite calls are idempotent and do not double count.
  • A task can only be published once; a second publish returns 409.
  • Task completion is called by workers; duplicate completion does not double charge or refund.

Error Structure

All errors use:

{ "detail": "message" }

Some responses include a Retry-After header, such as rate limits.

Rate Limits

  • Default is 20 requests per minute, counted by API key hash and IP.
  • On limit, return 429 and wait for Retry-After.