List a source's categories
Every category path the source's current products name, and every path above them, in path order: how many products sit at or below each, the rule set there, the rule inherited from above, or a same-name suggestion. Products under a path with no rule have no category.
- Scopes
sources:read - Rate classread
/v1/sources/{id}/categoriesEvery category path the source's current products name, and every path above them, in path order: how many products sit at or below each, the rule set there, the rule inherited from above, or a same-name suggestion. Products under a path with no rule have no category.
Authorization
apiKey An API key (fo_live_… / fo_test_…) as a bearer token
In: header
Path Parameters
Source (a vendor connection) ID
^src_[0-9A-Za-z]{22}$Header Parameters
Dated API version; pinned per organisation on first use and overridable per request
Value in
- "2026-10-01"
- "2026-10-04"
The data the request acts on: test is the organisation's sandbox. An OAuth token picks it (live by default); an API key's mode is fixed, and naming the other one is refused
Value in
- "live"
- "test"
ETag of a cached representation; a match returns 304
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/v1/sources/string/categories"{ "object": "list", "data": [ { "object": "source_category", "path": [ "string" ], "products": 0, "rule": { "id": "string", "path": "string" }, "inherited": { "id": "string", "path": "string" }, "suggestion": { "id": "string", "path": "string" } } ], "has_more": true, "next_cursor": "string"}List the FurniOps taxonomy GET
Every category of the FurniOps taxonomy in one list, parents before their children and siblings in display order. Each names the GS1 GPC class it falls under.
Set a source's category rules POST
Sets or removes the rules given; other rules stay as they are. A rule covers its path and every path below it until a more specific rule. The source's current snapshot is replayed to apply them. An unknown category answers 422; a source with an active run, or a paused or disabled one, answers 409, and then nothing is saved.