Docs
How SKUHelm works
SKUHelm reads your shop, turns each product and variant into a row in OpenAI's product feed format, checks every row against the spec and publishes the rows that pass at a fixed address.
Feed field referenceAll 36 fields in OpenAI's spec, with the rule for each and what SKUHelm fills in.REST APIValidate items, start a sync, read status and fetch your feed as JSON.MCP serverThe same four abilities as tools for Claude, ChatGPT and any MCP client.
From shop to feed
- 01Read. We fetch your public catalogue: Shopify's products.json, WooCommerce's Store API, or a CSV, JSON or JSONL file you upload or link. Every variant becomes its own row.
- 02Fill. Store settings you set once (seller name, brand, policy links, countries, shipping) fill the gaps the shop can't. Your own edits to a single item win over both.
- 03Check. Each row is checked against the spec: the 9 required fields, formats, lengths, variant grouping and the extra fields checkout needs. Every problem names the field and the rule.
- 04Publish. Rows that pass go into a new feed version, but only when something changed. Blocked rows stay out until they're fixed. Price and stock always come from your shop.
What the statuses mean
- Ready. Passes every rule and carries what Instant Checkout needs.
- No checkout. Accepted in the feed, so it can be found in ChatGPT, but it can't be bought there yet. Usually the privacy or terms link is missing.
- Blocked. Breaks a required rule, so it isn't published.
Your feed address
Each store gets one address per format. It never changes, so you give it to OpenAI once.
- https://www.skuhelm.com/feeds/your-shop.jsonl
- https://www.skuhelm.com/feeds/your-shop.csv
- https://www.skuhelm.com/api/v1/feeds/your-shop/acp.json
The files send an ETag and answer 304 when nothing changed, so polling them is cheap.
Try it from a terminal
Validation needs no key. Send a row and see what the spec makes of it.
curl -X POST https://www.skuhelm.com/api/v1/catalog/validate \
-H "content-type: application/json" \
-d '{"items":[{
"item_id": "MUG-01",
"title": "Speckled stoneware mug",
"price": "24.00 GBP",
"availability": "in_stock"
}]}'