Skip to main content

Authentication

All API requests authenticate with the project’s key, sent as the X-Project-Key header.
The dashboard exposes three project values. Know which is which:

What is and isn’t secret

The Project Key is a public API key, not a bearer secret. It exists so the API knows which project you are calling. It is designed to ship inside the script — the script cannot call key/check without it, so it has to be there. An attacker who extracts the Project Key from a script gains nothing:
  • They still need a valid, unexpired license key whose HWID matches — key/check returns an error otherwise.
  • The Project Key cannot issue keys, revoke keys, or modify the project.
  • It cannot forge responses. Forging requires the signing private key.
The one value that must never leak is the signing private key. It lives only on the server, signs every key/check response, and is not exposed by any endpoint. The Public Signing Key is the only crypto material that ships to the client — the script uses it to verify, never to sign.

Rate limits

Exceeding a limit returns 429 with retry_after.