Quickstart
The Dealer Public API is designed for server-side use.
Generate the API key in DealerMAX, store it as a backend secret, then call
catalog.dealermax.app from your server, build pipeline, or BFF.
1. Get a dealer API key
- Open DealerMAX as the dealer account.
- Go to the DealerMAX UI label Dealer Connect / API pubblica (Public API).
- Generate or regenerate the key and store it in a secret manager.
Send the key with X-Api-Key whenever possible. The API also
accepts Authorization: Bearer <key> for clients that are
built around bearer credentials.
2. Call the read-only API
{service} selects the catalog:
REWIND is used vehicles for sale, NOS is used
vehicles for rent without scoring, and NLT is
Noleggio Lungo Termine (long-term rental offers).
curl "https://catalog.dealermax.app/dealer/REWIND/listing?page=1&page_size=20" -H "X-Api-Key: $DEALERMAX_API_KEY"
Equivalent bearer form:
curl "https://catalog.dealermax.app/dealer/NLT/listing?page=1&page_size=20" -H "Authorization: Bearer $DEALERMAX_API_KEY"
3. Fetch dealer content
DealerMAX also exposes dealer-ready editorial content for custom
frontends. The content subsystem includes /dealer/content/hub,
/dealer/content/search, and typed listing/detail endpoints for
faq, news, glossary,
guides, videos, and podcasts.
curl "https://catalog.dealermax.app/dealer/content/guides/listing?q=garanzia&page=1&page_size=10" -H "X-Api-Key: $DEALERMAX_API_KEY"
The listing response uses the same paginated envelope pattern as the other public read surfaces:
{
"content_type": "guides",
"page": 1,
"page_size": 10,
"total": 1,
"has_next": false,
"q": "garanzia",
"filters": { "topic": null },
"meta": {
"dealer": {
"name": "Demo Motors",
"primary_domain": "demo.example"
}
},
"items": [
{
"id": "42",
"slug": "garanzia-legale-veicoli-usati",
"topic": "garanzia",
"title": "Garanzia legale sui veicoli usati",
"h1": "Garanzia legale sui veicoli usati",
"meta_description": "Guida DealerMAX pronta per il sito del dealer.",
"excerpt": "Una guida chiara per spiegare garanzia legale e coperture.",
"body_text_preview": "Testo introduttivo della guida...",
"url": "/guide/garanzia-legale-veicoli-usati",
"updated_at": "2026-06-25T00:00:00Z"
}
]
}
4. Backend/BFF example for Node.js
import express from "express";
const app = express();
const baseUrl = process.env.DEALERMAX_BASE_URL || "https://catalog.dealermax.app";
const apiKey = process.env.DEALERMAX_API_KEY;
app.get("/api/inventory", async (_req, res) => {
if (!apiKey) return res.status(500).json({ error: "missing_api_key" });
try {
const upstream = await fetch(`${baseUrl}/dealer/REWIND/listing?page_size=20`, {
headers: { "X-Api-Key": apiKey },
});
const contentType = upstream.headers.get("content-type") || "";
const payload = contentType.includes("application/json")
? await upstream.json()
: { error: "upstream_non_json", status: upstream.status };
res.status(upstream.status).json(payload);
} catch {
res.status(502).json({ error: "dealermax_unreachable" });
}
});
app.listen(3000);
5. Python backend example
import os
import httpx
api_key = os.environ["DEALERMAX_API_KEY"]
base_url = os.getenv("DEALERMAX_BASE_URL", "https://catalog.dealermax.app")
with httpx.Client(timeout=20) as client:
response = client.get(
f"{base_url}/dealer/NLT/listing",
headers={"X-Api-Key": api_key},
params={"page": 1, "page_size": 20},
)
response.raise_for_status()
offers = response.json().get("items", [])
Rules that matter
- Never ship the API key in public browser JavaScript.
- Retry only safe
GETrequests, and respectRetry-After. - Cache responses on your server when rendering high-traffic pages.
- Use the canonical OpenAPI contract: catalog.dealermax.app/dealer/openapi.json.
- Keep this portal bookmarked for policy and SDK updates: https://developers.dealermax.app/api.