Developers
Structured commerce data, built for machines.
Free, read-only JSON endpoints plus a read-only MCP interface. No authentication, no API key, CORS enabled, cached for five minutes. Every response exposes merchant, country, discount, eligibility, expiry, verification status and destination — and nothing commercially internal.
Conomize MCP — public beta
Public beta · Available for testingConnect AI assistants and agents directly to Conomize's commerce data.
Conomize's MCP interface gives compatible AI agents access to structured merchant and shopping information, creating a new way to discover stores, offers and shopping opportunities.
The public MCP is in active development and available for testing while we expand capabilities, merchant coverage and verified offers.
Public MCP endpoint
POST https://conomize.com/mcpAdd this endpoint as a remote MCP server in a compatible AI client. The interface is read-only, requires no authentication and exposes only public catalogue data.
Tools available today
- search_stores — merchant discovery by name, category or shopping area, with per-market delivery availability.
- get_store — one merchant in detail: what it sells, delivery availability semantics, relationship status and verified offers.
- list_deals — deal discovery filtered by merchant, category, country and status.
Available for testing. The MCP is actively developing toward broader production capabilities.
Endpoints
GET https://conomize.com/api/merchants
GET https://conomize.com/api/deals
GET https://conomize.com/api/public/merchants
GET https://conomize.com/api/public/deals
POST https://conomize.com/mcpThe MCP endpoint exposes the same public facts through the tools search_stores, list_deals and get_store. Whether an AI assistant uses them is its own decision — Conomize makes the data accessible, it does not control retrieval or ranking.
Example request
curl "https://conomize.com/api/merchants?category=nutrition-wellness&country=LU"Example response
{
"country": "LU",
"count": 1,
"merchants": [
{
"name": "Myprotein",
"slug": "myprotein",
"url": "/stores/myprotein",
"website": "https://www.myprotein.lu",
"category": "nutrition-wellness",
"shopping_categories": ["Protein powder", "Vitamins"],
"delivery_confirmed_countries": ["IT", "LU", "BE", "DE", "NL"],
"delivery_unknown_countries": ["FR"],
"delivery_availability_in_requested_country": "confirmed",
"delivery": [
{ "country": "IT", "availability": "confirmed", "evidence_url": "https://www.myprotein.it" },
{ "country": "FR", "availability": "not_confirmed", "evidence_url": null }
],
"conomize_status": "discovery",
"conomize_status_label": "Listed — discovery",
"verified_offers": 0
}
]
}Delivery fields
`delivery[].availability` has two values. `confirmed` means Conomize checked a merchant-owned source and recorded evidence for that market. `not_confirmed` means availability is unknown — it is never a statement that the merchant does not deliver there. Countries missing from the array are simply not modelled yet. Merchants are never filtered out of a response because a market is not confirmed.
Query parameters
| Parameter | Type | Notes |
|---|---|---|
| merchant | string (slug) | Filter by store, e.g. myprotein |
| country | ISO 3166-1 alpha-2 | Defaults to LU. Offers are country-scoped. |
| category | string (slug) | Category slug, e.g. nutrition-wellness |
| status | verified | unverified | expired | scheduled | disabled | Defaults to everything except disabled |
| limit | number (max 200) | Maximum number of offers returned |
| include_demo | boolean | Development only. Demo fixtures are excluded by default and are never marked verified. |