Authentication

All requests to the Pixee PIM API must be authenticated. The API supports two authentication methods: API keys (recommended for integrations) and JWT Bearer tokens (for user sessions).


API keys

API keys are long-lived credentials prefixed with pm_live_ (production) or pm_test_ (test). You can create and manage them in your account settings.

Using an API key

Pass the key in the X-API-Key header on every request:

Authenticated request

curl https://api.pixeepim.com/api/v1/products \
  -H "X-API-Key: pm_live_abc123..."

API key scopes

Each key is restricted to a set of scopes:

ScopeAccess
products:readRead products and catalog data
products:writeCreate and update products
products:deleteDelete products and bulk delete
categories:readRead category tree and mappings
suppliers:readRead supplier catalog data
imports:readView import jobs and logs
imports:writeStart and manage imports
exports:readView export jobs
exports:writeCreate and download exports
ext:products:readExternal API — read product catalog
ext:products:writeExternal API — create and update products
windev:read / windev:write / windev:syncWinDev Integration — full WinDev sync access

Creating an API key

  1. Log in at pixeepim.com.
  2. Navigate to Settings → API Keys.
  3. Click Create API Key, enter a descriptive name and select the required scopes.
  4. Copy the key immediately — it won't be shown again.

Rotating a key

Rotate an API key

curl -X POST https://api.pixeepim.com/api/v1/api-keys/{key_id}/rotate \
  -H "X-API-Key: pm_live_abc123..."

The old key is invalidated immediately and a new one is returned.


JWT Bearer tokens

User sessions use short-lived JWT tokens (valid for 15 minutes by default). Obtain a token via the login endpoint:

Login

curl -X POST https://api.pixeepim.com/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "••••••••"}'

Response

{
  "access_token": "eyJhbGc...",
  "token_type": "bearer"
}

Use the token in the Authorization header just like an API key:

curl https://api.pixeepim.com/api/v1/products \
  -H "Authorization: Bearer eyJhbGc..."

To refresh an expiring token:

The refresh token is sent automatically via the refresh_token HttpOnly cookie set at login. No Authorization header needed for this endpoint.

Refresh token

curl -X POST https://api.pixeepim.com/api/v1/auth/refresh \
  -H "Content-Type: application/json"

Multi-tenant context

If your account manages multiple tenants, scope a request to a specific tenant with the X-Tenant-ID header:

Request with tenant context

curl https://api.pixeepim.com/api/v1/products \
  -H "X-API-Key: {api_key}" \
  -H "X-Tenant-ID: {tenant_id}"

Without this header, the request operates on your default account context.


Error responses

StatusMeaning
401 UnauthorizedMissing, invalid, or expired credential
403 ForbiddenValid credential but insufficient scope or permissions
423 LockedAccount locked after too many failed login attempts

See the Errors guide for the full error format.

Was this page helpful?