Discover/Marktplaats API
live

Marktplaats APImarktplaats.nl ↗

Search Marktplaats.nl classifieds and fetch full listing details — photos, price, seller, location, and timestamps — via two structured JSON endpoints.

Endpoint health
verified 1h ago
get_listing
search_listings
2/2 passing latest checkself-healing
Endpoints
2
Updated
2h ago

What is the Marktplaats API?

The Marktplaats.nl API exposes two endpoints that cover the Netherlands' largest classifieds platform: search_listings returns up to 100 results per page sorted newest-first with price and category filters, and get_listing returns a complete listing record including full-resolution photos, exact posting timestamp, seller ID, and shipping options. Together they surface over 15 structured fields per listing.

This call costs1 credit / call— charged only on success
Try it
1-based page number; each page holds up to 100 listings. Pages beyond max_page return an empty list.
Free-text search terms, e.g. 'marvel psa'.
Maximum asking price in euros (inclusive). Omitted = no upper bound.
Minimum asking price in euros (inclusive). Omitted = no lower bound.
Top-level Marktplaats category id to restrict the search to (the site's own numeric category id, e.g. 820 for Telecommunicatie). Omitted = all categories.
Second-level category id within category_id (the site's numeric id, e.g. 1959 for 'Mobiele telefoons | Toebehoren en Onderdelen'). Only honored together with category_id; without it the request is rejected as an input error.
→ api.parse.bot/scraper/d680dd13-1f6a-40a5-bc7c-e2fe573962bf/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/d680dd13-1f6a-40a5-bc7c-e2fe573962bf/search_listings?query=marvel+psa&max_price=300&min_price=100&category_id=820' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 2 totalmissing one? ·

Searches Marktplaats listings for a free-text query in title and description, sorted the same way as the site's 'Datum (nieuwste eerst)' option (newest first). Returns one page of up to 100 listings (the site's maximum page size); `page` selects the page (1-based, default 1) and `max_page` is the last page the site allows for this search, so `has_more` is true while page < max_page. `listings` is the site's own ordering: the site places Dagtopper promotions (is_dagtopper / promotion_type 'DAGTOPPER') ahead of regular listings, which breaks strict newest-first order, so each row carries is_promoted. For Dagtopper rows the site's search date reflects the promotion bump, so posted_date can be later than the original posting time that get_listing reports. Commercial Admarkt 'Topadvertentie' ads that the site shows above the results are returned separately in `top_ads` (their item_id starts with 'a' and they are not accepted by get_listing). Per-listing fields in search are snippets: description is the site's ~200-character snippet (description_is_full=false), photos contains only the main photo at full resolution, posted_date is the date only (posted_at is null) and is_business_seller is null because the search results do not carry it; get_listing fills all of these. The search results also do not carry bid data, so highest_bid and bid_count are always null in search rows and no bids list is included; get_listing returns the bids. price is euros as a number and is null when the listing has no asking price (bidding, negotiable, free, swap, see description); price_type is one of fixed, bidding, bidding_from, negotiable, free, swap, see_description. shipping is pickup, shipping, both, or null when unknown. A search with no matches returns an empty listings array with total_results 0. An unknown category id is rejected by the site and reported as an input error.

Input
ParamTypeDescription
pageinteger1-based page number; each page holds up to 100 listings. Pages beyond max_page return an empty list.
queryrequiredstringFree-text search terms, e.g. 'marvel psa'.
max_pricenumberMaximum asking price in euros (inclusive). Omitted = no upper bound.
min_pricenumberMinimum asking price in euros (inclusive). Omitted = no lower bound.
category_idintegerTop-level Marktplaats category id to restrict the search to (the site's own numeric category id, e.g. 820 for Telecommunicatie). Omitted = all categories.
subcategory_idintegerSecond-level category id within category_id (the site's numeric id, e.g. 1959 for 'Mobiele telefoons | Toebehoren en Onderdelen'). Only honored together with category_id; without it the request is rejected as an input error.
Response
{
  "type": "object",
  "fields": {
    "page": "page number returned",
    "query": "search terms as interpreted by the site",
    "top_ads": "array of commercial Admarkt 'Topadvertentie' ads shown above the results, same shape as listings",
    "has_more": "true when a next page exists",
    "listings": "array of listing summaries in the site's order (item_id, url, title, description snippet, description_is_full, price, price_type, photos, posted_date, posted_at, seller_id, seller_name, is_business_seller, city, shipping, category_id, is_reserved, highest_bid, bid_count, is_promoted, promotion_type, is_dagtopper, is_admarkt)",
    "max_page": "last page number the site allows for this search",
    "page_size": "maximum listings per page (100)",
    "total_results": "total number of matching listings reported by the site",
    "listings[].bid_count": "always null in search: the search results do not expose bids (see get_listing)",
    "listings[].highest_bid": "always null in search: the search results do not expose bids (see get_listing)"
  },
  "sample": {
    "data": {
      "page": 1,
      "query": "marvel psa",
      "top_ads": [
        {
          "url": "https://www.marktplaats.nl/v/hobby-en-vrije-tijd/verzamelkaartspellen-overige/a1528944510-pre-order-evoretro-bumper-for-psa-graded-card-slab-grad",
          "city": null,
          "price": 6.99,
          "title": "(Pre-order) Evoretro Bumper for PSA Graded Card Slab Grad...",
          "photos": [
            "https://admarkt-cdn.marktplaats.com/api/v1/icas-mp-pro-admarkt/images/a8/a86eb8cd-ca7f-4e52-8419-868de98fe83a?rule=eps_87.JPG"
          ],
          "item_id": "a1528944510",
          "shipping": "shipping",
          "posted_at": null,
          "seller_id": 23005459,
          "is_admarkt": true,
          "price_type": "fixed",
          "category_id": 1976,
          "description": "(pre-order) evoretro bumper for psa graded card slab gradient blue-pink glitter dit artikel is een pre-order.",
          "is_promoted": true,
          "is_reserved": false,
          "posted_date": "2026-09-30",
          "seller_name": "TBHstore.nl",
          "is_dagtopper": false,
          "promotion_type": "TOPADVERTENTIE",
          "is_business_seller": null,
          "description_is_full": false
        }
      ],
      "has_more": false,
      "listings": [
        {
          "url": "https://www.marktplaats.nl/v/hobby-en-vrije-tijd/verzamelkaartspellen-pokemon/m2444335440-groot-aanbod-pokemon-starwars-limited-edition-beeldjes",
          "city": "'s-Gravenzande",
          "price": null,
          "title": "Groot aanbod, pokemon, starwars, limited edition beeldjes",
          "photos": [
            "https://images.marktplaats.com/api/v1/hz-mp-pro-listing/images/20573c6b-3fa0-4ead-aa55-48bd1f940303"
          ],
          "item_id": "m2444335440",
          "shipping": "pickup",
          "posted_at": null,
          "seller_id": 698170,
          "is_admarkt": false,
          "price_type": "see_description",
          "category_id": 930,
          "description": "Groote aan bod. Pokemon. Star wars. Dragonball z. Voetbal. Marvel. Harry potter. Fortnite. Stripboek. Alles staat los op mijn marktplaatsaccount. Voor vragen stuur gerust een berichtje pokemon kaarten",
          "is_promoted": true,
          "is_reserved": false,
          "posted_date": "2026-09-30",
          "seller_name": "mewnl",
          "is_dagtopper": true,
          "promotion_type": "DAGTOPPER",
          "is_business_seller": null,
          "description_is_full": false
        },
        {
          "url": "https://www.marktplaats.nl/v/hobby-en-vrije-tijd/stickers-en-plaatjes/m2410359498-psa-9-max-verstappen-lewis-hamilton-bottas-topps-now-f1-6",
          "city": "Maastricht",
          "price": 35,
          "title": "PSA 9 Max Verstappen / Lewis Hamilton /Bottas Topps Now F1 6",
          "photos": [
            "https://images.marktplaats.com/api/v1/hz-mp-pro-listing/images/3adf2bcf-0ebf-4380-a6ae-dcc53c90c4a0"
          ],
          "item_id": "m2410359498",
          "shipping": "both",
          "posted_at": null,
          "seller_id": 27154418,
          "is_admarkt": false,
          "price_type": "bidding_from",
          "category_id": 2757,
          "description": "Psa 9 max verstappen / lewis hamilton / valtteri bottas red bull racing honda - mercedes amg petronas topps now f1 6 zie ook mijn andere advertenties!",
          "is_promoted": false,
          "is_reserved": false,
          "posted_date": "2026-06-13",
          "seller_name": "Nigel",
          "is_dagtopper": false,
          "promotion_type": null,
          "is_business_seller": null,
          "description_is_full": false
        }
      ],
      "max_page": 1,
      "page_size": 100,
      "total_results": 34
    },
    "status": "success"
  }
}

About the Marktplaats API

Search Listings

The search_listings endpoint accepts a required query string and returns an array of listing summaries sorted by Datum (nieuwste eerst) — the same newest-first order the site uses by default. Each item in the listings array includes item_id, url, title, a description snippet (description_is_full signals when the full text is already present), price, price_type, and location fields. The response also surfaces top_ads (commercial Topadvertentie placements), total_results, max_page, and a has_more flag for pagination. Use page (1-based) to step through results; pages beyond max_page return an empty list.

Filtering by Price and Category

Price filtering is handled by min_price and max_price, both in euros (inclusive bounds). Category scoping uses category_id for top-level categories (e.g. 820) and subcategory_id for second-level categories (e.g. 1959 for mobile phone accessories). These map directly to Marktplaats's own numeric category IDs, so you can combine them with the price range to run tightly scoped searches without post-filtering client-side.

Full Listing Detail

get_listing takes a single item_id (the m… identifier from search results) and returns the complete record: title, full description, price, city, shipping (one of pickup, shipping, both, or null), seller_id, ad_type, and posted_at as an ISO 8601 timestamp with the Europe/Amsterdam offset. The photos array contains every image at its original full resolution, with the main photo first — useful for visual pipelines or archival workflows that need more than the thumbnail available in search results.

Reliability & maintenanceVerified

The Marktplaats API is a managed, monitored endpoint for marktplaats.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when marktplaats.nl changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official marktplaats.nl API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track price trends for a specific product keyword across newly listed Marktplaats ads using min_price/max_price and posted_at.
  • Build a deal-alert tool that polls search_listings newest-first and triggers a notification when a listing price falls below a threshold.
  • Aggregate seller inventory by collecting all listings tied to a seller_id returned from get_listing.
  • Archive full listing details — description, photos, and timestamp — before items are removed from the platform.
  • Compare category-level supply by running search_listings with different category_id and subcategory_id combinations and comparing total_results.
  • Build a resale valuation tool that pulls historical asking prices for a query term across multiple pages using page and max_page.
  • Extract full-resolution product images via the photos array in get_listing for visual recognition or cataloguing workflows.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Marktplaats.nl have an official developer API?+
Marktplaats does not publish a publicly documented developer API for third-party use. There is no official endpoint or API key program listed on their site.
What does `get_listing` return that `search_listings` does not?+
get_listing returns the full description text, every photo at full resolution (main photo first), the exact posted_at ISO 8601 timestamp with Amsterdam timezone offset, seller_id, and the shipping option. The search endpoint returns only a description snippet and thumbnail-level data suitable for browsing, not archival or detail views.
What is the maximum number of results I can retrieve per search request?+
Each search_listings call returns up to 100 listings (the page_size field confirms this). Use the page parameter alongside max_page and has_more to paginate. Pages beyond max_page return an empty listings array.
Does the API expose seller profile details such as seller name, reviews, or ratings?+
Not currently. get_listing returns a numeric seller_id but does not include seller name, review count, or rating data. You can fork this API on Parse and revise it to add a seller-profile endpoint that fetches that information.
Are bid history or offer/negotiation data available through this API?+
Not currently. The API covers listing metadata, pricing, photos, and seller/location fields. Bid history and offer-thread data are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting that data.
Page content last updated . Spec covers 2 endpoints from marktplaats.nl.
Related APIs in MarketplaceSee all →
vinted.nl API
Access data from vinted.nl.
2ememain.be API
Search and browse listings on 2ememain.be, view detailed product information and seller profiles, and explore what items specific sellers have available. Filter by category, price, condition, and location to find listings across the marketplace — all with full seller details in one place.
funda.nl API
Search for property listings on Funda.nl, the largest Dutch real estate platform. Access prices, addresses, property details, and agent contact information across Dutch cities and neighbourhoods. Supports paginated browsing and bulk retrieval of listings by area.
fundainbusiness.nl API
Access data from fundainbusiness.nl.
autoscout24.de API
Access data from autoscout24.de.
huislijn.nl API
Search and browse housing listings on huislijn.nl to find properties for sale, rental, or vacation stays, and view detailed information about specific homes. Get access to the newest listings posted on the platform to stay updated on available properties.
ebay.nl API
Search for recently sold items on eBay Netherlands to discover what similar products have sold for, including their final prices, conditions, and other listing details. Use this information to research market values, set competitive pricing, or track sales trends for items you're interested in buying or selling.
dba.dk API
Search and retrieve detailed listings from Denmark's largest marketplace DBA.dk, including product information, pricing, and seller details across general goods and car categories. Browse marketplace categories, find specific items, and access comprehensive data on both regular listings and automotive inventory.