Hookestdocs Postman OpenAPI llms.txt

Authentication

Every /v1/* request uses HTTP Bearer. Not x-api-key, not a query param.

Authorization: Bearer hk_live_…

api_key or key in the query string always returns 401 invalid_api_key, even if the header is valid. Same body if the key is missing, malformed, or revoked.

Keys look like hk_live_ plus at least 16 URL-safe characters. Keep them server-side.

Upload the clip is not a /v1/* route. PUT upload_url with no Bearer — a collection-wide Authorization header breaks that step.

A valid key is not enough. The account also needs Builder/Growth/Scale (plan_tiers.api_enabled) or an invite/comp/custom grant. Otherwise 403 api_not_enabled. GET /v1/wallet, GET /v1/predict/{id}, and GET /v1/webhooks stay reachable after plan loss so you can read the balance, poll a job, and see the webhook was turned off. Those GETs still need the same scopes (predict:write on Get prediction). Plan loss disables the account webhook automatically — nothing is posted to that URL afterwards.

Postman: import the collection file, not this HTML page. Set the collection variable api_key. See Postman.

Request parameters

NameInTypeRequiredDescription
Authorization header string Required Bearer hk_live_ plus at least 16 URL-safe characters. Required on every /v1/* request. Do not send it on Upload the clip.
api_key query string Rejected Always 401 invalid_api_key, even if the Bearer header is valid.
key query string Rejected Same as api_key. Always 401 invalid_api_key.