ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Blog
Maisons du monde12 min readNov 14, 2026

How to Get Maisons du Monde Promo Prices With an API (Price, Crossed-Out Price and Seller in Every Storefront, Polled Through Black Friday and the Soldes)

Scavio's Maisons du Monde API returns price, crossed-out price, discount and seller per item in 12 storefronts. Find, compare and poll daily, 1 credit a call.

Scavio Team

Nov 14, 2026

Try the Maisons du Monde API free
scavio
Furniture / Promo price
Maisons du monde

To get Maisons du Monde promo prices, read each item's price next to its crossed-out was_price and the page's discount_percent, and store the country and seller with it. Scavio's Maisons du Monde API returns all four on every item: POST /api/v1/maisonsdumonde/search and /category return 40 items per call and can filter to discounted items, /deals reads the Black Friday grid, and /product returns one item in full. It covers 9 countries in 12 storefronts, in euros and Swiss francs. Every call costs 1 credit, so 100 items read daily is 3,000 credits a month, $3 on the Growth plan of $1 per 1,000 credits.

A Maisons du Monde promo price needs four things per row: the price, the crossed-out price, the storefront and who sells it. The storefront matters because the same item can carry a different price in another country, and the seller matters because in France, Germany, Spain and Italy most of the catalog is sold by marketplace sellers who set their own prices. Every response in the steps below is a trimmed capture from live calls on November 14, 2026, between 18:11 and 18:26 UTC, or from our playground samples captured from the live API the same day. Prices are numbers in the market's currency: 449.5 with "currency": "EUR" is 449.50 euros. Images are trimmed from every sample, and the docs list every field.

Step 1: Find the item id

Every Maisons du Monde product URL ends with its id: .../p/canape-3-places-orange-ecureuil-city-238617.htm is 238617. Items sold by Maisons du Monde have digits; marketplace items start with M (M24132196). The id is the same on every market. To find ids by keyword, search in the market's language:

Bash
curl -s https://api.scavio.dev/api/v1/maisonsdumonde/search \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "table", "country": "fr"}'

The first of 40 results:

JSON
{
  "query": "table",
  "country": "fr",
  "language": "fr",
  "currency": "EUR",
  "count": 40,
  "sponsored_count": 0,
  "total": 51822,
  "page": 1,
  "page_size": 40,
  "total_pages": 75,
  "sort": "relevance",
  "items": [
    {
      "position": 1,
      "id": "166560",
      "name": "Table à manger extensible, L160/230 cm",
      "collection": "Bronx",
      "brand": "Maisons du Monde",
      "url": "https://www.maisonsdumonde.com/FR/fr/p/table-a-manger-extensible-l160-230-cm-bronx-166560.htm",
      "price": 319.2,
      "was_price": 399,
      "discount_percent": 20,
      "currency": "EUR",
      "badges": ["BLACK FRIDAY"],
      "rating": 4.08,
      "review_count": 304,
      "color_count": null,
      "sold_by": "mdm",
      "offer_id": null,
      "sponsored": false,
      "condition": null,
      "store_only": false,
      "purchase_status": "purchasable"
    }
  ]
}

total is exact, but the site lists at most 250 pages. sort takes relevance, price_asc, price_desc or rating; there is no newest or discount sort. A keyword that names a category answers that category and says so in redirected_to. Marketplace tiles that are paid placements come back flagged sponsored: true and are not counted in count. 1 credit.

Step 2: Read one product

Bash
curl -s https://api.scavio.dev/api/v1/maisonsdumonde/product \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id": "238617", "country": "fr"}'

The City 3-seat sofa, with variants, dimensions, description, images and markets cut:

