For providers
Publish your offers as a file in this format. The automatic reader is being built.
What to publish
A file with your current offers, at any stable address: CSV or JSON with the fields below, or the same facts as schema.org markup on your own offer pages. Put it at /.well-known/meconomy-offers.json on your site, or link it from yourllms.txt. That is the address and format meconomy.ch will read.
There is no obligation, no link in return and no payment. A provider that publishes no file is read from its public pages as before (MEconomyBot).
The fields
One row or object per offer. CSV: UTF-8, comma-separated, one header row with these names. Dates are ISO 8601. Only offer_id, name, price_regular, currency and url are needed. Leave any other field empty when it does not apply or you do not state it; we then show “not stated”, never a guess.
| Field | Type | Meaning |
|---|---|---|
offer_id | text | Your own identifier of the offer. It stays the same for as long as the offer exists. |
name | text | The offer’s name as you write it. |
category | text | What it is, for example mobile, internet, tv, phone, bank_account or credit_card. |
price_regular | number | The price per billing period with no promotion, with a point as the decimal mark. |
price_promo | number | The promotional price per billing period. Empty when there is no promotion. |
promo_valid_from | date | First day of the promotion, as 2026-11-01. |
promo_valid_until | date | Last day of the promotion, as 2026-12-31. |
promo_conditions | text | What the promotion requires, for example “new customers only”. |
price_after_promo | number | The price per billing period once the promotion has ended. |
min_term_months | whole number | The minimum contract term in months. 0 when there is none. |
setup_fee | number | The one-off fee at the start. 0 when there is none. |
billing_period | text | month or year: the period the prices above are for. |
currency | text | The ISO 4217 code, for example CHF. |
url | address | The public page of the offer on your site. |
last_modified | date and time | When this row last changed, as 2026-10-26T08:00:00+01:00. |
JSON example
An invented offer, to show the shape. A JSON file holds an offers list.
{
"offers": [
{
"offer_id": "example-mobile-m",
"name": "Example Mobile M",
"category": "mobile",
"price_regular": 39.9,
"price_promo": 29.9,
"promo_valid_from": "2026-11-01",
"promo_valid_until": "2026-12-31",
"promo_conditions": "New customers only",
"price_after_promo": 39.9,
"min_term_months": 0,
"setup_fee": 0,
"billing_period": "month",
"currency": "CHF",
"url": "https://www.example.ch/mobile/m",
"last_modified": "2026-10-26T08:00:00+01:00"
}
]
}Or schema.org markup on your offer pages
If your offer pages already carry schema.org Product and Offer markup, that is read in the same way. Give the promotional price with priceValidUntil, and the price after the promotion as a second UnitPriceSpecification that starts the day after. The markup must be in the HTML your server sends, not added later by a script.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Example Mobile M",
"sku": "example-mobile-m",
"offers": {
"@type": "Offer",
"url": "https://www.example.ch/mobile/m",
"price": "29.90",
"priceCurrency": "CHF",
"priceValidUntil": "2026-12-31",
"priceSpecification": [
{
"@type": "UnitPriceSpecification",
"price": "29.90",
"priceCurrency": "CHF",
"unitCode": "MON",
"validThrough": "2026-12-31"
},
{
"@type": "UnitPriceSpecification",
"price": "39.90",
"priceCurrency": "CHF",
"unitCode": "MON",
"validFrom": "2027-01-01"
}
]
}
}How we will read it
- The automatic reader is being built. Until it is live, a provider who publishes a feed can tell hello@meconomy.ch, and it is read by hand.
- We will fetch the file at most once an hour, and ask with
If-Modified-Since, so an unchanged file costs you one short answer. - A feed will be read like a page. We keep its address, the time we read it and a fingerprint of the file, and a price from a feed is shown with the same source and date as any other price.
- Our checks will apply to it as to any price: a figure that looks wrong is held back until a person has looked.
- We will name ourselves when we fetch it, with the user agent
MEconomyBot/1.0 (+https://meconomy.ch/about/bot).
To stop, or to ask something
Once the reader is live, removing the file ends the reading. For anything else write to hello@meconomy.ch or use the contact page.