Secure your API calls
Sigma PIM supports two authentication methods: JWT tokens for interactive user sessions and API keys for server-to-server integration. All authenticated endpoints require one of these methods.
JWT Tokens
For user sessions. Authenticate with email and password, receive a token with 24-hour expiry. Pass via Authorization: Bearer {token} header.
API Keys
For server-to-server integrations. Generate a key from the API, then pass it via the X-Sigma-ApiKey header on every request.
JWT Authentication Flow
POST your email and password to /api/v1/auth/login. You receive a signed JWT token and user details.
Include the token in the Authorization header of every subsequent request as a Bearer token.
Tokens expire after 24 hours. Call /api/v1/auth/refresh with the current token to get a new one without re-authenticating.
userId, workspaceId, and roleId. These determine identity, tenant isolation, and permission level for every request.
API Key Authentication
API keys are ideal for automated integrations, CI/CD pipelines, and server-to-server communication. They don't expire on their own but can be deactivated at any time.
Generate and manage API keys via the /api-keys endpoints.
The key format is: sigma_sk_live_<random>
Token Format
JWT tokens are signed with HS256 and contain the following claims:
| Claim | Type | Description |
|---|---|---|
userId |
string | The authenticated user's unique identifier |
workspaceId |
string | The tenant workspace this token is scoped to |
roleId |
string | The user's role, used for permission resolution |
iat |
number | Issued-at timestamp (Unix epoch seconds) |
exp |
number | Expiration timestamp — 24 hours after issuance |
Endpoints
Returns all registered tenants with their quick-login users. No authentication required. Useful for building login screens that let users pick a tenant and user without typing credentials.
None — this endpoint takes no parameters.
Authenticate with email and password. Returns a signed JWT token (valid for 24 hours) and user details. If multiple tenants exist, the system searches all of them unless you specify a workspaceId.
| Field | Type | Description |
|---|---|---|
| email required | string | The user's email address |
| password required | string | The user's password |
| workspaceId optional | string | Target a specific tenant workspace. If omitted, all tenants are searched. |
| Status | Error Code | Description |
|---|---|---|
400 |
VALIDATION_ERROR |
Email and password are required |
401 |
UNAUTHORIZED |
Invalid email or password |
Refresh an existing JWT token before it expires. The old token is validated and a new token is issued with a fresh 24-hour expiry. The workspace must still exist in the tenant registry.
| Field | Type | Description |
|---|---|---|
| token required | string | The current JWT token to refresh |
| Status | Error Code | Description |
|---|---|---|
400 |
VALIDATION_ERROR |
Token is required in the request body |
401 |
UNAUTHORIZED |
Invalid or expired token |
Endpoint Summary
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | /api/v1/auth/quick-logins |
None | List all tenants with quick-login users |
| POST | /api/v1/auth/login |
None | Authenticate and receive a JWT token |
| POST | /api/v1/auth/refresh |
None | Refresh an existing JWT token |