Base URLs
Use the production base URL for live traffic and the sandbox base URL for development and testing.Authentication
The Nymble Commerce API supports two authentication methods. Use whichever method suits your integration.Bearer token (JWT)
After you callPOST /api/auth/login, you receive a JWT access token. Pass it in the Authorization header on every subsequent request:
API key
Some machine-to-machine integrations use a static API key instead of a short-lived JWT. Pass it in thex-api-key header:
You can obtain an API key by calling
POST /api/organizations/api-access from an Admin-scoped token. API keys do not expire but should be rotated periodically and stored securely — treat them like passwords.Request format
Send all request bodies as JSON and set theContent-Type header accordingly:
multipart/form-data. The reference page for each such endpoint calls this out explicitly.
Response format
Successful responses use standard HTTP status codes:
Resource endpoints return the created or updated object directly. List endpoints return an array wrapped in a response envelope. A typical successful response looks like this:
Organization scoping
Nymble Commerce is a multi-tenant platform. Every request is automatically scoped to your organization via claims embedded in your JWT. You do not need to passOrganizationId as an explicit body or query parameter on most endpoints — the API reads it directly from your token.
GET /api/organization). In those cases the path parameter or query value must match the OrganizationId in your token, unless you hold a Super role.
Pagination
List endpoints accept the following query parameters:
The response includes the current page of records alongside a total count so you can calculate total pages client-side:
Rate limits
When you exceed a rate limit the API returns
429 Too Many Requests. Retry after the interval indicated in the Retry-After response header.
Idempotency
For bulk-create endpoints, passing anExternalId field makes the operation idempotent. If you send the same ExternalId more than once, the API updates the existing record rather than creating a duplicate: