momox / medimops API & Scraper
The momox API returns medimops.de and momox-shop.fr — the sales side of momox SE, Europe's largest re-commerce dealer in second-hand media — as clean JSON in three actions: search, detail and categories.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
momox is not a marketplace. It buys used books, CDs, DVDs, Blu-rays, video games and software in bulk, grades every single copy by hand and sells it from its own warehouses, so there is exactly one seller per market, one price per condition grade and one stock count per condition grade, and no buy-box to reverse-engineer. The unit momox actually sells is a product times a condition grade, and that is what both actions return: five grades, momox's own, carried verbatim and never remapped — New, Like New, Very Good, Good, Acceptable — each with its own price, its own unit count and its own discount against the new price. The flagship is the barcode lookup, because momox keys its own catalogue on the barcode: hand detail an ISBN-13 or a 13-digit EAN and you get that one product, no fuzzy matching, no disambiguation step. ISBN-10 works too and is converted for you, which matters because the storefront's own search answers a bare ISBN-10 with zero hits. For a book it is a single request. What comes back is a real bibliographic record next to the prices: EAN, ISBN-10 and ISBN-13, author and translator, publisher and label, binding, page count, publication date, language, weight, the German FSK age rating where the product has one, the store's own star rating and review count, and the category breadcrumb. search covers the same catalogue by keyword or by shelf, with filters that were each measured against an unfiltered call in the same run: condition (several at once, and the source really unions them — 653 New plus 1,264 Good came back as 1,820 together), physical format, a price band, the FSK rating, a contributor shelf, and five sort orders verified to reorder the rows. Scale, measured on the German store on 2026-10-08 from the storefront's own facet counts: 6,973,323 book listings, 497,483 music, 270,513 film, 39,186 games and 7,133 software, 9,371,214 across the five condition grades. Four honest limits before you build. First, the source's own result total saturates at 10,000 — five materially different queries all reported exactly that — so the API publishes total_is_capped next to it and hands you the uncapped facet counts instead of pretending to enumerate 9.4 million rows. Second, page size is variable: 29, 28, 30, 29, 30, 27, 26 and 8 rows were measured on consecutive pages of one query, so read page_rows and last_page rather than multiplying. Third, a keyword cannot be combined with a category shelf, because the storefront silently drops the keyword on every shelf except the whole catalogue — the API rejects that combination with the measurement in the message instead of billing you for a category dump dressed up as a search. Fourth, the price the storefront prints is the price of the best condition it has in stock, not the cheapest copy: over 145 measured rows those two numbers differed in 95 of them, so every row carries best_price and lowest_price side by side with the condition each belongs to, and a flag for when they disagree. One ReefAPI key, no momox account, and the standard { ok, data, meta, error } envelope.
momox's five condition grades, and the catalogue behind each one
The grade tokens and the German and French labels are momox's own, read from the storefront's own condition filter; nothing is remapped onto a scale of ours. The listing column is the storefront's own uncapped count for that grade on the German store on 2026-10-08 — these are catalogue-wide figures, not a sample, and they move with the stock. The right-hand column is one measured product, the hardback Harry Potter und der Stein der Weisen (ISBN 9783551551672), to show that a grade is a price AND a quantity, not a label.
| grade value | momox's own label (DE / FR) | listings in that grade | that product's price and stock in that grade |
|---|---|---|---|
| New | Neu / Neuf | 4,918,650 | not stocked |
| UsedLikeNew | Gebraucht - Wie Neu / Comme neuf | 231,173 | not stocked |
| UsedVeryGood | Gebraucht - Sehr gut / Très bon état | 1,953,408 | not stocked |
| UsedGood | Gebraucht - Gut / Bon état | 1,868,315 | 4.51 EUR · 3,349 copies |
| UsedAcceptable | Gebraucht - Akzeptabel / Acceptable | 399,668 | 4.49 EUR · 470 copies |
Read the last two rows together and you have the reason this API publishes two prices per product. momox's storefront quotes 4.51 EUR for that book — the price of the best condition it has — while the cheaper copy is the Acceptable one at 4.49. The page's own structured data repeats 4.51, so a scraper that trusted the headline would miss the cheaper copy. Over 145 measured rows the two numbers differed in 95, which is why every row carries best_price, lowest_price, the condition each belongs to, and best_price_is_lowest. A product is normally stocked in two or three of the five grades, not all five.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/momox/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"market": "de",
"query": "harry potter",
"condition": [
"UsedGood"
],
"sort": "price_desc"
}
}{
"ok": true,
"meta": {
"api": "momox",
"endpoint": "search",
"mode": "live",
"latency_ms": 5599.4,
"record_count": 30,
"bytes": 530617,
"cache_hit": false,
"market": "de",
"storefront": "medimops",
"country": "DE",
"currency": "EUR",
"total_results": 1256,
"total_is_capped": false,
"catalogue_count_hint": 3508,
"pages": 42,
"last_page": 42,
"page": 1,
"page_rows": 30,
"page_size": "variable — 8 to 30 rows measured on consecutive pages of one query",
"has_more": true,
"exact_match": true,
"fallback_search": false,
"resolved_filters": {
"query": "harry potter",
"condition": [
"UsedGood"
],
"sort": "price_desc",
"page": 1
},
"price_range": {
"min": 12.69,
"max": 88.99
},
"source_path": "/categories/0/all/?q=harry+potter&condition=UsedGood&sorting=-price",
"upstream_requests": 7,
"charged_credits": 3,
"version": "1.0.0",
"request_id": "ca804a2a752f4cf5",
"queue_ms": 1.4,
"fetched_at": "2026-10-08T11:33:23.586Z"
},
"data": {
"products": [
{
"product_id": "M08831020765",
"mpid": "3PbFQKSiF",
"ean": "9788831020763",
"isbn13": "9788831020763",
"isbn10": "8831020765",
"title": "Harry Potter: La pietra filosofale-La camera dei segreti-Il prigioniero di Azkaban. Ediz. papercut MinaLima (Fuori collana Salani)",
"media_type": "book",
"format": "Gebundene Ausgabe",
"authors": [
"Rowling, J. K."
],
"translators": [],
"narrators": [],
"artists": [],
"contributor_name": "unbekannt",
"contributor_url": "https://www.medimops.de/authors/x-keine-angabe/",
"contributor_slug": "x-keine-angabe",
"publisher": null,
"label": "Harry Potter: La pietra filosofale-La camera dei segreti-Il prigioniero di Azkaban. Ediz. papercut MinaLima (Fuori collana Salani)",
"brand": null,
"edition": null,
"publication_date": "2024-11-12",
"release_date": null,
"page_count": 1248,
"weight_grams": null,
"item_count": 3,
"language": "de",
"age_rating": null,
"is_adult_content": null,
"best_price": 88.99,
"best_price_display": "88.99 EUR",
"best_price_condition": "UsedGood",
"lowest_price": 88.99,
"lowest_price_display": "88.99 EUR",
"lowest_price_condition": "UsedGood",
"best_price_is_lowest": true,
"new_price": null,
"saving_vs_new_pct": null,
"saving_vs_new_amount": null,
"on_sale": false,
"currency": "EUR",
"stock": 1,
"in_stock": true,
"stock_from_variants": 1,
"stock_agrees_with_variants": true,
"conditions_available": [
"UsedGood"
],
"offer_count": 1,
"offers": [
{
"variant_id": "[trimmed-depth]",
"condition": "[trimmed-depth]",
"price": "[trimmed-depth]",
"price_display": "[trimmed-depth]",
"currency": "[trimmed-depth]",
"stock": "[trimmed-depth]",
"in_stock": "[trimmed-depth]",
"on_sale": "[trimmed-depth]",
"saving_pct": "[trimmed-depth]",
"saving_amount": "[trimmed-depth]"
}
],
"is_active": true,
"image_url": "https://images2.medimops.eu/product/12e017/M08831020765-source.jpg",
"url": "https://www.medimops.de/rowling-j-k-harry-potter-la-pietra-filosofale-la-camera-dei-segreti-il-prigioniero-di-azkaban-ediz-papercut-minalima-fuori-collana-salani-hardcover-M08831020765.html",
"market": "de",
"storefront": "medimops",
"country": "DE",
"amazon_url": "https://www.amazon.de/gp/product/8831020765?tag=medimops-21",
"detail_params": {
"market": "de",
"product_id": "M08831020765"
},
"rating_average": null,
"rating_count": null,
"rating_breakdown": null,
"category_path": null
},
{
"product_id": "M03867176833",
"mpid": "1v3WBbroX",
"ean": "9783867176835",
"isbn13": "9783867176835",
"isbn10": "3867176833",
"title": "Harry Potter - Das große Hörbuch",
"media_type": "audiobook",
"format": "Audio CD",
"authors": [
"Rowling, J. K."
],
"translators": [],
"narrators": [
"Rufus Beck"
],
"artists": [],
"contributor_name": "Rowling, J. K.",
"contributor_url": "https://www.medimops.de/authors/j-k-rowling/",
"contributor_slug": "j-k-rowling",
"publisher": "DHV - Der Hörverlag",
"label": "DHV - Der Hörverlag",
"brand": null,
"edition": null,
"publication_date": "2010-11-12",
"release_date": null,
"page_count": null,
"weight_grams": null,
"item_count": 121,
"language": "de",
"age_rating": null,
"is_adult_content": false,
"best_price": 73.79,
"best_price_display": "73.79 EUR",
"best_price_condition": "UsedGood",
"lowest_price": 73.79,
"lowest_price_display": "73.79 EUR",
"lowest_price_condition": "UsedGood",
"best_price_is_lowest": true,
"new_price": null,
"saving_vs_new_pct": null,
"saving_vs_new_amount": null,
"on_sale": false,
"currency": "EUR",
"stock": 1,
"in_stock": true,
"stock_from_variants": 1,
"stock_agrees_with_variants": true,
"conditions_available": [
"UsedGood"
],
"offer_count": 1,
"offers": [
{
"variant_id": "[trimmed-depth]",
"condition": "[trimmed-depth]",
"price": "[trimmed-depth]",
"price_display": "[trimmed-depth]",
"currency": "[trimmed-depth]",
"stock": "[trimmed-depth]",
"in_stock": "[trimmed-depth]",
"on_sale": "[trimmed-depth]",
"saving_pct": "[trimmed-depth]",
"saving_amount": "[trimmed-depth]"
}
],
"is_active": true,
"image_url": "https://images2.medimops.eu/product/0b3042/M03867176833-source.jpg",
"url": "https://www.medimops.de/rowling-j-k-harry-potter-das-grosse-hoerbuch-audio-cd-M03867176833.html",
"market": "de",
"storefront": "medimops",
"country": "DE",
"amazon_url": "https://www.amazon.de/gp/product/3867176833?tag=medimops-21",
"detail_params": {
"market": "de",
"product_id": "M03867176833"
},
"rating_average": null,
"rating_count": null,
"rating_breakdown": null,
"category_path": null
},
{
"product_id": "M03844530533",
"mpid": "1v14Eq8vJ",
"ean": "9783844530537",
"isbn13": "9783844530537",
"isbn10": "3844530533",
"title": "Harry Potter. Die große Box zum Jubiläum. Alle 7 Bände.: Gelesen von Rufus Beck",
"media_type": "audiobook",
"format": "MP3 CD",
"authors": [
"Rowling, J. K."
],
"translators": [
"Klaus Fritz"
],
"narrators": [
"Rufus Beck"
],
"artists": [],
"contributor_name": "Rowling, J. K.",
"contributor_url": "https://www.medimops.de/authors/j-k-rowling/",
"contributor_slug": "j-k-rowling",
"publisher": "der Hörverlag",
"label": "der Hörverlag",
"brand": "Dhv Der Hörverlag",
"edition": "Ungekürzte Lesung",
"publication_date": "2018-08-27",
"release_date": "2018-08-27",
"page_count": null,
"weight_grams": null,
"item_count": 14,
"language": "de",
"age_rating": null,
"is_adult_content": false,
"best_price": 60.49,
"best_price_display": "60.49 EUR",
"best_price_condition": "UsedGood",
"lowest_price": 60.49,
"lowest_price_display": "60.49 EUR",
"lowest_price_condition": "UsedGood",
"best_price_is_lowest": true,
"new_price": 91.55,
"saving_vs_new_pct": 33,
"saving_vs_new_amount": 31.06,
"on_sale": false,
"currency": "EUR",
"stock": 12,
"in_stock": true,
"stock_from_variants": 12,
"stock_agrees_with_variants": true,
"conditions_available": [
"UsedGood"
],
"offer_count": 1,
"offers": [
{
"variant_id": "[trimmed-depth]",
"condition": "[trimmed-depth]",
"price": "[trimmed-depth]",
"price_display": "[trimmed-depth]",
"currency": "[trimmed-depth]",
"stock": "[trimmed-depth]",
"in_stock": "[trimmed-depth]",
"on_sale": "[trimmed-depth]",
"saving_pct": "[trimmed-depth]",
"saving_amount": "[trimmed-depth]"
}
],
"is_active": true,
"image_url": null,
"url": "https://www.medimops.de/rowling-j-k-harry-potter-die-grosse-box-zum-jubilaeum-alle-7-baende-gelesen-von-rufus-beck-mp3-cd-M03844530533.html",
"market": "de",
"storefront": "medimops",
"country": "DE",
"amazon_url": "https://www.amazon.de/gp/product/3844530533?tag=medimops-21",
"detail_params": {
"market": "de",
"product_id": "M03844530533"
},
"rating_average": null,
"rating_count": null,
"rating_breakdown": null,
"category_path": null
}
],
"market": "de",
"storefront": "medimops",
"country": "DE",
"currency": "EUR",
"seller": {
"name": "momox",
"kind": "first_party_retailer",
"legal_name": "momox SE",
"note": "momox buys, grades and sells every copy itself from its own warehouses; there is exactly one seller on this catalogue per market.",
"url": "https://www.medimops.de/"
},
"facets": {
"category": {
"param": "category_id",
"matched_products": 1208,
"values": [
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
]
},
"manufacturer": {
"param": "from",
"matched_products": 826,
"values": [
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
]
},
"variant_type": {
"param": "condition",
"matched_products": 3508,
"values": [
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
]
},
"price_range": {
"param": "price",
"matched_products": 1256,
"values": [
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
]
},
"medium": {
"param": "medium",
"matched_products": 1161,
"values": [
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
]
},
"audience_rating": {
"param": "rating",
"matched_products": 196,
"values": [
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
},
{
"label": "[trimmed-depth]",
"value": "[trimmed-depth]",
"count": "[trimmed-depth]",
"url": "[trimmed-depth]"
}
]
}
}
}
}What the momox / medimops API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search or browse one momox media storefront and get one row per product with its FULL condition ladder already attached — every grade momox has in stock with that grade's own price and unit count, so you do not need a second call to see whether the cheap copy is the acceptable one. Also the barcode lookup: hand `query` an ISBN-13 or a 13-digit EAN and the source returns exactly that one product (measured 1 row for three different barcodes across books, films and games). Every filter offered here was compared against an unfiltered control in the SAME run on two different queries and really changes the result; the two filters the source accepts and then ignores (`language`, and `category_id` as a query parameter) are not exposed at all. The response carries the source's own UNCAPPED facet counts next to its capped total, the exact-match flag, and a warning for anything the source dropped. | Pricing teams call search to search or browse one momox media storefront and get one row per product with its FULL conditi…. | market, query, category, condition, format, ... |
| detail | Everything one momox product page publishes, by momox article id, by ISBN or by EAN barcode. The complete condition ladder (a price, a unit stock count, a discount-versus-new figure and a sale flag for each grade momox holds), the bibliographic record (EAN, ISBN-10 and ISBN-13, author, translator, publisher, label, binding, page count, publication date, language, weight, FSK rating), the full description, the store's own review score and star breakdown, the category breadcrumb, the price momox quotes for a NEW copy for comparison, and optionally the other titles it links to the same author. Both of the page's price witnesses are read and reconciled: the headline `best_price` is the price of the best CONDITION in stock, not the cheapest copy — those two differed on 95 of 145 rows measured — so `lowest_price`, `lowest_price_condition` and `best_price_is_lowest` are published next to it, and `price_matches_page_schema` says whether the page's own schema.org block agrees. An id or barcode the store does not carry is NOT_FOUND, not an empty success. | Marketplace operators call detail to get everything one momox product page publishes, by momox article id, by ISBN or by EAN barcode. | market, product_id, isbn, ean, include_related |
| categories | The category tree of one storefront, straight from its own category sitemap: every shelf with the numeric id that `search` takes, its name, its depth, its parent and its url — 300 shelves on `de` and 228 on `fr` on 2026-10-08. This is the resolver for `search`'s `category`, which matters because the ids are NOT shared between markets: Bücher is 186606 on `de` while Livres is 8 on `fr`. One request, ~48 KB, and the five top-level shelves come back with the catalogue counts the storefront itself publishes for them. | Catalog enrichment teams call categories to get the category tree of one storefront, straight from its own category sitemap. | market, max_depth |
Call search from your stack
curl -X POST https://api.reefapi.com/momox/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"market":"de","query":"harry potter","condition":["UsedGood"],"sort":"price_desc"}'import requests
r = requests.post(
"https://api.reefapi.com/momox/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"market": "de",
"query": "harry potter",
"condition": [
"UsedGood"
],
"sort": "price_desc"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/momox/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"market": "de",
"query": "harry potter",
"condition": [
"UsedGood"
],
"sort": "price_desc"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.momox.search with {"market":"de","query":"harry potter","condition":["UsedGood"],"sort":"price_desc"}.Who uses this API and why
- Price a used-book or used-media inventory against the market leader by barcode: one ISBN-13 in, five graded prices and five unit counts out, in a single call.
- Build a 'is this worth buying second-hand' check for a retail catalogue — the response carries momox's price per grade next to the price it quotes for a new copy and the discount in percent.
- Track the real depth of a long-tail title instead of an in-stock flag: measured examples returned 3,819 copies of one Harry Potter edition across two grades and 13 of a Nintendo Switch game.
- Mine a condition ladder for arbitrage: on 95 of 145 measured rows the cheapest copy was NOT the one the storefront quotes, and the API exposes both numbers so you can find those spreads.
- Compare the German and French stores for the same ISBN — measured 4.51 EUR with 3,819 copies on medimops.de and 4.49 EUR with 3,818 on momox-shop.fr in the same minute.
Questions developers ask before integrating
Is momox a marketplace, and whose price am I reading?
It is a dealer. momox SE buys used media in bulk, grades every copy by hand and sells it from its own warehouses, so there is exactly one seller per market and one price per condition grade. Nothing in a response is another trader's offer, there is no buy-box, and because the only seller is a company there is no personal data on this source at all.
Can I really look a title up by its barcode?
Yes, and it is the fastest route in: momox keys its own catalogue on the barcode. An ISBN-13 or a full 13-digit EAN returns exactly one product — measured 1 row each for a book ISBN, a film EAN, a game EAN and a software EAN. ISBN-10 works too and is converted for you, which matters because the storefront's own search answers a bare ISBN-10 with zero hits. One warning worth repeating: an EAN must keep its leading zeros. The storefront answers 711719833857 with nothing and 0711719833857 with the right product, so the API pads a 12-digit code for you and verifies the check digit before it asks.
How many listings are there, and why does the total say 10,000?
The catalogue is far bigger than the total the storefront reports. Its own uncapped category counts on the German store on 2026-10-08 were 6,973,323 books, 497,483 music, 270,513 film, 39,186 games and 7,133 software, and 9,371,214 across the five condition grades. But its result total saturates at exactly 10,000 — five materially different queries all reported 10,000 and 334 pages — so the API publishes total_is_capped when it hits that ceiling and hands you the uncapped facet counts as catalogue_count_hint rather than repeating a number it knows is wrong.
Is the stock a real number or an in-stock flag?
A real unit count, per grade and in total, and the two agreed on every product measured. Examples from live calls: 3,349 Good plus 470 Acceptable copies of one Harry Potter hardback (3,819 total), 105 of a DVD, 13 of a Nintendo Switch game, 21 of a PlayStation title. You also get in_stock booleans derived from those counts, and a flag for whether the per-grade counts add up to the total momox publishes.
Which filters actually work?
Only the ones measured to change the result against an unfiltered call in the same run, on two different queries. Working: condition (several at once — 653 New plus 1,264 Good returned as 1,820 together), physical format (2,378 unfiltered became 754 paperback, 207 DVD, 96 Audio CD), a price band (50 in the 1-2 EUR band, 558 at 20 EUR and above), the FSK age rating, a contributor shelf, an include-unavailable switch (2,378 became 5,759), and five sort orders verified to reorder the rows. Three things the storefront accepts and then ignores — a language filter, a category passed as a query parameter, and a misspelt sort word — are deliberately not offered, and anything else it drops is reported in meta.warnings.
Can I search a keyword inside one category?
No, and the API refuses rather than fake it. The storefront silently drops the keyword on every category shelf except the whole catalogue: the film shelf returned the same 28 rows and the same total with the keyword, without it, and with a nonsense keyword, and its own parameter echo showed the keyword had been thrown away. So query and category are mutually exclusive here, with the measurement in the error message. Narrow a keyword with format, condition or a price band instead — those all work — or browse the shelf without a keyword.
Which stores does this cover, and does the store change the price?
Two: medimops.de for Germany and momox-shop.fr for France, both in EUR, both the same platform. The store changes the price, the stock and the category ids, not only the language — measured on the same ISBN in the same minute, 4.51 EUR with 3,819 copies on the German store and 4.49 EUR with 3,818 on the French one. Category ids are not transferable (Bücher is 186606, Livres is 8), which is what the categories action is for: it returns 300 German and 228 French shelves with every id, name, depth and parent. The German store also publishes an FSK age-rating filter that the French one does not have, and asking for it on France is rejected rather than silently ignored.
What is NOT in this API?
Three things, said plainly. momoxfashion.com, the group's second-hand clothing store, is a different platform with a different catalogue and is not read here. momox.de, where momox publishes what it PAYS for a used ISBN, is not here either — this API is the selling side. And there is no per-copy detail: momox publishes a grade for the copy you will receive, not a photo or a note about that individual item. Paging also stops where the source stops: page size is variable (29, 28, 30, 29, 30, 27, 26 and 8 rows were measured on consecutive pages of one query) and one page past the end the storefront quietly broadens the query, so the API reports last_page, page_rows and an exact_match flag instead of letting a loop run off the end.
What is the momox / medimops API?
momox / medimops API is a ReefAPI endpoint group for europe's biggest second-hand media dealer as json: look a book up by its isbn or a disc by its ean and get momox's whole condition ladder — a price and a real unit count for new, like new, very good, good and acceptable — across 9.4 million live listings on medimops.de and momox-shop.fr. It returns live JSON through POST requests under /momox/v1.
Is the momox / medimops API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. momox / medimops calls use the same shared credit balance as every other ReefAPI engine.
Do I need a momox / medimops login or account?
No login to momox / medimops is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the momox / medimops data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the momox / medimops API use?
momox / medimops actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call momox / medimops from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call momox actions with the same key, credit pool and JSON envelope used by normal REST requests.