Skip to main content

Catalog Management

POST /public/catalogs

Create a catalog with an initial JSON Schema.
Request Parameters: Response: The created catalog object.

GET /public/catalogs

List all catalogs in your account.
Query Parameters: Response:

GET /public/catalogs/

Get details of a specific catalog. Response: Same shape as a single catalog object from the list endpoint.

PUT /public/catalogs/

Update catalog settings. Only provided fields are changed; omitted fields remain unchanged.
Request Parameters: Response: The updated catalog object.

DELETE /public/catalogs/

Delete a catalog and all its data (items, schema, snapshots).
Response:

Schema Management

GET /public/catalogs//schema

Get the current schema definition, including field metadata and workflow tracking.
Response:

POST /public/catalogs//schema/fields

Add a new field to the catalog schema. Creates a new schema version.
Request Parameters: Response:

PUT /public/catalogs//schema/fields/batch

Add, update, and/or remove multiple fields in one atomic operation.
Request Parameters: Response: Same shape as POST schema/fields response.

Taxonomy Management

GET /public/catalogs//taxonomy

Get the catalog’s taxonomy with computed inheritance (levels, paths, inherited attributes). Returns null if no taxonomy is configured.
Supports ETag caching via If-None-Match header — returns 304 Not Modified when unchanged.

PUT /public/catalogs//taxonomy

Set or replace the catalog taxonomy. Creates a new schema version.
Response: The enriched taxonomy with computed fields (level, path, children, inherited_attributes).

DELETE /public/catalogs//taxonomy

Remove taxonomy from the catalog. Creates a new schema version without taxonomy.
Response: 204 No Content

Catalog Context

GET /public/catalogs//catalog-md

Get the catalog’s markdown context (injected into enrichment and mapping prompts).
Response:

PUT /public/catalogs//catalog-md

Update the catalog’s markdown context directly (versioned).
You can also update catalog_md via PUT /public/catalogs/{catalog_id} by including the catalog_md field in the request body.

GET /public/catalogs//quality-prompt

Get the catalog’s quality prompt (used by the judge and readiness checks).

PUT /public/catalogs//quality-prompt

Set the quality prompt.

Item Management

GET /public/catalogs//items

List items in a catalog with pagination, search, and sorting.
Query Parameters: Response:

GET /public/catalogs//items/

Get a single item by database ID. Response: Single item in the same shape as list items.

POST /public/catalogs//items

Upsert a single item. Put the business identifier inside data (for example, {"sku": "A1"}); the legacy unique_identifier field is still required by the request shape but is not used as a separate selector.
Response: The created or updated item.

PUT /public/catalogs//items/

Update a single item. Only the fields you provide will be updated. Request Body: Any fields to update (dynamic schema). Response: The updated item.

DELETE /public/catalogs//items/

Delete a single item. Response:

POST /public/catalogs//items/bulk

Create or update up to 1000 items at once. Include your business key fields, such as sku, in each item object.
Request Parameters:
There is no unique_field query parameter. Put the business key fields directly in each item object.
Response:

Product Variant Management

Use these endpoints when a catalog groups variants under a product item. The {product_id} path parameter is the parent product item’s database ID, not the business product_id field value stored in row data.

POST /public/catalogs//products//items

Create one variant under a product.

PUT /public/catalogs//products/

Update product-level fields shared by variants.

POST /public/catalogs//products//items/bulk

Bulk upsert variants for one product.
Response:

Enriching Catalog Items

To enrich items in a catalog, use the Enrich API with the catalog_id parameter. The catalog’s schema and taxonomy are automatically applied.
See Enrich Examples for more details.

Snapshots

GET /public/catalogs//snapshots

List catalog snapshots.

POST /public/catalogs//snapshots

Create a snapshot. Request body: {"reason": "Before migration"}.

POST /public/catalogs//snapshots//restore

Restore from a snapshot. Automatically creates a safety snapshot first.

MCP-Oriented Endpoints

These endpoints are commonly used by Rastro MCP servers for large catalog workflows:
  • GET /public/catalogs/{catalog_id}/raw-items for full-fidelity catalog row pulls. Supports limit (1-5000, default 1000), offset, entity_type=product|variant, search, sort_field, and sort_order=asc|desc
  • GET /public/catalogs/{catalog_id}/raw-items/{item_id} for a single raw catalog row
  • GET /public/catalogs/{catalog_id}/activities to audit pending/completed activities
  • POST /public/catalogs/{catalog_id}/activities to create activity shells
  • POST /public/catalogs/{catalog_id}/activities/custom-transform to create a custom transform activity
  • POST /public/catalogs/{catalog_id}/activities/{activity_id}/save-workflow to save an activity as a workflow
  • POST /public/activities/{activity_id}/staged-changes/append to append staged changes in chunks
  • POST /public/activities/{activity_id}/pending-review to finalize one review activity
Activity listing supports status, type, limit, and offset query parameters. Snapshots support snapshot_type, limit, and offset. See MCP Reference for full workflow guidance.