Skip to content

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.

Fields of the offer feed
FieldTypeMeaning
offer_idtextYour own identifier of the offer. It stays the same for as long as the offer exists.
nametextThe offer’s name as you write it.
categorytextWhat it is, for example mobile, internet, tv, phone, bank_account or credit_card.
price_regularnumberThe price per billing period with no promotion, with a point as the decimal mark.
price_promonumberThe promotional price per billing period. Empty when there is no promotion.
promo_valid_fromdateFirst day of the promotion, as 2026-11-01.
promo_valid_untildateLast day of the promotion, as 2026-12-31.
promo_conditionstextWhat the promotion requires, for example “new customers only”.
price_after_promonumberThe price per billing period once the promotion has ended.
min_term_monthswhole numberThe minimum contract term in months. 0 when there is none.
setup_feenumberThe one-off fee at the start. 0 when there is none.
billing_periodtextmonth or year: the period the prices above are for.
currencytextThe ISO 4217 code, for example CHF.
urladdressThe public page of the offer on your site.
last_modifieddate and timeWhen 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.