Skip to main content
Declare the products capability to let Castro publish and update product pages (and product_categories for category pages).

Create: POST /products

The payload is copy only: Castro writes titles, descriptions and SEO, and never touches price, SKU or inventory. Merge the copy into your existing product records.
Respond 201 with { "id": "...", "url": "..." }.

Update: PUT /products/{id}

Partial update. A full product push sends every field above; a content-only push sends just:

List: GET /products

Used to resolve a product’s id from its URL slug when Castro updates a page it discovered by crawling your site. Return an array of { "id": "...", "slug": "...", "name": "..." }; support per_page/page pagination.

Delete: DELETE /products/{id}

Respond { "deleted": true, "id": "..." }.