x-api-key header. That is the whole model. There is no OAuth exchange and no token to refresh.
Your API Key
Pass your API key in thex-api-key HTTP header on every request. The key is a static secret issued by your PowerHQ representative; treat it like a password and never expose it in client-side code or public repositories.
Where You Can Call From
Anything that can make an HTTPS request and set a header can call the API:- Serverless and edge runtimes with rotating egress IPs (Lambda, Cloudflare Workers, Vercel)
- Containers and autoscaling groups whose IPs change on every deploy
- CI pipelines and local development machines
Environments
Both environments enforce the same authentication requirements. Use Certification while you build and test; switch to Production for live customer traffic.
Onboarding asks for the IP addresses your team will be testing from, so we can enable them for the
certification checkout flow. Sending them early keeps your first end-to-end test from waiting on us.
Error Responses
403 Forbidden
400 Bad Request
A400 Bad Request response indicates a malformed HTTP request body — for example, invalid JSON or a missing Content-Type: application/json header. Check that your request body is valid JSON and that the Content-Type header is set correctly.
GraphQL Errors (HTTP 200)
GraphQL errors — such as unknown fields, missing required arguments, or resolver-level failures — are returned with an HTTP status of200. The response body contains an errors array alongside (or instead of) the data object: