For website developers, agencies and e-commerce platforms
Live data feed format
If a business's stock, prices or availability change often, X-Protocols can check a file on their own website automatically and keep an AI assistant's answers current -- no plugin from us to install, no ongoing integration work. This page is the entire contract.
The short version
Publish a small XML file at any URL on your own site. List one <item> per
product or service whose availability changes. Give X-Protocols that URL once (in the business's Developer
settings page, or ask them to). We check it periodically and nothing else is required from you afterward.
Check before you build anything
Roughly in order of how likely each is to be a 30-second answer rather than new work:
- WooCommerce: check installed plugins for anything with "Feed", "Google Shopping" or "Merchant Center" in the name (e.g. "Product Feed PRO", "Google Listings & Ads"). Its settings page shows a feed URL directly.
- Shopify: check Sales Channels for "Google & YouTube" -- if installed, a feed already exists.
- PrestaShop / Magento / other: search the admin for "product feed" or "Google Shopping export" -- nearly every mainstream platform has an official or community module for this already.
- Already found one for Google Shopping/Merchant Center? You're most of the way there -- the format below is deliberately close to it. You likely only need to add or rename a handful of fields, not build one from scratch.
- Nothing above applies? Building one from scratch is genuinely simple -- see the format below. It is a static file your server (or even a scheduled script) can regenerate periodically; no framework, database driver or library is required on your end, just valid XML in this shape.
The format
<?xml version="1.0" encoding="UTF-8"?>
<feed>
<item>
<id>SKU-123</id>
<availability>in_stock</availability>
<price currency="EUR">49.90</price>
<quantity>4</quantity>
<location_id>store-1</location_id>
<updated_at>2026-08-05T12:00:00Z</updated_at>
</item>
<item>
<id>SKU-124</id>
<availability>out_of_stock</availability>
</item>
</feed>
Field by field
| Field | Required? | What it means |
|---|---|---|
id | Required | Your own product/service code. Must match the reference code (external ID) used for that same item in the business's records -- otherwise the update has nothing to attach to. |
availability | Optional | in_stock or out_of_stock. Use this if you don't track an exact number. |
quantity | Optional | An exact count, if you have one. Overrides availability when both are given. |
price | Optional | A number, with a currency attribute (e.g. currency="EUR"). |
location_id | Optional | Only needed if the business has more than one location/warehouse and stock differs between them. |
updated_at | Optional | ISO 8601 timestamp (e.g. 2026-08-05T12:00:00Z). If you leave it out, we use the time we checked the file. |
Rules that keep this predictable
- Up to 50,000
<item>elements per file, up to 16MB total. - Must be reachable over plain
http://orhttps://-- no login required. If the file needs to be private, put an unguessable random path in the URL rather than a password. - An item with no
idis skipped, not an error for the whole file -- one bad row never blocks the rest. - We check the file on the interval set when the stream was created (a few minutes to an hour, business's choice) -- this is not instant, real-time push. If a business needs true real-time updates, that's the webhook option instead (see their Developer settings page), which does need a developer.
How a business turns this on
Once this file exists at a stable URL, the business owner (or you, on their behalf) pastes that URL into their Developer settings → Live data streams → New live data stream page. Nothing else to configure -- no key, no secret, no code.