API
Read, enrich and publish your catalog over HTTP with an API key.
The Fabric API is HTTP and JSON. Every request is authenticated with an API key and scoped to the organization that key belongs to.
It covers importing and exporting, reading and correcting product content, running enrichment, and publishing. An AI assistant reaches the same API through MCP.
Authentication
Create a key, send it, and choose its scopes.
Errors
What each error code means, and why some of them say very little.
Paginating results
Page through a collection with a cursor. There is no page number.
Retrying safely
Send an Idempotency-Key so a retry cannot start the same job twice.
Handling rate limits
The four request budgets, and what to do on a 429.
Receiving webhooks
Get a signed request when a job finishes, instead of polling.
Publishing over the API
Create a destination connection, test it, start a run, and read what it wrote.
Destinations
Every destination, who must approve a publish to it, and the download cap.
Base URL
https://fabric.inc/api/v1Every path on the reference pages is relative to this URL. All API endpoints are under /v1.
Response format
A successful response returns the resource. An error returns application/problem+json, always
with the same fields:
{
"type": "https://fabric.inc/docs/api/errors#not_found",
"title": "Not found",
"status": 404,
"code": "not_found",
"instance": "/api/v1/brands/brd_1"
}Branch on code. It is a closed set and does not change between releases. title and detail are
for a person reading a log. The full list is on Errors.
Brand IDs are checked on every call
Fabric checks every brandId you send against your organization. A brand outside your organization
returns not found, not forbidden. Returning forbidden would confirm that the id exists, and a
caller without access should not learn that.
GET /v1/me lists the brands your key can reach, so you never have to guess an id.
Connections, mappings and runs work the same way: they resolve only within your organization.
Reference
The endpoint reference below is generated from the schemas the API validates requests with, so it matches what the server accepts. Use the request panel on any operation to send a real call with your own key.