Summary
bol.com Retailer API for sellers on the Dutch and Belgian marketplace: orders, shipments with track and trace, returns, FBB inventory, offers with price and stock, commission, catalog content, competing offers, ratings, invoices and performance indicators. Client ID and secret.
Guided setup
Connect bol.com to Meta Muse in 2 minutes
Start a free trial on AnythingMCP Cloud, connect bol.com in the guided setup, then add your MCP URL to Meta Muse. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for bol.com
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → bol.com, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
bol.com + Meta Muse
bol.com Retailer API for sellers on the Dutch and Belgian marketplace: orders, shipments with track and trace, returns, FBB inventory, offers with price and stock, commission, catalog content, competing offers, ratings, invoices and performance indicators. Client ID and secret.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
BOL_CLIENT_ID, BOL_CLIENT_SECRET
Step 1 — Get credentials
Setting up takes about 3 minutes. You need a bol.com seller account (Verkopen via bol) and access to the API settings in the bol Seller Dashboard. The connector needs a client ID and a client secret for the Retailer API.
- In the bol Seller Dashboard open your account, then Instellingen → Diensten → API Instellingen (Settings, Services, API settings). Save a technical contact if bol asks for one.
- Under Client credentials voor de Retailer API click Aanmaken (Create), give the key a name and click Toon secret (Show secret).
- Copy the client ID into
BOL_CLIENT_IDand the secret intoBOL_CLIENT_SECRET. If the secret is lost, create new credentials. - Install the connector. Run
bol_com_list_ordersto check the connection: it returns your open orders that you ship yourself (FBR).
Cloud and self-hosted work the same way: the credentials are the same, and there is no redirect URL or IP address to register.
Authentication: the connector exchanges the client ID and secret at https://login.bol.com/token (client credentials) for a bearer token that lasts about 5 minutes, and reuses it until it expires. It never asks for a new token on every call, because bol blocks addresses that hammer its login service.
Where to start: bol_com_list_orders lists open FBR orders, newest first; bol_com_get_order adds the customer's shipping and billing details and the items. bol_com_list_offers lists your offers and bol_com_list_inventory shows the stock that bol holds for you in its warehouses (FBB).
What it reads: orders, shipments with transport and track and trace, returns with reasons and customer comments, FBB stock, offers with price, stock and country availability, why an offer is not for sale, commission for a product at a price, bol catalog content by EAN, competing offers and who has the buy box, star ratings, visits and buy box percentage per offer, seller performance indicators per week, and invoices (read-only).
Shipping: bol_com_create_shipment confirms the shipment of items you ship yourself, with your carrier and track and trace code. bol_com_add_track_and_trace adds a missing code to a shipment; it cannot change an existing one.
Offers: bol_com_create_offer and bol_com_update_offer create offers and change price, stock, fulfilment, countries or the on-hold flag. An update only changes the fields given, but an array (bundle prices, countries) replaces the old one whole. A 409 means someone changed the offer at the same time. Prices are in EUR including VAT, and stock is 0 to 999.
Switched off at install: bol_com_cancel_order_item (cancel an order item you cannot deliver) and bol_com_delete_offer (delete an offer). A cancellation cannot be undone and counts against your seller score, and a deleted offer disappears from bol at once and cannot be restored. To pause an offer, set it on hold with bol_com_update_offer instead. Switch them on on the connector page only if the AI should use them; the AI asks you to confirm every change. Shipments, track and trace, and creating and updating offers are switched on.
Asynchronous writes: shipments, transports and cancellations answer with a process status instead of a result. bol_com_get_process_status (or bol_com_find_process_statuses by entity and event type) shows when it is SUCCESS or FAILURE. bol keeps process statuses for one day. Offers are synchronous.
Paging: order, shipment, return and inventory lists take page from 1 with 50 rows a page; an empty answer means there are no more pages. Offers use a cursor: pass page.nextCursor back until it is missing.
Rate limits: bol sets them per endpoint. The order list and the shipment list allow 25 calls a minute, returns and inventory 20 a minute, invoices 24 a minute; order details 25 a second and offers 25 to 50 a second. A 429 carries a Retry-After in seconds; the live values are at api.bol.com/retailer/public/ratelimits.
Ids and formats: order ids can contain letters (A4K8290LP0), EANs are strings, dates are YYYY-MM-DD and times ISO 8601 with an offset. Unused fields are left out, because bol answers 400 to empty strings.
Common errors: errors come as application/problem+json with title, detail and violations that name the field. 400 usually means a field is missing or empty. 429 is the rate limit: wait for the Retry-After time.
Not covered: handling or registering returns (accepting a return makes bol refund the customer), buying shipping labels and anything that moves money.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Muse
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Muse adds remote MCP servers as custom connectors and signs in to them with OAuth.
- In Muse, open Settings → Connectors and choose Add custom connector.
- Paste the MCP server URL
https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. - Muse opens the AnythingMCP sign-in page: sign in and approve access.
- In a chat, ask Muse for something that needs the
bol.comtools.
You can also set it up from a chat, on the web, in the iOS and Android apps or in WhatsApp. Send Muse this message:
Create a Custom Connector for a new remote MCP server, then connect to it:
Name: AnythingMCP
Transport: remote streamable HTTP
URL: https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID
Auth: OAuth
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Muse connects from Meta's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
bol_com_list_orders | List orders, newest first: orderId, orderPlacedDateTime and per item orderItemId, ean, fulfilment method and status (OPEN, HANDLED)… |
bol_com_get_order | Read one order: shipping and billing details of the customer (name, address, email, phone, VAT and KvK number), pickup point, and per item… |
bol_com_list_shipments | List shipments, newest first: shipmentId, shipmentDateTime, shipmentReference, the order and its items, and transport (transporter code… |
bol_com_get_shipment | Read one shipment: items with quantity, unit price and commission, shipping and billing details, and transport (transportId… |
bol_com_list_returns | List returns: returnId, registrationDateTime, fulfilment method and per item rmaId, orderId, ean, title, expectedQuantity, return reason… |
bol_com_get_return | Read one return with its items, reasons, customer details and processing results |
bol_com_list_inventory | List the stock held in bol's warehouses for FBB offers: ean, bsku, title, regularStock and gradedStock |
bol_com_list_offers | List your offers (Offers API v11): offerId, ean, reference, condition, pricing (bundle prices), stock (amount, managedByRetailer… |
bol_com_get_offer | Read one offer (Offers API v11): ean, reference, condition, bundle prices, stock with correctedStock, fulfilment, country availability and… |
bol_com_get_offer_not_for_sale_reasons | Explain why an offer is not for sale, per country: missing content attributes, pricing, stock, shop status, selling rights, on hold and… |
bol_com_get_process_status | Read the result of an asynchronous v10 write (shipment, transport, cancellation): status PENDING, SUCCESS, FAILURE or TIMEOUT… |
bol_com_find_process_statuses | Find the process statuses of one entity and event type, e.g. all CREATE_SHIPMENT statuses of an order item |
bol_com_get_commission | Calculate the bol commission for selling a product at a price: fixedAmount, percentage, totalCost and any temporary reductions |
bol_com_get_catalog_product | Read the bol catalog content of a product by EAN: whether it is published, its category (GPC chunk), attributes (title, description, brand… |
bol_com_get_competing_offers | List all offers on bol for a product (yours and competitors'): offerId, retailerId, country, bestOffer (buy box), price, fulfilment method… |
bol_com_get_product_ratings | Read the customer star ratings of a product: count per rating from 1 to 5 |
bol_com_list_invoices | List the bol invoices of the account for a period of at most 31 days (default the last 4 weeks), with invoice ids, periods and amounts |
bol_com_get_offer_insights | Read the product visits or buy box percentage of an offer per day, week or month |
bol_com_get_performance_indicator | Read a seller performance indicator for an ISO week: the score, the norm bol expects and the details (cancellations, fulfilment on time… |
bol_com_create_shipment | Confirm the shipment of order items you ship yourself (FBR), with the carrier and track and trace code |
bol_com_add_track_and_trace | Add a missing track and trace code to the transport of a shipment (it cannot change an existing code) |
bol_com_cancel_order_item | Cancel one order item you cannot deliver, with a reason |
bol_com_create_offer | Create an offer for a product (Offers API v11, synchronous): EAN, condition, bundle prices, stock and fulfilment |
bol_com_update_offer | Update an offer (Offers API v11, synchronous): price, stock, fulfilment, countries, reference or on-hold flag |
bol_com_delete_offer | Delete an offer (Offers API v11) |
Example prompts
- "Which open orders still need to ship today, and do any of them have a cancellation request?"
- "Show order A4K8290LP0 with the customer's address and the items."
- "Which of my offers are not for sale, and why?"
- "Who has the buy box on EAN 8712345678901, and at what price?"
- "Set the price of my offer for EAN 8712345678901 to 24.95 and the stock to 40."
FAQ
Can it handle returns or cancel orders? It reads returns but does not handle or register them, because accepting a return makes bol refund the customer. Cancelling an order item is possible with bol_com_cancel_order_item, which is switched off at install.
Does it work for Belgian and Dutch sales? Yes. One seller account covers both countries; offers carry their country availability, and bol_com_get_offer_not_for_sale_reasons explains per country why an offer is not for sale.
Where is Muse available? Meta currently offers Muse in the US and Canada, on the web, in the iOS and Android apps and in WhatsApp.
Does Meta review this connector? No. Meta doesn't review custom connectors. Muse sees only the tools you switched on for this MCP server in AnythingMCP, and you can disconnect it anytime under Settings → Connectors.
Next steps
Was this guide helpful?