How keys work
- One key, one project. A key is bound to the project it was created in and can never reach another project. A product id from another project is a
404, not a403. - Scopes are fixed at creation. You choose the permissions when you create the key. They cannot be widened afterwards; create a new key instead.
- Keys act on behalf of the person who created them. Every request re-checks that this person is still active and still has access to the project. Write scopes also require that they can still edit the project. Off-board the person and their keys stop with them.
- Only the prefix is stored. WISEPIM keeps a hash of the key, so the full
wpk_...value is shown exactly once, right after creation or rotation. - Revocation and expiry apply on the next request. Nothing is cached.
Scopes
Request the smallest set that does the job. Reads and writes are separate scopes.GET /me needs no scope. Call it first to confirm which key you are holding, which scopes it carries and which project every other call will land in.
The same scope names appear in the OpenAPI spec: each operation lists its scope under x-required-scopes, and the ProjectApiKeyAuth security scheme describes the full catalogue under x-scopes.
Authentication errors
Keep keys safe
- Send keys from your server, never from browser code, mobile apps or public repositories.
- Store them in environment variables or a secrets manager, not in source control.
- Give each integration its own key so you can revoke one without breaking the others.
- Check each key’s Last used date under Settings > API Access and revoke keys that are no longer in use.
- If a key may have leaked, create a replacement, switch the integration to it, then Revoke the old one. Revocation is immediate.

