Ecommerce
Bol.com
Connect Bol.com once and hand every teammate a governed MCP endpoint with 72 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.
See it in Elaichi
What connecting Bol.com gets you
6 screens from the product, each doing one job for your Bol.com account.
The agent
Ask Bol.com questions, get live answers.
Type a plain question and get numbers straight from your Bol.com records.
- offers
- invoices
- inventories
- commissions
Ask Elaichi to work across your apps.
Which Bol.com offers have the lowest product rank this week.
Summarise last month's Bol.com commissions by invoice.
Show inventory levels for offers with rising search terms.
Also runs in Claude, ChatGPT or Cursor
MCP clients
One Bol.com endpoint, every client connects.
Claude, ChatGPT and Cursor reach Bol.com through one governed endpoint, no shared keys.
Copy the endpoint
Tool catalogue
72 Bol.com tools, zero integration code.
Offers, invoices, inventory and commissions, all covered without writing a single integration.
- bol_retailer_commissions_bulk_get
- bol_retailer_commissions_bulk_list
- list_all_bol_retailer_commissions
- list_all_bol_insights_offers
Toolboxes
Every team gets its own Bol.com toolbox.
Toolboxes scope Bol.com access by team so nobody sees more than their job needs.
- Sales
- Finance
- Operations
- Marketing
Shared connections
Teammates use Bol.com, never see the login.
The connections table shows who connected each account and how many teams share it.
- Retail NL
- Retail BE
- Finance team
- Growth
Audit log
Every Bol.com call, logged and attributable.
The audit log records who did what on Bol.com, and when it happened.
- When
- Who
- What happened
- Resource
Automations & dashboards
From answering questions to doing the work
A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.
Automations
Bol.com digests run themselves, you approve.
A schedule pulls Bol.com records, drafts a digest, and posts back once you approve it.
Bol.com digest
Run 418 · started 2 minutes ago · on behalf of Emma Laurent
-
✓
Schedule
Every weekday at 08:00
0.2s -
✓
Fetch offers
Bol.com
1.4s -
✓
Group by owner
Transform
0.1s -
✓
Draft the digest
Agent step
Ran with 4 tools, returned a structured summary
6.2s -
Approve the digest
Needs approval
Assigned to Michael Brennan
Approve Deny -
Post the digest
Bol.com
Queued
Collections and dashboards
Bol.com health, computed, not asked for.
A refreshing dashboard tracks Bol.com metrics and records created, broken down by team.
Bol.com health
Refreshed 4 minutes ago · every 15 minutes · from the offers collection
Offers
1,284 ↓ 12%
Invoices
96 ↓ 8%
Needs attention
3 ↑ 2
Updated this week
412 ↑ 9%
Offers created
Last 14 days
By workspace
Share of activity
Retail NL 34%
Retail BE 27%
Finance team 21%
Growth 18%
AI tools
Bol.com tools for your AI agents
72 tools are ready to call through Elaichi's MCP endpoint the moment you connect Bol.com, governed by the same roles, restrictions, and audit log as everything else in Elaichi.
bol_retailer_commissions_bulk_get
Get bol commissions and possible reductions for many products in bulk by EAN, price, and optionally condition. Returns: id, resources, url, subscriptionType. Requires a request body with the product EANs and prices.
bol_retailer_commissions_bulk_list
Get commission rates for multiple EANs in bulk (BETA). Returns a multi-status result with id, resources, url, and subscriptionType, mixing successful and unsuccessful per-EAN outcomes. Requires a request body listing the EANs to query.
list_all_bol_retailer_commissions
Get the bol commission and possible reductions for a single product by EAN at a given price. Returns a commission result with id and vendor-defined commission attributes. Required: ean, unit-price.
list_all_bol_insights_offers
Get offer insights for a bol offer: the product visits and buy box percentage grouped over a historical period. Returns the OfferInsights response (id, attributes; the full field shape is defined by the upstream OfferInsights schema). Required: offer-id, period, number-of-periods, name. Maximum periods back in time: 730 for DAY, 104 for WEEK, 24 for MONTH.
list_all_bol_performance_indicators
Get the weekly measurements for your bol performance indicators. Returns the PerformanceIndicators response for the requested indicator, year, and week, with fields defined by bol's Retailer API schema. Required: name (indicator type such as CANCELLATIONS or REVIEWS), year, week (ISO-8601). Current-week measurements can change heavily during the week.
list_all_bol_insights_product_ranks
List product ranks on bol for a specific product EAN and date. Returns the ProductRanks payload (attributes) with the product's rank entries for the requested search type. Required: ean, date. The date must be in the past, no more than three months back and up to yesterday.
list_all_bol_insights_sales_forecasts
Get the bol sales forecast estimating expected sales on the total bol.com platform for the requested number of weeks ahead. Returns the sales forecast response object defined by the bol SalesForecastResponse schema. Required: offer-id, weeks-ahead (between 1 and 12).
list_all_bol_insights_search_terms
Get search terms — retrieve the search volume for a specified search term on bol.com over a chosen period range, to optimize product content, spot assortment opportunities, and analyze trends. Returns the search volume data for the requested term and periods. Requires search-term, period (DAY, WEEK, or MONTH), and number-of-periods; pass related-search-terms to also include related search terms.
list_all_bol_retailer_inventories
List your fulfilment by bol.com (FBB/LVB) inventory in a paginated feed; this endpoint does not cover your own stock. Returns inventory records including the regularStock details for each item. Page size is 50.
list_all_bol_retailer_invoices
List bol retailer invoices, by default from the past 4 weeks, or supply an optional date range of at most 31 days using period-start-date and period-end-date. Returns the raw invoice list document for download; available media types are listed per invoice in the document.
get_single_bol_retailer_invoice_by_id
Download a single bol retailer invoice by id, returned in the media format offered for that invoice (JSON or PDF). The available media types differ per invoice and are listed in the invoice list response. Required: id.
get_single_bol_invoice_specification_by_id
Get the specification for a bol invoice by id, including a paginated list of its transactions. Returns the specification file with content-type-specific fields, delivered as JSON or XLSX depending on the media types listed for the invoice. Required: id.
create_a_bol_retailer_offer
Create a new offer in bol for an EAN and add it to the retailer's catalog. Requires ean, condition (name), pricing.bundlePrices (one entry with quantity 1), stock (amount, managedByRetailer) and fulfilment (method FBR or FBB; deliveryCode for FBR). Processing is asynchronous: returns a 202 process status with processStatusId, entityId, eventType, description, status, createTimestamp and links; poll the process status to confirm the offer was created and published. Required: ean, condition, pricing, stock, fulfilment.
get_single_bol_retailer_offer_by_id
Retrieve a single bol offer by its offer id. Returns: offerId, ean, reference, onHoldByRetailer, economicOperatorId, unknownProductTitle, pricing (bundlePrices with quantity and unitPrice), stock (amount, correctedStock, managedByRetailer), fulfilment (method, deliveryCode, profileId), store (productTitle, visible countries), condition (name, category, comment) and notPublishableReasons. Required: id.
update_a_bol_retailer_offer_by_id
Update an existing bol offer by offer id. Only fulfilment (method, deliveryCode, profileId), reference, onHoldByRetailer, economicOperatorId and unknownProductTitle can be changed here; use offer_prices.bulk_update and offer_stocks.bulk_update for price and stock. Processing is asynchronous: returns a 202 process status with processStatusId, entityId, eventType, status, createTimestamp and links. Required: id, fulfilment.
delete_a_bol_retailer_offer_by_id
Delete a bol offer by offer id, removing it from the catalog. Processing is asynchronous: returns a 202 process status with processStatusId, entityId, eventType, status, createTimestamp and links; poll the process status to confirm deletion. Required: id.
create_a_bol_offers_export
Request an offer export file containing all of a retailer's offers in bol. The export is generated asynchronously — Returns a process status object with processStatusId, eventType, description, status, createTimestamp, and links to track the request. Requires a CreateOfferExportRequest JSON body.
get_single_bol_offers_export_by_id
Retrieve an offer export file by report id in bol. Returns the offer export file itself as a CSV (comma separated values) document containing all offers — a raw file download, not a JSON object. Required: id (the unique identifier of the offer export file).
create_a_bol_offers_unpublished
Request an unpublished offer report from bol, asynchronously generating a file of all unpublished offers with their reasons. Returns a process status object including processStatusId, eventType, and status for polling. Processing is asynchronous (202 Accepted).
get_single_bol_offers_unpublished_by_id
Retrieve an unpublished offer report from bol by report id, containing all unpublished offers and the reasons they are not published; the report is delivered as a CSV file. Required: id (the unpublished offer report id).
bol_offer_prices_bulk_update
Update price(s) for a bol offer by id. Returns a process status for the asynchronously scheduled update, including processStatusId, entityId, eventType, status, createTimestamp, and links. Required: offer_id and a price payload.
bol_offer_stocks_bulk_update
Update the stock of an offer in bol by id. The stock update is scheduled for asynchronous processing and returns a process status object including processStatusId, eventType, status, and createTimestamp. Required: offer_id and a stock update body.
list_all_bol_retailer_orders
List bol retailer orders in a paginated feed (50 per page). Returns: orders (each reduced order carrying its orderId). No parameters are required; results default to open (OPEN) orders fulfilled by the retailer (FBR).
get_single_bol_retailer_order_by_id
Get a single bol order by id, including the quantities of shipped or cancelled items when the order is partially shipped or cancelled. Returns: orderId. Required: id (the bol order id).
bol_orders_cancellations_bulk_update
Cancel an order item in bol, either to confirm a customer's cancellation request or to cancel an item you are unable to fulfil. Returns a ProcessStatus object including processStatusId, entityId, eventType, status, createTimestamp, and links. Requires a CancellationRequest request body; the request is scheduled for asynchronous processing (202 Accepted).
list_all_bol_products_categories
List the available bol product categories together with their subcategories. Returns category records with their id; the remaining record fields are defined by bol's ProductCategoriesResponse schema and are not enumerated in the available documentation. Categories are returned in Dutch by default.
list_all_bol_products_lists
List bol products matching a category, search term, or filters. Returns the list of matching products as reported by bol. Search criteria are supplied in the required JSON request body.
list_all_bol_products_list_filters
Get the product list filters available in bol for a given category or search term. Returns the product list filters payload with category- and filter-specific fields. Required: productListFiltersRequest.
list_all_bol_product_assets
List the assets available for a bol product by EAN. Returns: assets — the collection of assets for the product, with each asset's fields as defined by the upstream bol Retailer API v10 schema. Required: ean.
list_all_bol_product_offers
List the competing offers available in the bol webshop for a product EAN, including offers from all retailers. Returns each offer with id, condition, and remaining offer attributes. Required: ean. Pages hold 50 items.
list_all_bol_product_placements
Get the product placement for a product by EAN in bol. Returns the list of categories and the URL where the product is placed in the webshop. Required: ean.
list_all_bol_product_price_star_boundaries
Get all price star boundaries for a specific product in bol by its EAN. Returns the PriceStarBoundaries response object whose fields are defined by the bol Retailer API v10 schema (not enumerated in the available documentation). Required: ean.
list_all_bol_product_product_ids
Get the bol.com specific product identifier and the related EANs for a product by EAN. Returns: productId, eans. Required: ean.
list_all_bol_product_ratings
Get product ratings in bol for the products associated with a given EAN. Returns: attributes (generic object; the ratings payload's field shape is defined by bol's ProductRatingsResponse schema). Required: ean.
list_all_bol_retailer_promotions
List bol promotions for the retailer. Returns promotion records with their id. Required: promotion-type (AWARENESS or PRICE_OFF). Max 50 items per page.
get_single_bol_retailer_promotion_by_id
Get a single bol promotion by id. Returns the promotion including its id. Required: id.
list_all_bol_promotion_products
List the products included in a bol promotion by promotion id. Returns: products. Required: promotion_id. Paginated with a page size of 50 items per page.
list_all_bol_retailer_replenishments
List bol replenishments. Returns each replenishment's id and its attributes (record fields are defined in the upstream ReplenishmentsResponse schema of the bol Retailer API v10).
create_a_bol_retailer_replenishment
Create a replenishment in bol. Requires the replenishment request body (fields defined in the upstream CreateReplenishmentRequest schema). Returns an asynchronous process status with processStatusId, eventType, status, createTimestamp, entityId, and links.
get_single_bol_retailer_replenishment_by_id
Get a bol replenishment by id. Returns the replenishment record with its id and attributes (record fields are defined in the upstream ReplenishmentResponse schema). Required: id.
update_a_bol_retailer_replenishment_by_id
Update a bol replenishment by id. Requires the update request body (fields defined in the upstream UpdateReplenishmentRequest schema). Returns an asynchronous process status with processStatusId, eventType, status, createTimestamp, entityId, and links. Required: id.
list_all_bol_replenishments_delivery_dates
List the available delivery dates for a bol replenishment. Returns a DeliveryDatesResponse payload whose per-date fields are schema-specific to bol's Retailer API v10 and not enumerated in the discovered source; consult bol's v10 API reference for the field-level breakdown. No required parameters.
create_a_bol_replenishments_pickup_time_slot
Retrieve available pickup time slots for a bol replenishment. Returns the pickup time slots response (upstream PickupTimeSlotsResponse schema); the source docs do not enumerate its individual fields. Requires a request body matching the PickupTimeSlotsRequest schema.
create_a_bol_replenishments_product_destination
Request product destinations by EAN in bol. Schedules the request asynchronously and returns a 202 process status including processStatusId, eventType, description, status, createTimestamp, and links — poll the process status endpoint with processStatusId for completion. Requires a JSON body with the EANs to request destinations for.
get_single_bol_replenishments_product_destination_by_id
Get the product destinations for one or more products in bol by product destinations id. Returns the product-destinations record including its id and attributes with the destination details for the requested products. Required: id.
create_a_bol_replenishments_product_label
Retrieve product labels in bol by posting a product label request. Returns the printable labels as a PDF document. Requires a ProductLabelsRequest JSON body.
list_all_bol_replenishment_load_carrier_labels
Get the load carrier labels for a replenishment in bol. Returns the labels as a printable PDF document (binary content). Required: replenishment_id.
list_all_bol_replenishment_pick_lists
Get the pick list PDF for a bol replenishment by id. Returns the pick list as a binary PDF document (content type application/vnd.retailer.v10+pdf), not a JSON object. Required: replenishment_id.
get_single_bol_retailer_by_id
Get information about a single bol retailer by id — pass a retailer id, or 'current' to retrieve details for your own retailer account. Returns the retailer information record, including id. Required: id.
list_all_bol_retailer_returns
List bol retailer returns as a paginated collection with 50 returns per page; handled returns are sorted by date in descending order, unhandled returns in ascending order. Returns: id.
create_a_bol_retailer_return
Create a bol retailer return and automatically handle it with the provided handling result. Returns the process status including processStatusId, status, createTimestamp, and links; the resulting return id is provided in the process status entityId. Requires a request body (CreateReturnRequest). Processing is asynchronous.
get_single_bol_retailer_return_by_id
Get a single bol retailer return by id. Returns: id. Required: id.
update_a_bol_retailer_return_by_id
Handle a bol retailer return by id — either handle an open return or change the handlingResult of an already handled one. Returns the process status including processStatusId, status, createTimestamp, and links. Required: id (the integer RMA identifier — rma-id upstream) and handlingResult. Processing is asynchronous.
list_all_bol_retailer_shipments
List your bol shipments up to 3 months old, sorted by date in descending order. Filter by fulfilment-method (FBR or FBB) or order-id. Returns shipment records with id and shipment-specific attributes. Max 50 per page.
create_a_bol_retailer_shipment
Create a bol shipment for one or more order items of a customer order: supply shippingLabelId of a purchased shipping label (leaving transport empty), or omit shippingLabelId and fill in transport with the fields from GET shipping labels — the two are mutually exclusive. Returns an async ProcessStatus with processStatusId, eventType, description, status, createTimestamp, and links to poll for the…
get_single_bol_retailer_shipment_by_id
Get a single bol shipment by id. Returns the shipment's id and its shipment-specific attributes object, including transport information. Required: id.
list_all_bol_invoices_requests
List paginated invoice requests initiated by customers in bol. Returns each invoice request with its id and attributes (item fields — including the request's state, e.g. OPEN or UPLOAD_ERROR — are defined by bol's InvoiceRequestsResponse schema).
create_a_bol_shipments_invoice
Upload an invoice file for a bol shipment. Returns a process status object including processStatusId, eventType, description, status, createTimestamp, and links for polling. Required: invoice_id (the id of the shipment associated with the invoice) and invoice (the invoice file). The upload is processed asynchronously and must be sent as multipart/form-data.
create_a_bol_retailer_shipping_label
Create a shipping label in bol using a shipping label offer id obtained from the get delivery options endpoint. Returns the process status of the asynchronous create request, including processStatusId, eventType, status, createTimestamp, and links. Processing is asynchronous — poll the process status endpoint to confirm completion.
get_single_bol_retailer_shipping_label_by_id
Get a shipping label PDF from bol by id. Returns the label document as binary data (label_data), with label metadata delivered as response headers: track-and-trace code and transporter code. Required: id (the shipping label id). Send a HEAD request if you only need the metadata headers without the label data.
get_single_bol_shipping_labels_delivery_option_by_id
Get all available delivery options in bol for a supplied configuration of order items that has to be shipped. Returns the delivery options payload (DeliveryOptionsResponse), from which a shipping label offer id is taken to create a shipping label. Required: a delivery options request body describing the order items to ship.
list_all_bol_retailer_subscriptions
List all bol event notification subscriptions configured for the retailer, including their event types and destination (a webhook URL or a GCP Pub/Sub topic). Returns: id, resources, url, subscriptionType, enabled.
create_a_bol_retailer_subscription
Create a bol event notification subscription for one or more event types, delivered either to a URL (WEBHOOK) or a topic name (GCP_PUBSUB). Returns a process status object with processStatusId, eventType, description, status, createTimestamp, and links; processing is asynchronous. Required: resources, url, subscriptionType.
get_single_bol_retailer_subscription_by_id
Get a single bol event notification subscription by id, including its event types and destination (a webhook URL or GCP Pub/Sub topic). Returns: id, resources, url, subscriptionType, enabled. Required: id.
update_a_bol_retailer_subscription_by_id
Update the event types and/or destination of a bol event notification subscription by id; the destination can be a URL (WEBHOOK) or a topic name (GCP_PUBSUB). Returns a process status object with processStatusId, entityId, eventType, status, createTimestamp, and links; processing is asynchronous. Required: id, resources, url, subscriptionType.
delete_a_bol_retailer_subscription_by_id
Delete a bol event notification subscription by id. Returns a process status object with processStatusId, eventType, description, status, createTimestamp, and links; the deletion is processed asynchronously. Required: id.
list_all_bol_subscriptions_signature_keys
Retrieve the public keys used to validate the signature header of push notifications received from bol.com. Returns the key set containing the signing keys for push notification validation.
create_a_bol_subscriptions_test
Send a test push notification for a bol event notification subscription to verify the configured endpoints are working. The request is scheduled asynchronously and returns the process status object including processStatusId, eventType, status, and createTimestamp. Required: subscription_id.
update_a_bol_retailer_transport_by_id
Add transport information to an existing transport in bol by id, which you can retrieve from the shipment list. Returns the process status for the scheduled change, including processStatusId, eventType, status, createTimestamp, and links. Required: id. The change is processed asynchronously.
list_all_bol_shared_process_status
List bol process statuses for previously executed PUT/POST/DELETE requests, in descending order, by supplying an entity id and event type. Returns: description, status, links, content. Pages hold 50 items; statuses are retained for a limited period only. Required: entity_id, event_type.
bol_shared_process_status_bulk_get
Get the status of multiple bol asynchronous processes in one call by supplying an array of process status ids. Returns: processStatusId, entityId, eventType, status, createTimestamp, links. Statuses are only retained for a limited period after completion. Required: processStatusQueries.
get_single_bol_shared_process_status_by_id
Get a single bol process status by id, showing the outcome of a previously executed PUT/POST/DELETE request. Returns: description, status, links, content. Statuses are only retained for a limited period; afterwards a 404 is returned. Required: id.
No tools match your search.
How it works
From Bol.com account to governed MCP endpoint
Connect
Link a Bol.com account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which Bol.com tools are exposed, rename them, or freeze arguments.
Authorize
Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.
Put your agents to work in the tools you already use
Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.