Dealer Public API
The Dealer Public API is the stable, read-only contract for custom dealer frontends and server-side integrations. It exposes dealer inventory, NLT offers, and DealerMAX-generated content through apimax, the read-only public plane of DealerMAX.
Canonical contract
| Base URL | https://catalog.dealermax.app |
|---|---|
| OpenAPI | https://catalog.dealermax.app/dealer/openapi.json |
| Authentication | X-Api-Key header preferred; Bearer accepted. |
| Methods | GET only for the dealer public contract. |
Inventory endpoints
| Endpoint | Purpose |
|---|---|
GET /dealer/{service}/listing | Paginated listing for dealer stock or NLT offers. |
GET /dealer/{service}/details | Single vehicle or NLT offer detail, including dealer-ready AI descriptions, media, video/podcast links, FAQ and highlights when available. |
Inventory parameters
| Parameter | Where | Meaning |
|---|---|---|
service | Path | One of REWIND, NOS, or NLT. |
page | Listing query | Page number, starting at 1. |
page_size | Listing query | Items per page, from 1 to 100. |
q | Listing query | Optional text search over make, model, and version/allestimento. |
id_auto | Details query | Required for REWIND and NOS details. Pass the vehicle UUID. |
id_offerta | Details query | Required for NLT details. Pass the NLT offer id. |
For /dealer/{service}/details, pass exactly one identifier:
id_auto for REWIND/NOS, or
id_offerta for NLT.
Services
REWIND- used vehicles for sale.NOS- used vehicles for rent without scoring.NLT- long-term rental offers.
Previous-owner count provenance
Used-vehicle listing and detail responses expose
previous_owner_count,
previous_owner_count_source, and
previous_owner_count_is_fallback. For missing, null, or
legacy-zero used-stock values, the Core contract stores and returns
previous_owner_count: 1 with source
default_fallback and
previous_owner_count_is_fallback: true.
A fallback value is a technical default, not evidence that the vehicle had one verified previous owner. A frontend may label it Valore predefinito, but must not create a Unico proprietario badge or quality or promotional claim from it. Clients should use the source or boolean, not the numeric value alone, when deciding whether an owner-count claim is appropriate.
This is an additive response contract enabled after the coordinated Core rollout. Until that rollout is live, clients must tolerate these new fields being absent and treat their absence as unknown. This contract does not initiate a new ownership lookup.
Content endpoints
| Endpoint | Purpose |
|---|---|
GET /dealer/content/hub | Small homepage/footer-ready slices for FAQ, news, glossary, guides, videos and podcasts. |
GET /dealer/content/search?q=... | Cross-content search across dealer-visible generated content. |
GET /dealer/content/{content_type}/listing | Paginated content listing. Supports q, page, page_size, plus type-specific filters. |
GET /dealer/content/{content_type}/details?slug=... | Full content detail by required public slug. |
Content parameters
| Parameter | Where | Meaning |
|---|---|---|
content_type | Path | One of faq, news, glossary, guides, videos, or podcasts. |
slug | Details query | Required public slug for a single generated content item. |
category | Listing query | Optional filter for FAQ, news custom content, and glossary. |
topic | Listing query | Optional filter for guides. |
brand | Listing query | Optional filter for global news. |
Content types
faq- dealer FAQ with overrides and hidden items respected.news- dealer custom news and configured DealerMAX news rewrites.glossary- automotive terms and definitions.guides- long-form DealerMAX guides.videos- generated dealer vehicle videos.podcasts- generated vehicle podcast episodes with audio and transcript.
Response examples
All successful listing endpoints return a stable pagination envelope:
page, page_size, total,
has_next, and items.
Inventory listing
{
"service": "REWIND",
"page": 1,
"page_size": 20,
"total": 1,
"has_next": false,
"items": [
{
"id_auto": "4f2f1c2d-8c3b-4f8d-9f6b-6a9a8d1e2b10",
"marca": "FIAT",
"modello": "500",
"prezzo_vendita": 12900.0,
"previous_owner_count": 1,
"previous_owner_count_source": "default_fallback",
"previous_owner_count_is_fallback": true,
"cover_url": "https://cdn.example.com/vehicles/fiat-500.jpg",
"has_podcast": false,
"has_video": false,
"service": "REWIND"
}
]
}
Inventory details
{
"service": "REWIND",
"vehicle": {
"id_auto": "4f2f1c2d-8c3b-4f8d-9f6b-6a9a8d1e2b10",
"marca": "FIAT",
"modello": "500",
"previous_owner_count": 1,
"previous_owner_count_source": "default_fallback",
"previous_owner_count_is_fallback": true,
"ai_content": {
"description_short": "City car compatta e pronta consegna"
},
"media_urls": ["https://cdn.example.com/vehicles/fiat-500.jpg"],
"has_podcast": true,
"has_video": false
}
}
{
"service": "NLT",
"offer": {
"id_offerta": 12345,
"marca": "FIAT",
"modello": "Panda",
"quotazioni": [
{
"months": 36,
"km_per_year": 10000,
"monthly_fee": 299.0
}
]
}
}
Content listing
{
"content_type": "guides",
"page": 1,
"page_size": 10,
"total": 1,
"has_next": false,
"q": "garanzia",
"filters": {
"topic": "garanzia"
},
"meta": {
"dealer": {
"id": 42,
"name": "DealerMAX Demo",
"primary_domain": "demo.dealermax.app"
}
},
"items": [
{
"id": 101,
"slug": "garanzia-auto-usata",
"title": "Garanzia auto usata",
"excerpt": "Cosa controllare prima di acquistare...",
"url": "/guide/garanzia-auto-usata",
"updated_at": "2026-06-25T10:00:00+00:00"
}
]
}
Content details and search
{
"content_type": "guides",
"item": {
"slug": "garanzia-auto-usata",
"title": "Garanzia auto usata",
"body_text": "Testo completo della guida..."
},
"meta": {
"dealer": {
"id": 42,
"name": "DealerMAX Demo"
}
}
}
{
"q": "garanzia",
"page_size_per_type": 5,
"total": 3,
"by_type": {
"faq": 1,
"guides": 2
},
"items": [
{
"content_type": "guides",
"slug": "garanzia-auto-usata",
"title": "Garanzia auto usata"
}
]
}
Public boundary
The public developer contract intentionally exposes only dealer-ready resources. It does not expose upstream lookup cascades, source identifiers, raw technical-data directories, browser-side secrets, or internal SSR/SEO payloads.