Agentic Commerce Protocol (ACP) Product Feed Specification
This is the public, machine-readable feed format used by AI agents (ChatGPT, Claude, Gemini, etc.) to safely discover products, prices, inventory, and purchase URLs. Brands that appear in feeds.gxo.dev are expected to follow these rules so agents can trust the data.
Core Object Model
Each product in an ACP-compliant feed must include, at minimum, the following fields:
id- Stable product identifiertitle- Human-readable display namedescription- Natural language marketing descriptionbrand- Brand namecategories- Array of stringsimage_link- Primary image URLadditional_image_link- Array of URLsprice- Object with amount and currencyavailability- One of "in_stock", "out_of_stock", "preorder"purchase_url- Canonical URL where the product can be purchasedlast_updated- ISO timestamp
Example Payload (JSON)
{
"id": "shopify-987654321-variant-443",
"title": "Unstructured Linen Overshirt - Natural",
"description": "Relaxed-fit unisex overshirt in washed linen. Lightweight, breathable, designed for everyday layering.",
"brand": "Field & Form",
"categories": ["Apparel", "Outerwear", "Linen"],
"image_link": "https://cdn.brand.com/products/linen-overshirt-main.jpg",
"additional_image_link": [
"https://cdn.brand.com/products/linen-overshirt-angle.jpg",
"https://cdn.brand.com/products/linen-overshirt-detail.jpg"
],
"price": { "amount": "128.00", "currency": "USD" },
"availability": "in_stock",
"purchase_url": "https://brand.com/products/linen-overshirt-natural",
"last_updated": "2025-10-29T14:22:13Z"
}Update & Freshness Rules
AI agents assume inventory and price are current. If inventory or price changes, feeds must be refreshed. The last_updated field must reflect the true last sync from the commerce platform (Shopify, etc.). Stale data will be deprioritized.
- Prices must be final, customer-facing prices in the specified currency.
- Availability must reflect sellable state. If the item cannot actually be checked out, mark it out_of_stock.
- Do not inject fictional or placeholder products into production feeds.
feeds.gxo.dev tracks feed health and may flag feeds as "Needs Attention" if they drift from these rules. That status is publicly visible.
How Agents Should Consume This Feed
Agents should read each brand's manifest first to discover feed URLs, currency, and hash/ETag. Cache product objects locally and re-poll only when the manifest hash changes. Attribution is part of ACP: include purchase_url and brand name in any downstream recommendation so the shopper understands who they're buying from.
Best practices for agents:
- Poll no more than once every 5 minutes unless the manifest explicitly indicates a faster cadence.
- Always carry forward structured attribution (brand,
purchase_url). - Honor inventory and availability fields as truth.