skills$openclaw/marktplaats
pvoo2.0k

by pvoo

marktplaats – OpenClaw Skill

marktplaats is an OpenClaw Skills integration for coding workflows. Search Marktplaats.nl classifieds across all categories with filtering support.

2.0k stars1.1k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namemarktplaats
descriptionSearch Marktplaats.nl classifieds across all categories with filtering support. OpenClaw Skills integration.
ownerpvoo
repositorypvoo/marktplaats
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @pvoo/marktplaats
last updatedFeb 7, 2026

Maintainer

pvoo

pvoo

Maintains marktplaats in the OpenClaw Skills directory.

View GitHub profile
File Explorer
10 files
.
bin
marktplaats-categories.js
2.9 KB
marktplaats-search.js
7.8 KB
src
api.js
14.4 KB
index.js
160 B
_meta.json
272 B
package.json
707 B
README.md
3.8 KB
SKILL.md
2.7 KB
SKILL.md

name: marktplaats description: Search Marktplaats.nl classifieds across all categories with filtering support. homepage: https://www.marktplaats.nl metadata: {"clawdbot":{"emoji":"🇳🇱","requires":{"bins":["node"]}}}

Marktplaats Skill

Search any Marktplaats category, filter by condition/delivery, list categories, and fetch listing details.

CLI

npm install -g {baseDir}

# Search
marktplaats-search "<query>" [options]
  -n, --limit <num>         Number of results (default: 10, max: 100)
  -c, --category <id>       Category ID (top-level)
  --min-price <cents>       Minimum price in euro cents
  --max-price <cents>       Maximum price in euro cents
  --sort <relevance|date|price-asc|price-desc>
  --param key=value         Filter by attribute (repeatable)
  --details [target]        Fetch details for "first" result or URL/ID
  --json                    Output raw JSON

# Categories
marktplaats-categories            # main categories
marktplaats-categories <id>       # sub-categories for a category
  --json                          Output raw JSON

Filters

Common filters work with --param:

FilterValues
conditionNieuw, Refurbished, Zo goed als nieuw, Gebruikt, Niet werkend
deliveryOphalen, Verzenden
buyitnowtrue (Direct Kopen only)

English aliases also work: new, used, like-new, pickup, shipping

Examples

# New laptops only
marktplaats-search "laptop" --param condition=Nieuw

# Used cameras with shipping
marktplaats-search "camera" --param condition=Gebruikt --param delivery=Verzenden

# Cars under €15k
marktplaats-search "bmw 330d" --category 96 --max-price 1500000

# Furniture, pickup only
marktplaats-search "eettafel" --param delivery=Ophalen --sort price-asc

# Get details for first result
marktplaats-search "iphone" -n 1 --details first

# List all categories
marktplaats-categories

# BMW sub-categories
marktplaats-categories 96

Programmatic API (ESM)

import { searchListings, fetchCategories, getListingDetails } from '{baseDir}';

// Search with filters
const results = await searchListings({
  query: 'espresso machine',
  params: { condition: 'Nieuw', delivery: 'Verzenden' },
  limit: 10,
});

// Get categories
const categories = await fetchCategories();  // top-level
const bmw = await fetchCategories(96);       // BMW sub-categories

// Fetch listing details
const details = await getListingDetails(results.listings[0].vipUrl);

Notes

  • Prices are in euro cents (€15,000 = 1500000)
  • Results include full URLs to listings
  • Use --json to see all available facets and filter keys
  • Filter hints are shown after search results
README.md

Marktplaats CLI & JS Client

Search Marktplaats.nl classifieds with a clean CLI and JavaScript client. Works for all categories, supports attribute filtering, and includes a detail fetcher.

Install

npm install -g .
# or use locally with: npx marktplaats-search "road bike"

Requires Node 18+ (uses built-in fetch).

CLI

Search

marktplaats-search "<query>" [options]

Options:
  -n, --limit <num>         Number of results (default 10, max 100)
  -c, --category <id>       Category ID (top-level)
  --min-price <cents>       Minimum price in euro cents
  --max-price <cents>       Maximum price in euro cents
  --sort <relevance|date|price-asc|price-desc>
  --param key=value         Filter by attribute (repeatable)
  --details [target]        Fetch detail page for "first" result or a URL/ID
  --json                    Output raw JSON from the API
  -h, --help                Show help

Filters

Filter results with --param:

FilterValues
conditionNieuw, Refurbished, Zo goed als nieuw, Gebruikt, Niet werkend
deliveryOphalen, Verzenden
buyitnowtrue (Direct Kopen only)

English aliases work too: new, used, like-new, broken, pickup, shipping

Examples

# New laptops only
marktplaats-search "laptop" --param condition=Nieuw

# Used cameras with shipping
marktplaats-search "camera" --param condition=Gebruikt --param delivery=Verzenden

# BMW under €15k, sorted by price
marktplaats-search "bmw 330d" --category 96 --max-price 1500000 --sort price-asc

# Furniture, pickup only
marktplaats-search "eettafel" --param delivery=Ophalen

# Get full details for first result
marktplaats-search "iphone" -n 1 --details first

Categories

marktplaats-categories            # main categories
marktplaats-categories <id>       # sub-categories

Options:
  --json        Output raw JSON
  -h, --help    Show help

Examples:

marktplaats-categories           # Show all 36 main categories
marktplaats-categories 91        # Cars sub-categories (BMW, Audi, etc.)
marktplaats-categories 504       # Home & Living sub-categories

Programmatic API

import { searchListings, fetchCategories, getListingDetails } from 'marktplaats';

// Search with filters
const results = await searchListings({
  query: 'espresso machine',
  limit: 10,
  params: { condition: 'Nieuw', delivery: 'Verzenden' },
});

console.log(`Found ${results.total} results`);
results.listings.forEach(listing => {
  console.log(`${listing.title} - ${listing.priceDisplay}`);
});

// Get categories
const categories = await fetchCategories();  // top-level
const bmw = await fetchCategories(96);       // BMW sub-categories

// Fetch listing details
const details = await getListingDetails(results.listings[0].vipUrl);
console.log(details.description);

API Reference

searchListings(options)

Search for listings.

Options:

  • query (string, required) - Search query
  • limit (number) - Max results (default: 10, max: 100)
  • categoryId (number) - Category ID filter
  • minPrice (number) - Min price in cents
  • maxPrice (number) - Max price in cents
  • sort ('relevance' | 'date' | 'price-asc' | 'price-desc')
  • params (object) - Attribute filters like { condition: 'Nieuw' }

Returns: { listings, total, facets, categories, raw }

fetchCategories(parentId?)

Get category options.

Returns: { categories, facets, raw }

getListingDetails(urlOrPath)

Fetch details from a listing page.

Returns: { url, description, priceDisplay, images, structuredData, contentLength }

Notes

  • Prices are in euro cents (€15,000 = 1500000)
  • Results include full clickable URLs
  • Use --json to explore all available facets and filter options
  • Filter hints are shown after each search

Testing

npm test

License

MIT

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install marktplaats?

Run openclaw add @pvoo/marktplaats in your terminal. This installs marktplaats into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/pvoo/marktplaats. Review commits and README documentation before installing.