Marktplaats & 2dehands
Search Marktplaats & 2dehands (NL/BE classifieds), vet sellers, compare prices, use your account.
Should I use this
Quality & Safety
Findings (1)
- LOWin list_seller_listings
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"marktplaats-mcp": {
"command": "uvx",
"args": [
"marktplaats-mcp"
]
}
}
}Runnable packages
0.2.0stdioRemote endpoints
https://marktplaats-mcp.jaspnerd.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢search_listings(query, site, category, subcategory, attributes, ...)
Search second-hand listings on Marktplaats or 2dehands with filters for category, category-specific attributes, price range, condition, delivery, recency and distance from a postal code. Paid promotions are filtered out unless include_sponsored is set.
Input Schema
{
"type": "object",
"properties": {
"query": {
"default": "",
"description": "Free-text search, e.g. 'racefiets' or 'iphone 15'. May be empty if a category is given.",
"type": "string"
},
"site": {
"default": "marktplaats",
"description": "Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).",
"enum": [
"marktplaats",
"2dehands"
],
"type": "string"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Top-level category name (Dutch, e.g. 'Fietsen en Brommers') or numeric id. See list_categories."
},
"subcategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Subcategory name (e.g. 'Fietsen | Racefietsen' or 'Fietsen | Heren | Herenfietsen') or numeric id. See list_categories with a parent."
},
"attributes": {
"anyOf": [
{
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
]
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Category-specific filters as {filter: value}, using the labels from list_category_filters, e.g. {'Merk': 'Gazelle', 'Framehoogte': '57 tot 61 cm'} or {'Bouwjaar': '2018-2022', 'Kilometerstand': '-100000', 'Brandstof': 'Benzine'}. A list means any of those values. Ranges are 'min-max', 'min-' or '-max'."
},
"postcode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Dutch/Belgian postal code to search around, e.g. '1011 AB' or '2000'. Required for distance filtering and for distance_km in results."
},
"distance_km": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Max distance from postcode in kilometers (needs postcode)."
},
"price_from": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum price in euros."
},
"price_to": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum price in euros."
},
"condition": {
"anyOf": [
{
"enum": [
"new",
"as_good_as_new",
"used",
"refurbished",
"not_working"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by item condition."
},
"delivery": {
"anyOf": [
{
"enum": [
"pickup",
"shipping"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "'shipping' for ads that can be shipped, 'pickup' for collection."
},
"language": {
"anyOf": [
{
"enum": [
"nl",
"fr",
"all"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "2dehands only: 'nl' for Dutch-language ads, 'fr' for French, 'all' (default)."
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop listings whose title or description contains any of these words, e.g. ['hoesje', 'defect', 'gezocht']."
},
"offered_since_days": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Only listings placed within the last N days."
},
"sort_by": {
"default": "relevance",
"description": "'relevance' (default), 'date' (newest first with desc), 'price' or 'location'.",
"enum": [
"relevance",
"date",
"price",
"location"
],
"type": "string"
},
"sort_order": {
"default": "desc",
"description": "'asc' or 'desc'.",
"enum": [
"asc",
"desc"
],
"type": "string"
},
"limit": {
"default": 10,
"description": "Results per page (1-100).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Pagination: pass 'next_offset' from the previous result.",
"minimum": 0,
"type": "integer"
},
"compact": {
"default": true,
"description": "True (default) returns a token-efficient shortlist; False adds description, seller, images and attributes per listing.",
"type": "boolean"
},
"include_unpriced": {
"default": false,
"description": "Keep ads without an asking price (free, 'Bieden' without amount) when sorting by price or filtering on price. Default False: those ads would otherwise sort as €0 and flood the cheapest pages.",
"type": "boolean"
},
"include_sponsored": {
"default": false,
"description": "Include paid promotions (DAGTOPPER/TOPADVERTENTIE) and the sponsored top block.",
"type": "boolean"
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"site": {
"title": "Site",
"type": "string"
},
"total_count": {
"title": "Total Count",
"type": "integer"
},
"offset": {
"title": "Offset",
"type": "integer"
},
"limit": {
"title": "Limit",
"type": "integer"
},
"returned": {
"title": "Returned",
"type": "integer"
},
"next_offset": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Next Offset"
},
"suggested_query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Suggested Query"
},
"listings": {
"items": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
},
"price": {
"title": "Price",
"type": "string"
},
"price_euros": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Euros"
},
"url": {
"title": "Url",
"type": "string"
},
"listed": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Listed"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "City"
},
"distance_km": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Distance Km"
},
"reserved": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Reserved"
},
"is_business": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Business"
},
"is_sponsored": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Sponsored"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"seller": {
"anyOf": [
{
"properties": {
"id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"is_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Verified"
}
},
"title": "Seller",
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"image_urls": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Urls"
},
"attributes": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Attributes"
},
"category_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Category Id"
}
},
"required": [
"id",
"title",
"price",
"url"
],
"title": "Listing",
"type": "object"
},
"title": "Listings",
"type": "array"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Note"
}
},
"required": [
"site",
"total_count",
"offset",
"limit",
"returned",
"listings"
],
"title": "SearchResult"
}🟢get_listing_details(listing_id, site, max_images)
Fetch the full advertisement: complete description, attributes, status (active/closed), exact listing time, view and favorite counts, bidding state, shipping, images, and seller signals such as response rate and account age.
Input Schema
{
"type": "object",
"properties": {
"listing_id": {
"description": "Listing id from search results (e.g. 'm2400641485') or a pasted marktplaats.nl / 2dehands.be listing URL.",
"type": "string"
},
"site": {
"default": "marktplaats",
"description": "Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).",
"enum": [
"marktplaats",
"2dehands"
],
"type": "string"
},
"max_images": {
"default": 5,
"description": "Max image URLs to return (0-20).",
"maximum": 20,
"minimum": 0,
"type": "integer"
}
},
"required": [
"listing_id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"site": {
"title": "Site",
"type": "string"
},
"url": {
"title": "Url",
"type": "string"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Price"
},
"price_euros": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Euros"
},
"price_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Type"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"listed_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Listed At"
},
"since": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Since"
},
"category_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Category Id"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "City"
},
"postcode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Postcode"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Country"
},
"view_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "View Count"
},
"favorited_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Favorited Count"
},
"reserved": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Reserved"
},
"delivery": {
"anyOf": [
{
"enum": [
"pickup",
"shipping",
"both"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Delivery"
},
"buy_it_now": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Buy It Now"
},
"bidding": {
"anyOf": [
{
"properties": {
"enabled": {
"title": "Enabled",
"type": "boolean"
},
"minimum_bid_euros": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Minimum Bid Euros"
},
"bids_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Bids Count"
},
"highest_bid_euros": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Highest Bid Euros"
}
},
"required": [
"enabled"
],
"title": "Bidding",
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"attributes": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Attributes"
},
"car_attributes": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Car Attributes"
},
"image_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Count"
},
"image_urls": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Urls"
},
"seller": {
"anyOf": [
{
"properties": {
"id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"is_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Verified"
}
},
"title": "Seller",
"type": "object"
},
{
"properties": {
"id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Type"
},
"active_since": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Active Since"
},
"response_rate_percent": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Response Rate Percent"
},
"response_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Response Label"
},
"average_score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Average Score"
},
"number_of_reviews": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Number Of Reviews"
},
"listings_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Listings Count"
}
},
"title": "SellerDetails",
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Seller"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Note"
}
},
"required": [
"id",
"site",
"url"
],
"title": "ListingDetails"
}🟢get_seller_profile(seller_id, site)
Look up a seller's trust signals: verified bank account / identity / phone number, business verification, payment method, review score and count. Null means the marketplace does not report that signal. Use list_seller_listings to see everything the seller currently offers.
Input Schema
{
"type": "object",
"properties": {
"seller_id": {
"description": "Numeric seller id from a listing's seller field.",
"type": "integer"
},
"site": {
"default": "marktplaats",
"description": "Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).",
"enum": [
"marktplaats",
"2dehands"
],
"type": "string"
}
},
"required": [
"seller_id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"seller_id": {
"title": "Seller Id",
"type": "integer"
},
"site": {
"title": "Site",
"type": "string"
},
"bank_account_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Bank Account Verified"
},
"identification_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Identification Verified"
},
"phone_number_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Phone Number Verified"
},
"business_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Business Verified"
},
"payment_method": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Payment Method"
},
"average_score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Average Score"
},
"number_of_reviews": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Number Of Reviews"
},
"low_bid_threshold_percent": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Low Bid Threshold Percent"
}
},
"required": [
"seller_id",
"site"
],
"title": "SellerProfile"
}🟢list_seller_listings(seller_id, site, query, sort_by, sort_order, ...)
Everything one seller currently has on offer. Useful to spot dealers posing as private sellers, duplicate or suspicious ads, and bundle deals.
Input Schema
{
"type": "object",
"properties": {
"seller_id": {
"description": "Numeric seller id.",
"type": "integer"
},
"site": {
"default": "marktplaats",
"description": "Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).",
"enum": [
"marktplaats",
"2dehands"
],
"type": "string"
},
"query": {
"default": "",
"description": "Optional text to filter the seller's ads.",
"type": "string"
},
"sort_by": {
"default": "date",
"description": "'relevance' (default), 'date' (newest first with desc), 'price' or 'location'.",
"enum": [
"relevance",
"date",
"price",
"location"
],
"type": "string"
},
"sort_order": {
"default": "desc",
"description": "'asc' or 'desc'.",
"enum": [
"asc",
"desc"
],
"type": "string"
},
"limit": {
"default": 20,
"description": "Results per page (1-100).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Pagination: pass 'next_offset' from the previous result.",
"minimum": 0,
"type": "integer"
},
"compact": {
"default": true,
"description": "True (default) returns a token-efficient shortlist; False adds description, seller, images and attributes per listing.",
"type": "boolean"
}
},
"required": [
"seller_id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"site": {
"title": "Site",
"type": "string"
},
"total_count": {
"title": "Total Count",
"type": "integer"
},
"offset": {
"title": "Offset",
"type": "integer"
},
"limit": {
"title": "Limit",
"type": "integer"
},
"returned": {
"title": "Returned",
"type": "integer"
},
"next_offset": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Next Offset"
},
"suggested_query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Suggested Query"
},
"listings": {
"items": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
},
"price": {
"title": "Price",
"type": "string"
},
"price_euros": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Euros"
},
"url": {
"title": "Url",
"type": "string"
},
"listed": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Listed"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "City"
},
"distance_km": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Distance Km"
},
"reserved": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Reserved"
},
"is_business": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Business"
},
"is_sponsored": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Sponsored"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"seller": {
"anyOf": [
{
"properties": {
"id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"is_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Verified"
}
},
"title": "Seller",
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"image_urls": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Urls"
},
"attributes": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Attributes"
},
"category_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Category Id"
}
},
"required": [
"id",
"title",
"price",
"url"
],
"title": "Listing",
"type": "object"
},
"title": "Listings",
"type": "array"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Note"
}
},
"required": [
"site",
"total_count",
"offset",
"limit",
"returned",
"listings"
],
"title": "SearchResult"
}🟢list_categories(parent)
Browse the category tree (shared by marktplaats.nl and 2dehands.be) to find names/ids for search_listings' category and subcategory filters.
Input Schema
{
"type": "object",
"properties": {
"parent": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Omit for all top-level categories; pass a top-level category name or id for its subcategories."
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"level": {
"enum": [
"L1",
"L2"
],
"title": "Level",
"type": "string"
},
"parent": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Parent"
},
"categories": {
"items": {
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"name": {
"title": "Name",
"type": "string"
},
"parent": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Parent"
}
},
"required": [
"id",
"name"
],
"title": "Category",
"type": "object"
},
"title": "Categories",
"type": "array"
}
},
"required": [
"level",
"categories"
],
"title": "CategoriesResult"
}🟢list_category_filters(category, subcategory, site, query, max_options)
Discover the filters available for a category or search (brand, frame height, mileage, fuel, RAM, ...), with their valid values and how many ads match each. Pass the labels to search_listings' 'attributes' parameter.
Input Schema
{
"type": "object",
"properties": {
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Top-level category name (Dutch, e.g. 'Fietsen en Brommers') or numeric id. See list_categories."
},
"subcategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Subcategory name (e.g. 'Fietsen | Racefietsen' or 'Fietsen | Heren | Herenfietsen') or numeric id. See list_categories with a parent."
},
"site": {
"default": "marktplaats",
"description": "Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).",
"enum": [
"marktplaats",
"2dehands"
],
"type": "string"
},
"query": {
"default": "",
"description": "Optional search text; needed when no category is given.",
"type": "string"
},
"max_options": {
"default": 25,
"description": "Max values per filter, most common first (1-200).",
"maximum": 200,
"minimum": 1,
"type": "integer"
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"site": {
"title": "Site",
"type": "string"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
},
"subcategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Subcategory"
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Query"
},
"filters": {
"items": {
"properties": {
"key": {
"title": "Key",
"type": "string"
},
"label": {
"title": "Label",
"type": "string"
},
"type": {
"enum": [
"choice",
"range"
],
"title": "Type",
"type": "string"
},
"options": {
"default": [],
"items": {
"properties": {
"label": {
"title": "Label",
"type": "string"
},
"id": {
"title": "Id",
"type": "integer"
},
"count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Count"
}
},
"required": [
"label",
"id"
],
"title": "FilterOption",
"type": "object"
},
"title": "Options",
"type": "array"
},
"min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Min"
},
"max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max"
},
"unit": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
}
},
"required": [
"key",
"label",
"type"
],
"title": "SearchFilter",
"type": "object"
},
"title": "Filters",
"type": "array"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Note"
}
},
"required": [
"site",
"filters"
],
"title": "FiltersResult"
}🟢check_new_listings(query, site, since, category, subcategory, ...)
Poll for listings placed after a given moment (newest first, paid promotions filtered out). Stateless: store the returned 'cursor' and pass it as 'since' on the next call. When the result is truncated the cursor only advances to the oldest ad returned, so nothing is ever skipped.
Input Schema
{
"type": "object",
"properties": {
"query": {
"default": "",
"description": "Free-text search, e.g. 'racefiets' or 'iphone 15'. May be empty if a category is given.",
"type": "string"
},
"site": {
"default": "marktplaats",
"description": "Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).",
"enum": [
"marktplaats",
"2dehands"
],
"type": "string"
},
"since": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ISO 8601 timestamp (e.g. '2026-07-15T09:00:00Z'); only listings placed after this moment are returned. Defaults to 24 hours ago. Pass the 'cursor' from the previous call to poll incrementally."
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Top-level category name (Dutch, e.g. 'Fietsen en Brommers') or numeric id. See list_categories."
},
"subcategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Subcategory name (e.g. 'Fietsen | Racefietsen' or 'Fietsen | Heren | Herenfietsen') or numeric id. See list_categories with a parent."
},
"attributes": {
"anyOf": [
{
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
]
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Category-specific filters as {filter: value}, using the labels from list_category_filters, e.g. {'Merk': 'Gazelle', 'Framehoogte': '57 tot 61 cm'} or {'Bouwjaar': '2018-2022', 'Kilometerstand': '-100000', 'Brandstof': 'Benzine'}. A list means any of those values. Ranges are 'min-max', 'min-' or '-max'."
},
"postcode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Dutch/Belgian postal code to search around, e.g. '1011 AB' or '2000'. Required for distance filtering and for distance_km in results."
},
"distance_km": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Max distance from postcode in kilometers (needs postcode)."
},
"price_from": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum price in euros."
},
"price_to": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum price in euros."
},
"condition": {
"anyOf": [
{
"enum": [
"new",
"as_good_as_new",
"used",
"refurbished",
"not_working"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by item condition."
},
"delivery": {
"anyOf": [
{
"enum": [
"pickup",
"shipping"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "'shipping' for ads that can be shipped, 'pickup' for collection."
},
"language": {
"anyOf": [
{
"enum": [
"nl",
"fr",
"all"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "2dehands only: 'nl' for Dutch-language ads, 'fr' for French, 'all' (default)."
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop listings whose title or description contains any of these words, e.g. ['hoesje', 'defect', 'gezocht']."
},
"limit": {
"default": 30,
"description": "Max new listings to return (1-100).",
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"site": {
"title": "Site",
"type": "string"
},
"since": {
"title": "Since",
"type": "string"
},
"cursor": {
"title": "Cursor",
"type": "string"
},
"new_count": {
"title": "New Count",
"type": "integer"
},
"truncated": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Truncated"
},
"listings": {
"items": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
},
"price": {
"title": "Price",
"type": "string"
},
"price_euros": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Euros"
},
"url": {
"title": "Url",
"type": "string"
},
"listed": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Listed"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "City"
},
"distance_km": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Distance Km"
},
"reserved": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Reserved"
},
"is_business": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Business"
},
"is_sponsored": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Sponsored"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"seller": {
"anyOf": [
{
"properties": {
"id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"is_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Verified"
}
},
"title": "Seller",
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"image_urls": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Urls"
},
"attributes": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Attributes"
},
"category_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Category Id"
}
},
"required": [
"id",
"title",
"price",
"url"
],
"title": "Listing",
"type": "object"
},
"title": "Listings",
"type": "array"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Note"
}
},
"required": [
"site",
"since",
"cursor",
"new_count",
"listings"
],
"title": "NewListingsResult"
}🟢analyze_prices(query, site, category, subcategory, attributes, ...)
Price statistics (min, quartiles, median, max, mean) over the most relevant asking prices for a search, plus the cheapest matches. Free, bidding-only and reserved ads are excluded and outliers beyond 1.5x the interquartile range are trimmed. Most reliable with a subcategory plus attributes (e.g. subcategory 'Mobiele telefoons | Apple iPhone', attributes {'Model': 'iPhone 15', 'Opslagcapaciteit': '128 GB'}) instead of free text, which drags in accessories.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "Free-text search, e.g. 'racefiets' or 'iphone 15'. May be empty if a category is given.",
"type": "string"
},
"site": {
"default": "marktplaats",
"description": "Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).",
"enum": [
"marktplaats",
"2dehands"
],
"type": "string"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Top-level category name (Dutch, e.g. 'Fietsen en Brommers') or numeric id. See list_categories."
},
"subcategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Subcategory name (e.g. 'Fietsen | Racefietsen' or 'Fietsen | Heren | Herenfietsen') or numeric id. See list_categories with a parent."
},
"attributes": {
"anyOf": [
{
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
]
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Category-specific filters as {filter: value}, using the labels from list_category_filters, e.g. {'Merk': 'Gazelle', 'Framehoogte': '57 tot 61 cm'} or {'Bouwjaar': '2018-2022', 'Kilometerstand': '-100000', 'Brandstof': 'Benzine'}. A list means any of those values. Ranges are 'min-max', 'min-' or '-max'."
},
"postcode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Dutch/Belgian postal code to search around, e.g. '1011 AB' or '2000'. Required for distance filtering and for distance_km in results."
},
"distance_km": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Max distance from postcode in kilometers (needs postcode)."
},
"price_from": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum price in euros."
},
"price_to": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum price in euros."
},
"condition": {
"anyOf": [
{
"enum": [
"new",
"as_good_as_new",
"used",
"refurbished",
"not_working"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by item condition."
},
"delivery": {
"anyOf": [
{
"enum": [
"pickup",
"shipping"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "'shipping' for ads that can be shipped, 'pickup' for collection."
},
"language": {
"anyOf": [
{
"enum": [
"nl",
"fr",
"all"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "2dehands only: 'nl' for Dutch-language ads, 'fr' for French, 'all' (default)."
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop listings whose title or description contains any of these words, e.g. ['hoesje', 'defect', 'gezocht']."
},
"sample_size": {
"default": 60,
"description": "Listings to sample, most relevant first (10-100).",
"maximum": 100,
"minimum": 10,
"type": "integer"
}
},
"required": [
"query"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"site": {
"title": "Site",
"type": "string"
},
"query": {
"title": "Query",
"type": "string"
},
"total_count": {
"title": "Total Count",
"type": "integer"
},
"sample_size": {
"title": "Sample Size",
"type": "integer"
},
"excluded_outliers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Excluded Outliers"
},
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Min"
},
"p25": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "P25"
},
"median": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Median"
},
"p75": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "P75"
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Max"
},
"mean": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Mean"
},
"cheapest": {
"default": [],
"items": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
},
"price": {
"title": "Price",
"type": "string"
},
"price_euros": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Euros"
},
"url": {
"title": "Url",
"type": "string"
},
"listed": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Listed"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "City"
},
"distance_km": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Distance Km"
},
"reserved": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Reserved"
},
"is_business": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Business"
},
"is_sponsored": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Sponsored"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"seller": {
"anyOf": [
{
"properties": {
"id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"is_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Verified"
}
},
"title": "Seller",
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"image_urls": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Urls"
},
"attributes": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Attributes"
},
"category_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Category Id"
}
},
"required": [
"id",
"title",
"price",
"url"
],
"title": "Listing",
"type": "object"
},
"title": "Cheapest",
"type": "array"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Note"
}
},
"required": [
"site",
"query",
"total_count",
"sample_size"
],
"title": "PriceStats"
}Community
Evidence