Developers
Dinilu's catalogue, live pricing and shipping quotes are available to software, not only to people. Two interfaces serve the same data: a Model Context Protocol server for AI assistants, and a plain JSON REST API for everything else. Both are public, read-only, and need no key or registration.
Model Context Protocol
If your client speaks MCP, prefer it. Tool arguments are JSON, so nothing has to be squeezed into a query string.
The endpoint is /mcp on this domain, JSON-RPC 2.0 over POST. It is stateless and does not open an SSE stream.
Three tools are published:
search_products— find products by free text, by category, or both.get_product— a product's configurable attributes and their options, its minimum order quantity and quantity step.get_quote— price a specific configuration and quantity, with production time and shipping options.
Every domain and language is a separate endpoint, with its own catalogue, prices and currency. Connect to the one whose market you want rather than translating results yourself.
Connecting an assistant
The endpoint is a public HTTPS URL and needs no key, so most clients need nothing but the address:
https://dinilu.ch/enmcp
- Claude — Settings → Connectors → Add custom connector, and paste the URL. On Team and Enterprise plans an organisation owner can add it once for everyone under Organization settings.
- ChatGPT — enable developer mode under Settings → Apps, then create an app pointing at the URL.
- Cursor, VS Code and other editors — add
{"url": "https://dinilu.ch/enmcp"}to your MCP configuration.
Each Dinilu domain is its own endpoint, with its own catalogue, prices, currency and shipping methods. Use the one for the market you are quoting.
JSON REST API
GET /api/products— every product available on this domain, in this language.GET /api/product/{mpn}— one product's attributes, options, order quantities and images.GET /api/quote?mpn={mpn}&qty={qty}&attributes={config}— a live price, production time and shipping options.
Finding a product number
Every product page carries its MPN in its JSON-LD structured data, and links to its own JSON through a <link rel="alternate" type="application/json"> tag in the page head. You can also list the catalogue and search it.
Configuring a quote
Options are chosen by id: attributes={attribute id}:{option id}, with pairs separated by |. Both ids come from get_product. Option names are accepted too, but they are translated per domain and must match exactly, so ids are the reliable form. Every product response includes a runnable example.
What the numbers mean
- Quotes are indicative, not binding. They are calculated live from current costs, exchange rates and freight tariffs, and the response says so.
- Prices are per piece and exclude VAT, in the currency of the domain you called.
- Shipping options are priced individually. The selling legal entity follows the shipping method rather than the domain, so each option names its own supplier.
- Minimum order quantities are real. A quantity below the minimum is adjusted upward and the response returns a warning saying so.
Every response carries a warnings array. It is worth reading: it is where the API tells you that a quantity was adjusted, an option defaulted, or a country could not be resolved.
Fair use
There is no API key and no hard rate limit. Please be reasonable — cache what does not change, and do not enumerate the catalogue more often than it changes. If you need volume access, a guaranteed rate, or a commercial integration, use the contact form and say what you are building.
Machine-readable index
/llms.txt is a short summary for AI assistants, and /llms-full.txt documents the full request flow with worked examples. Both are generated per domain and language.
Questions
Integration questions, bug reports and feature requests are welcome through the contact form.