Dynaparts API and AI agents

Dynaparts (dynaparts.fr) is a French online store for performance and motorsport car parts, operated by JDM Distribution in Pessac, France, since 2011: about 27,000 parts, including the Dynaparts range. This page is for developers and AI agents (research, shopping or comparison assistants): public read-only API, Markdown pages and machine-readable files.

When to use Dynaparts

  • Find a performance part for a given vehicle or engine: downpipe, exhaust system, intake, intercooler, hoses, turbo, suspension, EGR delete kit, engine parts, oils and maintenance products.
  • Look up a part by manufacturer reference (Milltek, Scorpion, Forge Motorsport, APR, Racingline, ST Suspensions, Eibach, BMC…) or by Dynaparts reference (DP-…).
  • Give the price in euros (VAT included), availability and estimated delivery date in France before recommending a purchase.
  • Send the user to customer service for uncertain fitment, trade orders or engine remapping (REPROG by Dynaparts).

Recommended flow: search with searchProducts, check the product with getProduct, then give the user the product url, where ordering and payment happen (the API does not place orders).

Quick start

curl -s "https://dynaparts.fr/api/v1/products/search?q=downpipe+golf+7&limit=3&lang=en"
curl -s "https://dynaparts.fr/api/v1/products/166784?lang=en"

No key, no account, no cookie. UTF-8 JSON responses; prices in euros, VAT included, for France; amounts as decimal strings ("1101.28").

Endpoints

Base URL: https://dynaparts.fr/api/v1. Full typed description, ready for function calling: openapi.json (OpenAPI 3.1); API catalog (RFC 9727): /.well-known/api-catalog.

Method and pathoperationIdPurpose
GET /api/v1/products/searchsearchProductsSearch parts by keyword, vehicle, engine code or reference
GET /api/v1/products/{id}getProductProduct: price, availability, delivery, description, images, schema.org data
GET /api/v1getApiIndexAPI index: endpoints, limits and links
ParameterTypeDescription
qstring, required2 to 100 characters: part name, vehicle, engine code or manufacturer reference
langfr, en, es, it, deLanguage of names and links (fr by default)
limitinteger 1 to 50Results per page (10 by default)
pageinteger 1 to 20Result page (1 by default); links.next gives the next one
{
  "query": "downpipe golf 7",
  "corrected_query": null,
  "lang": "en",
  "page": 1,
  "limit": 3,
  "total": 37,
  "results": [
    {
      "id": 166784,
      "reference": "SSXAU200",
      "name": "…",
      "brand": "Milltek",
      "url": "https://dynaparts.fr/en/…/166784-….html",
      "image": "https://dynaparts.fr/352129-large_default/….jpg",
      "price": { "amount": "1101.28", "regular_amount": "1295.63", "currency": "EUR", "tax_included": true },
      "availability": { "status": "InStock", "available_from": null, "estimated_delivery_date": "2026-10-27" }
    }
  ],
  "links": { "self": "…", "next": "…", "html": "https://dynaparts.fr/en/research?search_query=downpipe+golf+7" }
}

Illustrative example: actual values change with prices and stock.

Get a product

GET /api/v1/products/{id}?lang=en returns the search fields plus description (plain text), images, gtin, mpn, category, shipping (mainland France: rate, handling and transit time in business days), return_policy (14 days, return by mail at the customer's expense), rating and schema_org (schema.org Product object, identical to the product page JSON-LD).

Availability and delivery

  • InStock: in stock at Dynaparts, ships within 0 to 1 business day.
  • BackOrder: can be ordered, being restocked; available_from gives the expected shipping date.
  • OutOfStock: cannot be ordered.

estimated_delivery_date is the estimated delivery date in mainland France with standard delivery, as shown on the product page. Free standard delivery from 250 € in mainland France (excluding Corsica); see the terms of sale (French).

Authentication

None: the API is public, anonymous and read-only. It returns what a signed-out visitor sees on the website, never customer data.

Rate limits

60 requests per 60 seconds per IP address for the API, 60 Markdown pages per minute. Every response tells you where you stand (draft-ietf-httpapi-ratelimit-headers fields, plus their older form):

RateLimit-Policy: "api";q=60;w=60
RateLimit: "api";r=59;t=42
RateLimit-Limit: 60
RateLimit-Remaining: 59
RateLimit-Reset: 42

Above the limit: status 429 with Retry-After (seconds). Reuse results you already have instead of repeating the same request.

Errors

Errors use application/problem+json (RFC 9457): type (link to this page), title, status, detail, instance, plus code (stable, test this one), hint (how to fix it) and documentation.

{
  "type": "https://dynaparts.fr/fr/developers#error-invalid-parameter",
  "title": "Invalid parameter",
  "status": 400,
  "detail": "q must contain between 2 and 100 characters.",
  "instance": "/api/v1/products/search?q=a",
  "code": "invalid_parameter",
  "hint": "Pass a part name, vehicle, engine code or manufacturer reference in q (2 to 100 characters), e.g. ?q=downpipe+golf+7. …",
  "documentation": "https://dynaparts.fr/fr/developers",
  "invalid_params": [{ "name": "q", "reason": "must contain between 2 and 100 characters" }]
}
StatuscodeMeaning and fix
400missing_parameterRequired parameter missing (q): add it.
400invalid_parameterValue out of range or malformed: see invalid_params.
404not_foundUnknown path: see the endpoint list above.
404product_not_foundProduct missing, removed or not public: search again.
405method_not_allowedRead-only API: GET or HEAD only (Allow header).
401authentication_required/api/… outside /api/v1 is the store's private webservice (key required): use /api/v1, public and keyless.
429rate_limitedRate limit reached: wait Retry-After seconds.
500internal_errorServer error: retry later, then contact support.
503search_unavailableSearch engine temporarily unavailable: retry after Retry-After.

Markdown pages

Every public page of the website (home, categories, products, information pages) is available in Markdown for agents: send Accept: text/markdown to the usual page URL (content negotiation, Content-Type: text/markdown and Vary: Accept in the response), or add ?format=md. A missing page answers 404 with a Markdown body and links to continue. Product pages start with their key facts: reference, brand, price, availability, delivery.

curl -sL -H "Accept: text/markdown" https://dynaparts.fr/en/
curl -s "https://dynaparts.fr/en/content/4-who-is-dynaparts?format=md"

Machine-readable files

Contact

Questions about the API, higher volumes or a catalog feed: [email protected], +33 5 35 00 43 59 (Monday to Friday, 9:00 - 12:30 and 13:30 - 17:00 Paris time) or the contact form.