The API covers products, categories and attributes. Enrichment, imports, exports and automations are not in v1; run those in the app or with an automation. To let an AI assistant work with your catalog, use Connected Apps instead of an API key.
Quickstart
1
Create an API key
In the WISEPIM app, open Settings > API Access and click Create API key. Pick a name and the permissions the integration needs. The full key is shown once; store it in a secrets manager. See API Access for who can create keys and the limits.
2
Check the key
GET /me needs no scope and tells you which project the key is bound to and which scopes it carries.3
Page through your products
Lists are keyset-paged. Pass
next_cursor back as cursor until has_more is false.4
Write back
Update one product with
PATCH /products/{product_id}, or send up to 200 products at once to POST /products/batch, keyed by SKU. Both need the products:write scope.Endpoints
Paging
Every list returns the same envelope and is ordered by id ascending:limitdefaults to 50 and is capped at 200.- The cursor is opaque. A malformed cursor is a
422 invalid_cursor, never a silent restart from the top. - There is no total count. Drain the list until
has_moreisfalse. - Keyset paging visits every pre-existing row exactly once, even while products are being inserted.
GET /products?updated_since=<ISO-8601> on a schedule, page to the end, then store the highest updated_at you saw as the next updated_since.
Errors
Every error is JSON with the same envelope.code is a stable machine-readable string; branch on it rather than on error.
Quote the
request_id when you contact support about a failed call.
Rate limits
Each key has its own limit, 600 requests per minute by default, counted in a fixed 60-second window. Every response carriesX-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (seconds until the window resets). A request that fails a scope check still counts. Support can raise a key’s limit when a sync needs it; GET /me shows the limit the key currently has.
Retries and idempotency
Networks fail mid-request, and a client that retries aPOST after a timeout cannot know whether the first attempt was applied. Send an Idempotency-Key header on every write (POST /products, PATCH /products/{product_id}, POST /products/batch) and reuse the same key for every retry of that write.
- The key is any string of 1 to 128 printable ASCII characters without whitespace. A UUID per logical operation works well.
- A retry with the same key, method, path, query and JSON body returns the original status and body and applies nothing again. The order of keys in the JSON body does not matter.
- Keys are scoped to the API key that sent them and are kept until that API key is deleted. Rotating a key starts a fresh scope.
- The same key with a different request is a
409 idempotency_conflict; a malformed key is a422 invalid_idempotency_key. A write that fails leaves no record, so the next attempt with the same key runs normally. - A replayed response describes the product as it was when the write ran. Use
GET /products/{product_id}for the current state. GETrequests need no key.POST /products/batchis keyed by SKU, so a retried batch without a header is also safe, but a header gives you the originalresultsandsummaryback instead of a second run.
5xx responses and timeouts with the same key; honour Retry-After on a 429 before retrying.
Test safely
There is no separate sandbox host. Test against a separate project instead: create a project, fill it with a copy or a sample of your catalog, and create a key bound to that project. Keys cannot reach any other project, so a bug in your integration never touches the catalog your live channels read from. Compare Projects shows the differences between the test project and the live one before you point the integration at production.Related
Authentication and scopes
How keys work, which scopes exist, and how to rotate a key you think has leaked.
API Access settings
Create, rename and revoke keys in the app, and the limits per project and per person.
Developer portal
Every developer resource in one place: spec, MCP server, llms.txt, guides.
Connected Apps
Let ChatGPT or Codex work with your catalog through a scoped, revocable connection.

