https://api.hq.zone over HTTPS. Every endpoint lists the scope it needs under Authorizations; HQ uses a resource:action scope vocabulary (e.g. agents:read, documents:read, conversations:write, admin). A token can never exceed the role of the user it belongs to.
Personal access tokens (server-to-server)
For backend integrations, authenticate with a Personal Access Token (PAT) sent as a bearer token:OAuth 2.1 (apps acting for a user)
For apps that act on behalf of a signed-in user (a browser extension, a third-party integration), use the authorization-code + PKCE flow:Register a client
Register once via Dynamic Client Registration (RFC 7591), or use a first-party client. Public clients use PKCE and have no secret.
Authorize
Send the user’s browser to
/v1/oauth/authorize with a code_challenge (method S256). HQ signs the user in and redirects back to your redirect_uri with a single-use code.Exchange
POST the
code and code_verifier to /v1/oauth/token (form-encoded) to receive a short-lived access token and a rotating refresh token.Verify your token
200 with your identity confirms the token is valid; a 401/403 means it’s missing, expired, or lacks the scope.