| site | No | Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium). | marktplaats |
| query | Yes | Free-text search, e.g. 'racefiets' or 'iphone 15'. May be empty if a category is given. | |
| exclude | No | Drop listings whose title or description contains any of these words, e.g. ['hoesje', 'defect', 'gezocht']. | |
| category | No | Top-level category name (Dutch, e.g. 'Fietsen en Brommers') or numeric id. See list_categories. | |
| delivery | No | 'shipping' for ads that can be shipped, 'pickup' for collection. | |
| language | No | 2dehands only: 'nl' for Dutch-language ads, 'fr' for French, 'all' (default). | |
| postcode | No | Dutch/Belgian postal code to search around, e.g. '1011 AB' or '2000'. Required for distance filtering and for distance_km in results. | |
| price_to | No | Maximum price in euros. | |
| condition | No | Filter by item condition. | |
| attributes | No | 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'. | |
| price_from | No | Minimum price in euros. | |
| distance_km | No | Max distance from postcode in kilometers (needs postcode). | |
| sample_size | No | Listings to sample, most relevant first (10-100). | |
| subcategory | No | Subcategory name (e.g. 'Fietsen | Racefietsen' or 'Fietsen | Heren | Herenfietsen') or numeric id. See list_categories with a parent. | |