JSON
{
  "id": "238617",
  "gtin13": "3611872386177",
  "name": "Canapé 3 places orange écureuil",
  "collection": "City",
  "brand": "Maisons du Monde",
  "url": "https://www.maisonsdumonde.com/FR/fr/p/canape-3-places-orange-ecureuil-city-238617.htm",
  "price": 449.5,
  "was_price": 899,
  "discount_percent": 50,
  "currency": "EUR",
  "eco_participation": 13.5,
  "badges": [],
  "stock": { "status": "purchasable", "quantity": 0 },
  "store_only": false,
  "sold_by": "mdm",
  "seller": null,
  "rating": 5,
  "review_count": 1,
  "country": "fr",
  "language": "fr"
}

Half price, and no BLACK FRIDAY badge: badges are labels, not the promotion itself, so read was_price and discount_percent rather than the badge. eco_participation is the French furniture recycling fee, already included in price, and appears on France only. Product also returns variants (3 for this sofa), dimensions (251 x 72 x 89 cm), materials, made_in, assembly and dimension PDFs, the review summary the page shows, the page's questions and answers, and markets: the URL of the same item in each of the 12 storefronts. Send url instead of id if you have the link. An unknown id, or an item not sold in that market, is a 404 and is charged. 1 credit.

Step 3: Compare one id across storefronts

Send the same id with a different country (and language for Belgium, fr or nl, and Switzerland, fr, de or it). Prices are never converted. Three items read in several markets on November 14:

idItemCountrypricewas_pricediscount_percentcurrency
238617City 3-seat sofafr449.589950EUR
238617City 3-seat sofabe399.579950EUR
238617City 3-seat sofach449.589950CHF
234542Beige chaise longuefr799.299920EUR
234542Beige chaise longuebe1039.2129920EUR
204172Round gilded mirrorfr37.4574.9950EUR
204172Round gilded mirrorch45.9591.950CHF

The same discount, on three different prices. That is why a promo-price record keys on id and country, never id alone. Across all 172 discounted sofas sold by Maisons du Monde in France that day, Luxembourg, the Netherlands, Germany, Spain, Italy and Portugal matched France on every item we could match, Belgium differed on 19 of 170, and Switzerland showed the same number in CHF on 111 of 165 and a 9 to 10% higher number on the rest. The best Maisons du Monde promo price APIs has the full comparison.

Step 4: Watch a category's promotions

To watch many items for few credits, read a category grid filtered to discounted items. The category id is the end of a /c/ URL and is the same in every market:

Bash
curl -s https://api.scavio.dev/api/v1/maisonsdumonde/category \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category": "n4dc562d7bb509362a3a2102db4cbf90b6454f1f", "country": "fr", "sold_by": "mdm", "on_sale": true, "sort": "price_asc"}'
JSON
{
  "category": { "id": "n4dc562d7bb509362a3a2102db4cbf90b6454f1f", "name": "Canapés" },
  "count": 40,
  "total": 172,
  "page": 1,
  "page_size": 40,
  "total_pages": 5,
  "sort": "price_asc",
  "requested_filters": { "on_sale": true, "sold_by": "mdm" },
  "items": [
    {
      "position": 1,
      "id": "242715",
      "name": "Dossier pour canapé modulable gris charbon",
      "collection": "Neo Elementary",
      "price": 79.5,
      "was_price": 159,
      "discount_percent": 50,
      "currency": "EUR",
      "eco_participation": 0.06,
      "badges": ["BLACK FRIDAY"],
      "rating": 5,
      "review_count": 1,
      "sold_by": "mdm"
    }
  ],
  "facets": [
    {
      "id": "disc",
      "name": "Taux de réduction",
      "options": [
        { "id": "all", "label": "Toutes les promotions", "count": 172 },
        { "id": "50-100", "label": "-50% et plus", "count": 88 },
        { "id": "40-100", "label": "-40% et plus", "count": 88 },
        { "id": "30-100", "label": "-30% et plus", "count": 88 },
        { "id": "20-100", "label": "-20% et plus", "count": 172 }
      ]
    }
  ],
  "country": "fr",
  "language": "fr",
  "currency": "EUR"
}

The disc facet is a free summary: without on_sale, the same call on all 480 sofas sold by Maisons du Monde returned the same counts, so one call per category tells you how many items are on promotion and how many are at least 50% off. On November 14 every discounted sofa was exactly 20% or 50% off. min_discount takes 20, 30, 40 or 50; price_min and price_max are in the market's currency. One trap when you page a grid sorted by price: two items at the same price can swap across a page edge, so one repeats on the next page and the other never shows. Deduplicate by id. 1 credit a page.

Step 5: Tell Maisons du Monde items from marketplace sellers

In France, Germany, Spain and Italy, Maisons du Monde runs a marketplace, and it is most of the catalog. The same sofa category without sold_by on November 14:

CountrySofas listedSold by Maisons du MondeMarketplace
France18,33648017,856
Germany9,4284858,943
Spain6,8404836,357
Italy6,2144805,734

Belgium, Luxembourg, the Netherlands, Portugal and Switzerland list Maisons du Monde items only. Every item carries sold_by; marketplace ids start with M and carry an offer_id. Grid tiles do not name the seller, so call product for a marketplace item:

JSON
{
  "id": "M24132196",
  "name": "Canapé droit 4 places double méridienne velours côtelé terracotta",
  "brand": "Best Mobilier",
  "price": 1099,
  "was_price": 1399,
  "discount_percent": 20,
  "currency": "EUR",
  "sold_by": "marketplace",
  "seller": {
    "id": "2066",
    "name": "BESTMOBILIER",
    "url": "https://www.maisonsdumonde.com/FR/fr/m/bestmobilier-2066",
    "rating": 4.06,
    "orders": 61386,
    "member_since": "2020-04-02"
  },
  "offer_id": "14621945"
}

discount_percent is the percentage the page shows. On marketplace items it is a rounded label: 1,099 against 1,399 is 21.4% off, shown as 20%. If you need the exact cut, compute it from price and was_price. POST /api/v1/maisonsdumonde/seller with {"seller_id": "2066", "country": "fr"} returns the seller's rating (4.06 from 3,059 reviews), 61,393 orders, approval delay, shipping zone and return terms, plus its catalog as a grid: 1,494 items. Search and category take seller (the seller's code) to read one seller's items. 1 credit each.

Step 6: Read the Black Friday grid

Bash
curl -s https://api.scavio.dev/api/v1/maisonsdumonde/deals \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"event": "black_friday", "country": "fr", "sold_by": "mdm"}'
JSON
{
  "event": {
    "type": "black_friday",
    "name": "Black Friday",
    "category_id": "n4b664e720704d0157d72e4afb6be43ac6fb9563"
  },
  "count": 40,
  "total": 1005,
  "page": 1,
  "total_pages": 26,
  "sort": "relevance",
  "items": [
    {
      "position": 1,
      "id": "209577",
      "name": "Table de chevet en bois de paulownia et tiroir blanc, L42 cm",
      "collection": "Spring",
      "price": 31.95,
      "was_price": 39.99,
      "discount_percent": 20,
      "currency": "EUR",
      "badges": ["BLACK FRIDAY"],
      "rating": 3.71,
      "review_count": 156,
      "sold_by": "mdm"
    }
  ]
}

1,005 items sold by Maisons du Monde were in the French Black Friday grid on November 14, 234 of them at least 50% off; Belgium's held 1,002 and Switzerland's 998. With marketplace sellers, the French grid listed 107,344 items. event also takes second_chance (France only: used and returned items, with their condition), and category turns any category into its discounted items. The grid is not the whole promotion: in six French categories, 216 of the 481 discounted items carried no BLACK FRIDAY badge. An event that is not running answers 404. 1 credit a page.

Step 7: Poll every day through Black Friday and the soldes

This script reads a watchlist of id and country pairs once and stores one row per pair per day in SQLite. Run it from cron each morning:

Python
import os, sqlite3, datetime, requests

API = "https://api.scavio.dev/api/v1/maisonsdumonde/product"
HEADERS = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"}
WATCH = [  # (item id, country)
    ("238617", "fr"), ("238617", "be"), ("238617", "ch"),
    ("234542", "fr"), ("234542", "be"),
    ("204172", "fr"), ("204172", "ch"),
    ("M24132196", "fr"),
]

db = sqlite3.connect("mdm_prices.db")
db.execute("""CREATE TABLE IF NOT EXISTS prices (
  day TEXT, id TEXT, country TEXT, currency TEXT, price REAL, was_price REAL,
  discount_percent INTEGER, sold_by TEXT, PRIMARY KEY (day, id, country))""")

day = datetime.date.today().isoformat()
for item_id, country in WATCH:
    r = requests.post(API, headers=HEADERS, timeout=120, json={"id": item_id, "country": country})
    if r.status_code != 200:
        print(item_id, country, r.status_code, r.text[:120])  # 502/503 are not charged: retry later
        continue
    p = r.json()["data"]
    row = (day, p["id"], p["country"], p["currency"], p["price"], p["was_price"],
           p["discount_percent"], p["sold_by"])
    db.execute("INSERT OR REPLACE INTO prices VALUES (?,?,?,?,?,?,?,?)", row)
    print(*row)
db.commit()

Its first run, on November 14, 2026:

dayidcountrycurrencypricewas_pricediscount_percentsold_by
2026-11-14238617frEUR449.589950mdm
2026-11-14238617beEUR399.579950mdm
2026-11-14238617chCHF449.589950mdm
2026-11-14234542frEUR799.299920mdm
2026-11-14234542beEUR1039.2129920mdm
2026-11-14204172frEUR37.4574.9950mdm
2026-11-14204172chCHF45.9591.950mdm
2026-11-14M24132196frEUR1099139920marketplace

Eight credits a day. To find changes, compare each row with the previous row of the same id and country:

SELECT id, country, day, price, was_price,
       LAG(price) OVER (PARTITION BY id, country ORDER BY day) AS prev_price,
       LAG(was_price) OVER (PARTITION BY id, country ORDER BY day) AS prev_was
FROM prices ORDER BY id, country, day;

A promotion starts when was_price appears, ends when it goes back to null, and deepens when price falls while was_price stays put. The dates worth reading more often:

  • Black Friday: Friday, November 27, 2026. Maisons du Monde's Black Friday promotion was already running on November 14; read every six hours from November 23.
  • French winter soldes: Wednesday, January 6, 2027 from 8 a.m. to Tuesday, February 2, 2027, per France's official tourism site, which says the official dates apply to brands' websites as well as shops. The summer soldes run June 23 to July 20, 2027.
  • Belgian winter sales: January 2 to 31, 2027, per the City of Brussels.

For a category, store every item of each daily grid the same way, keyed on id and country.

Step 8: Know what the crossed-out price is, and what it is not

French law sets the rule for a reduction notice. Article L112-1-1 of the Code de la consommation: "Toute annonce d'une réduction de prix indique le prix antérieur pratiqué par le professionnel avant l'application de la réduction de prix" (any price-reduction notice states the prior price the seller charged before the reduction). The API returns the crossed-out price as was_price and the page's percentage as discount_percent. The Maisons du Monde pages we read show no 30-day lowest price and no price history, so the API returns neither; your own daily rows are the history. Private sales that need an account, member prices and in-store prices are out of scope.

Step 9: Read reviews, pooled across markets

Bash
curl -s https://api.scavio.dev/api/v1/maisonsdumonde/reviews \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id": "186339", "country": "fr"}'
JSON
{
  "product_id": "186339",
  "sort": "newest",
  "rating": 4.07,
  "review_count": 830,
  "rating_histogram": { "1": 44, "2": 55, "3": 102, "4": 223, "5": 406 },
  "reviews": [
    {
      "rating": 4,
      "text": "Très jolie petit canapé convient très bien pour petit espace. Il faut juste acheter un surmatelas pour y dormir",
      "date": "2026-10-27",
      "author": "Katrine M.",
      "country": null,
      "source_market": null,
      "syndicated": false,
      "criteria": [
        { "label": "Style", "rating": 5 },
        { "label": "Rapport qualité / prix", "rating": 4 },
        { "label": "Confort", "rating": 3 }
      ],
      "brand_reply": null
    }
  ]
}

Reviews are pooled across every Maisons du Monde market and shown translated into the request language: 7 of these 10 came from Italy, Spain and Belgium (source_market, syndicated: true). Sort by newest, rating_desc or rating_asc, 1 to 30 per page, and pass next_cursor for the next page; there is no star filter. A product with no reviews, or a marketplace item, answers 404. 1 credit.

Step 10: Find stores and store stock

Stores, store and availability work in France, Belgium, Germany, Spain, Italy, Portugal and Switzerland. Stores take a postcode:

Bash
curl -s https://api.scavio.dev/api/v1/maisonsdumonde/stores \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"postcode": "75011", "country": "fr"}'

The first of 10 stores, with the week's hours cut to two days:

JSON
{
  "id": "125",
  "name": "Paris - Faubourg St Antoine (12ème)",
  "address": "32 Rue du Faubourg Saint-Antoine",
  "postcode": "75012",
  "city": "Paris",
  "country": "fr",
  "distance_km": 1,
  "open_now": true,
  "hours": [
    { "day": "monday", "slots": [{ "open": "10:00", "close": "19:30" }] },
    { "day": "sunday", "slots": [] }
  ],
  "click_collect": "standard"
}

Then one item's stock in one store, with the market's delivery options:

Bash
curl -s https://api.scavio.dev/api/v1/maisonsdumonde/availability \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id": "204172", "store_id": "125", "country": "fr"}'
JSON
{
  "product_id": "204172",
  "store": { "id": "125", "name": "Paris - Faubourg St Antoine (12ème)", "postcode": "75012", "city": "Paris" },
  "in_stock": false,
  "quantity": 0,
  "stock_text": "Stock indisponible",
  "display_model": false,
  "delivery": [
    { "type": "home", "title": "Livraison à domicile", "available": true, "from_price": 6.9, "currency": "EUR", "price_text": "à partir de 6,90 €" },
    { "type": "store_pickup", "title": "Retrait en magasin", "available": false, "from_price": null }
  ]
}

Home delivery is a from-price per product and market ("à partir de 6,90 €"); the exact cost for a postcode is only shown in the cart and is not returned. POST /api/v1/maisonsdumonde/store with {"store_id": "41", "country": "fr"} returns one store's phone, full hours and services (the Marseille store lists free two-hour click and collect and furniture assembly among them). Store calls are slow, 24 to 72 seconds in our samples, so set a timeout of two minutes. 1 credit each.

All Maisons du Monde endpoints

EndpointWhat it returnsMarketsCredits
POST /api/v1/maisonsdumonde/searchItems for a keyword, 40 a page with the exact total, price, crossed-out price, discount, badges, rating, seller type; filters and facet countsAll 12 storefronts1
POST /api/v1/maisonsdumonde/productOne item by id or URL: prices, stock quantity, variants, dimensions, materials, seller, review summary, Q&A, the item's URL in every storefrontAll 121
POST /api/v1/maisonsdumonde/categoryA category grid by id or URL, 40 a page, with the search sorts and filtersAll 121
POST /api/v1/maisonsdumonde/dealsThe Black Friday grid, the French Seconde Chance grid, or a category's discounted itemsAll 12 (Seconde Chance France only)1
POST /api/v1/maisonsdumonde/reviewsRating histogram, criteria and paged reviews, pooled and translatedAll 121
POST /api/v1/maisonsdumonde/storesUp to 10 stores near a postcode, with hours and click and collectFrance, Belgium, Germany, Spain, Italy, Portugal, Switzerland1
POST /api/v1/maisonsdumonde/storeOne store: address, phone, hours, servicesSame as stores1
POST /api/v1/maisonsdumonde/availabilityOne item's stock in one store, plus home delivery and pickup optionsSame as stores1
POST /api/v1/maisonsdumonde/sellerA marketplace seller's profile and catalog gridFrance, Germany, Spain, Italy1

Failed calls (502, 503) are not charged; an item, category, event or store that does not exist is. Austria (closed in 2026) and the UK (closed in 2023) answer 400 before anything is charged.

Getting started

  1. Sign up for 50 free credits, no card, and copy your API key.
  2. Run a search or a category in the playground and pick your item ids and countries.
  3. Save the Step 7 script with your list, set SCAVIO_API_KEY, and schedule it daily.
  4. After Black Friday, query the table by id and country for promotions that started, deepened or ended.

The money math on the Growth plan of $1 per 1,000 credits: 100 items in one country read daily cost 3,000 credits a month, $3; the discounted items of six French categories, 15 grid pages, read daily cost 450 credits a month, $0.45; the Hobby plan, $15 a month for 3,000 credits, covers the 100-item list. The best Maisons du Monde promo price APIs compares five options, and the Maisons du Monde API page lists every field.

Reference: Maisons du Monde API overview · search docs · product docs · category docs · deals docs · reviews docs · stores docs · availability docs · seller docs · best Maisons du Monde promo price APIs · how often does Maisons du Monde have sales? · how to get IKEA prices by country · how to get Wayfair price history

Frequently asked questions

Does Maisons du Monde have an API?

Not a public one for its catalog or prices. Its API is for approved marketplace sellers, who use it to manage their own products, offers and stock. Scavio's Maisons du Monde API returns the public search results, products, category and Black Friday grids, reviews, stores, store stock and marketplace sellers as JSON, 1 credit a call.

Is the Maisons du Monde price the same in every country?

Not always. On November 14, 2026, 172 discounted sofas carried the French price in Luxembourg, the Netherlands, Germany, Spain, Italy and Portugal on every item we could match, but Belgium priced 19 of 170 differently, and Switzerland is priced in Swiss francs. Store the country and currency with every reading and compare like with like.

When are the Maisons du Monde sales in 2026 and 2027?

Black Friday is November 27, 2026, and Maisons du Monde's Black Friday promotion was already running on November 14. The French winter soldes run from January 6 to February 2, 2027 and the summer soldes from June 23 to July 20, 2027, per France's official tourism site. The City of Brussels gives the Belgian winter sales as January 2 to 31, 2027.

Does the API return the 30-day lowest price?

No. The Maisons du Monde product pages we read show the current price, the crossed-out price and a discount percentage, but no 30-day lowest price, so the API returns price, was_price and discount_percent and nothing else. To know whether a promotion price is new, keep your own daily readings.

Can I collect Maisons du Monde prices automatically?

Maisons du Monde's terms reserve its rights over the site's content, including database rights, and prohibit reproducing or using it without its prior consent; they allow downloading copies for personal, non-commercial use. This is not legal advice; read the current terms for your use case.

Maisons du Monde promo prices as JSON

  • Price, crossed-out price, discount and seller on every item
  • France, Belgium, Luxembourg, the Netherlands, Germany, Spain, Italy, Portugal and Switzerland
  • 9 endpoints, 1 credit a call
Try the Maisons du Monde API free

50 free credits, no credit card

On this page

  1. Step 1: Find the item id
  2. Step 2: Read one product
  3. Step 3: Compare one id across storefronts
  4. Step 4: Watch a category's promotions

Related articles

View all
  • scavio
    Furniture / Promo price
    Maisons du monde
    5 Best Maisons du Monde Promo Price APIs in 2026: Scavio Compared 172 Discounted Sofas Across 9 Countries, and Belgium Priced 19 of Them Differently
  • scavio
    Furniture / Sales
    Maisons du monde
    How Often Does Maisons du Monde Have Sales? The 2026-2027 Sales Calendar, and a Black Friday Snapshot: 34.4% of 1,398 Items Were Exactly 20% or 50% Off
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

Ask AI about Scavio

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy