{"openapi":"3.1.0","info":{"title":"DealerMAX Dealer Public API","version":"1.0.0","description":"Public REST API for DealerMax dealers to access their own vehicle inventory, long-term rental (NLT) offers, and DealerMax-generated dealer content such as FAQ, news, glossary, guides, videos and podcasts. Authentication via X-Api-Key header (issued from the DealerMax dashboard). Three services on the same uniform contract: REWIND (used vehicles for sale), NOS (used vehicles for rent without scoring), NLT (long-term rental offers). The public contract exposes dealer-ready read-only resources only: inventory listing/details plus content hub, search, listing and detail resources. Cost included in the DealerMax monthly subscription (no per-request billing). License: MIT for spec and examples. Curated docs and JSON examples: https://developers.dealermax.app/api","termsOfService":"https://developers.dealermax.app/legal/terms","contact":{"name":"DealerMax Support","email":"support@dealermax.app","url":"https://dealermax.app"},"license":{"name":"MIT (specs and examples)","url":"https://opensource.org/licenses/MIT"},"x-logo":{"url":"https://dealermax.app/assets/dealermax-wordmark-light.png"},"x-origin":[{"format":"openapi","version":"3.0","url":"https://catalog.dealermax.app/dealer/openapi.json"}]},"servers":[{"url":"https://catalog.dealermax.app","description":"Production"}],"paths":{"/dealer/{service}/listing":{"get":{"tags":["DealerPublicAPI"],"summary":"List inventory items","operationId":"listInventory","parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string","title":"Service","enum":["REWIND","NOS","NLT"]},"description":"Inventory surface: REWIND, NOS, or NLT."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"},"description":"Page number, starting at 1."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"},"description":"Items per page, from 1 to 100."},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ricerca testuale (marca/modello/versione)","title":"Q"},"description":"Optional text search over make, model, and version."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"description":"Bearer authentication: `Authorization: Bearer <DEALERMAX_API_KEY>`. Alternative to the X-Api-Key header."},{"name":"X-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"},"description":"Dealer API key (preferred). Send your key in this header. Mutually exclusive with the Authorization Bearer header."}],"responses":{"200":{"description":"Paginated vehicle or NLT offer listing for the authenticated dealer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealerPublicInventoryListingResponse"}}}},"422":{"description":"Request parameter validation failed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"400":{"description":"Invalid service, content type, or detail identifier.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"401":{"description":"Missing, invalid, or expired dealer API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"404":{"description":"Dealer, vehicle, offer, or content item not found.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"429":{"description":"Rate limit exceeded. Retry-After is provided.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"503":{"description":"Temporary service or database unavailability.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"500":{"description":"Unexpected internal error.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}}},"description":"List the authenticated dealer's inventory — used vehicles for sale (REWIND), used vehicles for rent (NOS), or long-term rental offers (NLT) — paginated, for a single service."}},"/dealer/{service}/details":{"get":{"tags":["DealerPublicAPI"],"summary":"Get one inventory item","operationId":"getInventoryItem","parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string","title":"Service","enum":["REWIND","NOS","NLT"]},"description":"Inventory surface: REWIND, NOS, or NLT."},{"name":"id_auto","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id Auto"},"description":"Vehicle UUID. Required for REWIND/NOS details and mutually exclusive with id_offerta."},{"name":"id_offerta","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id Offerta"},"description":"NLT offer id. Required for NLT details and mutually exclusive with id_auto."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"description":"Bearer authentication: `Authorization: Bearer <DEALERMAX_API_KEY>`. Alternative to the X-Api-Key header."},{"name":"X-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"},"description":"Dealer API key (preferred). Send your key in this header. Mutually exclusive with the Authorization Bearer header."}],"responses":{"200":{"description":"Single vehicle or NLT offer detail for the authenticated dealer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealerPublicInventoryDetailResponse"}}}},"422":{"description":"Request parameter validation failed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"400":{"description":"Invalid service, content type, or detail identifier.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"401":{"description":"Missing, invalid, or expired dealer API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"404":{"description":"Dealer, vehicle, offer, or content item not found.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"429":{"description":"Rate limit exceeded. Retry-After is provided.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"503":{"description":"Temporary service or database unavailability.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"500":{"description":"Unexpected internal error.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}}},"description":"Fetch the full detail of a single inventory item (a used vehicle or an NLT offer) belonging to the authenticated dealer."}},"/dealer/content/hub":{"get":{"tags":["DealerPublicAPI"],"summary":"Get the content hub","operationId":"getContentHub","parameters":[{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":5,"title":"Page Size"},"description":"Items per page, from 1 to 100."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"description":"Bearer authentication: `Authorization: Bearer <DEALERMAX_API_KEY>`. Alternative to the X-Api-Key header."},{"name":"X-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"},"description":"Dealer API key (preferred). Send your key in this header. Mutually exclusive with the Authorization Bearer header."}],"responses":{"200":{"description":"Dealer content hub grouped by content type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealerPublicContentHubResponse"}}}},"422":{"description":"Request parameter validation failed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"400":{"description":"Invalid service, content type, or detail identifier.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"401":{"description":"Missing, invalid, or expired dealer API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"404":{"description":"Dealer, vehicle, offer, or content item not found.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"429":{"description":"Rate limit exceeded. Retry-After is provided.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"503":{"description":"Temporary service or database unavailability.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"500":{"description":"Unexpected internal error.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}}},"description":"Fetch a preview of the authenticated dealer's editorial content, with one section per content type."}},"/dealer/content/search":{"get":{"tags":["DealerPublicAPI"],"summary":"Search content","operationId":"searchContent","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Ricerca full-text leggera sui contenuti dealer.","title":"Q"},"description":"Ricerca full-text leggera sui contenuti dealer."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"Risultati massimi per tipo contenuto.","default":5,"title":"Page Size"},"description":"Risultati massimi per tipo contenuto."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"description":"Bearer authentication: `Authorization: Bearer <DEALERMAX_API_KEY>`. Alternative to the X-Api-Key header."},{"name":"X-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"},"description":"Dealer API key (preferred). Send your key in this header. Mutually exclusive with the Authorization Bearer header."}],"responses":{"200":{"description":"Cross-content search results grouped by content type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealerPublicContentSearchResponse"}}}},"422":{"description":"Request parameter validation failed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"400":{"description":"Invalid service, content type, or detail identifier.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"401":{"description":"Missing, invalid, or expired dealer API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"404":{"description":"Dealer, vehicle, offer, or content item not found.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"429":{"description":"Rate limit exceeded. Retry-After is provided.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"503":{"description":"Temporary service or database unavailability.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"500":{"description":"Unexpected internal error.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}}},"description":"Full-text search across all of the authenticated dealer's editorial content types."}},"/dealer/content/{content_type}/listing":{"get":{"tags":["DealerPublicAPI"],"summary":"List content of one type","operationId":"listContent","parameters":[{"name":"content_type","in":"path","required":true,"schema":{"type":"string","title":"Content Type","enum":["faq","news","glossary","guides","videos","podcasts"]},"description":"Dealer content type."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"},"description":"Page number, starting at 1."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"},"description":"Items per page, from 1 to 100."},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ricerca testuale nel tipo contenuto.","title":"Q"},"description":"Ricerca testuale nel tipo contenuto."},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtro categoria per FAQ, news custom o glossario.","title":"Category"},"description":"Filtro categoria per FAQ, news custom o glossario."},{"name":"topic","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtro topic per guide.","title":"Topic"},"description":"Filtro topic per guide."},{"name":"brand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtro brand per news globali.","title":"Brand"},"description":"Filtro brand per news globali."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"description":"Bearer authentication: `Authorization: Bearer <DEALERMAX_API_KEY>`. Alternative to the X-Api-Key header."},{"name":"X-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"},"description":"Dealer API key (preferred). Send your key in this header. Mutually exclusive with the Authorization Bearer header."}],"responses":{"200":{"description":"Paginated dealer content listing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealerPublicContentListingResponse"}}}},"422":{"description":"Request parameter validation failed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"400":{"description":"Invalid service, content type, or detail identifier.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"401":{"description":"Missing, invalid, or expired dealer API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"404":{"description":"Dealer, vehicle, offer, or content item not found.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"429":{"description":"Rate limit exceeded. Retry-After is provided.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"503":{"description":"Temporary service or database unavailability.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"500":{"description":"Unexpected internal error.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}}},"description":"List the authenticated dealer's editorial content of a single type (news, guides, glossary or faq), paginated."}},"/dealer/content/{content_type}/details":{"get":{"tags":["DealerPublicAPI"],"summary":"Get one content item","operationId":"getContentItem","parameters":[{"name":"content_type","in":"path","required":true,"schema":{"type":"string","title":"Content Type","enum":["faq","news","glossary","guides","videos","podcasts"]},"description":"Dealer content type."},{"name":"slug","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Slug pubblico del contenuto.","title":"Slug"},"description":"Required public slug for a single content item."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"},"description":"Bearer authentication: `Authorization: Bearer <DEALERMAX_API_KEY>`. Alternative to the X-Api-Key header."},{"name":"X-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"},"description":"Dealer API key (preferred). Send your key in this header. Mutually exclusive with the Authorization Bearer header."}],"responses":{"200":{"description":"Single dealer content item selected by public slug.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealerPublicContentDetailResponse"}}}},"422":{"description":"Request parameter validation failed.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"400":{"description":"Invalid service, content type, or detail identifier.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"401":{"description":"Missing, invalid, or expired dealer API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"404":{"description":"Dealer, vehicle, offer, or content item not found.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"429":{"description":"Rate limit exceeded. Retry-After is provided.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"503":{"description":"Temporary service or database unavailability.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}},"500":{"description":"Unexpected internal error.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/DealerPublicProblemDetails"}}}}},"description":"Fetch a single editorial content item of the authenticated dealer, selected by its public slug."}}},"components":{"schemas":{"DealerPublicProblemDetails":{"type":"object","description":"RFC 7807 problem+json error body returned by every Dealer Public API endpoint on failure.","required":["type","title","status","code"],"additionalProperties":true,"properties":{"type":{"type":"string","format":"uri","description":"Dereferenceable error documentation URL on developers.dealermax.app."},"title":{"type":"string","description":"Short, human-readable summary of the error."},"status":{"type":"integer","minimum":400,"maximum":599,"description":"HTTP status code, repeated for convenience."},"code":{"type":"string","description":"Stable machine-readable error code; pair it with the `type` URL to look up the error in the catalog.","enum":["missing_api_key","invalid_api_key","expired_api_key","invalid_service","invalid_content_type","invalid_identifier","dealer_not_found","vehicle_not_found","offer_not_found","content_not_found","validation_error","rate_limited","service_unavailable","internal_error"]},"detail":{"type":"string","description":"Human-readable explanation specific to this occurrence of the error."},"request_id":{"type":"string","description":"Correlation id for this request, echoed in the X-Request-ID header; quote it in support tickets."},"errors":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Per-field validation errors, present only for validation_error (free-form JSON objects)."}}},"DealerPublicInventoryItem":{"type":"object","additionalProperties":true,"description":"One item in a dealer inventory listing. The shape is a union across the three services (selected by `service`): REWIND/NOS items carry `id_auto`, NLT items carry `id_offerta`.","required":["service","nome_canonico","marca","modello"],"properties":{"id_auto":{"type":"string","format":"uuid","description":"Vehicle UUID — present for REWIND/NOS used-vehicle items; absent for NLT offer items."},"id_offerta":{"type":"integer","description":"NLT offer id — present for NLT items; absent for REWIND/NOS vehicle items."},"service":{"type":"string","enum":["REWIND","NOS","NLT"],"description":"Inventory service this item belongs to: REWIND (used vehicles for sale), NOS (used vehicles for rent), or NLT (long-term rental offers)."},"nome_canonico":{"type":"string","description":"Canonical display name (brand + model + trim), ready to show to end users."},"marca":{"type":"string","description":"Vehicle brand / make (e.g. 'BMW')."},"modello":{"type":"string","description":"Vehicle model (e.g. 'Serie 1')."},"allestimento":{"type":"string","description":"Trim / version of the model."},"prezzo_vendita":{"type":"number","description":"Sale price in EUR, VAT included (REWIND). May be absent for non-sale services."},"cover_url":{"type":"string","format":"uri","description":"Cover image URL for the item."},"has_podcast":{"type":"boolean","description":"True if a DealerMAX-generated audio podcast is available for this item."},"has_video":{"type":"boolean","description":"True if a DealerMAX-generated video is available for this item."}}},"DealerPublicInventoryListingResponse":{"type":"object","description":"A paginated page of dealer inventory items for a single service.","required":["service","page","page_size","total","has_next","items"],"properties":{"service":{"type":"string","enum":["REWIND","NOS","NLT"],"description":"Inventory service this page belongs to (REWIND, NOS or NLT)."},"page":{"type":"integer","minimum":1,"description":"Current 1-based page number."},"page_size":{"type":"integer","minimum":1,"maximum":100,"description":"Number of items per page."},"total":{"type":"integer","minimum":0,"description":"Total number of items across all pages."},"has_next":{"type":"boolean","description":"True if a further page exists after this one."},"items":{"type":"array","description":"Inventory items on this page.","items":{"$ref":"#/components/schemas/DealerPublicInventoryItem"}}}},"DealerPublicVehicleDetail":{"type":"object","additionalProperties":true,"description":"Full detail of a single used vehicle (REWIND/NOS).","required":["id_auto","marca","modello"],"properties":{"id_auto":{"type":"string","format":"uuid","description":"Vehicle UUID."},"marca":{"type":"string","description":"Vehicle brand / make."},"modello":{"type":"string","description":"Vehicle model."},"ai_content":{"type":"object","additionalProperties":true,"description":"DealerMAX-generated editorial content for the vehicle (free-form JSON object)."},"media_urls":{"type":"array","items":{"type":"string"},"description":"Ordered list of media (image/video) URLs for the vehicle."},"podcast":{"type":"object","additionalProperties":true,"description":"DealerMAX-generated podcast metadata, if available (free-form JSON object)."},"video":{"type":"object","additionalProperties":true,"description":"DealerMAX-generated video metadata, if available (free-form JSON object)."},"has_podcast":{"type":"boolean","description":"True if an audio podcast is available for this vehicle."},"has_video":{"type":"boolean","description":"True if a video is available for this vehicle."}}},"DealerPublicOfferDetail":{"type":"object","additionalProperties":true,"description":"Full detail of a single NLT (long-term rental) offer.","required":["id_offerta","marca","modello"],"properties":{"id_offerta":{"type":"integer","description":"NLT offer id."},"slug":{"type":"string","description":"URL-friendly unique slug identifying the offer."},"marca":{"type":"string","description":"Vehicle brand / make."},"modello":{"type":"string","description":"Vehicle model."},"versione":{"type":"string","description":"Trim / version of the model."},"quotazioni":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Monthly-fee quotations across duration×km combinations (each a free-form JSON object)."}}},"DealerPublicInventoryDetailResponse":{"type":"object","description":"Detail envelope for a single inventory item: carries `vehicle` for REWIND/NOS used vehicles or `offer` for NLT rental offers, selected by `service`.","required":["service"],"properties":{"service":{"type":"string","enum":["REWIND","NOS","NLT"],"description":"Service the detail belongs to (REWIND, NOS or NLT)."},"vehicle":{"$ref":"#/components/schemas/DealerPublicVehicleDetail"},"offer":{"$ref":"#/components/schemas/DealerPublicOfferDetail"}},"oneOf":[{"required":["service","vehicle"]},{"required":["service","offer"]}]},"DealerPublicContentItem":{"type":"object","additionalProperties":true,"description":"One editorial content item (news, guide, glossary term or FAQ) published on the dealer site.","properties":{"id":{"type":"integer","description":"Internal content item id."},"slug":{"type":"string","description":"URL-friendly unique slug identifying the content item."},"topic":{"type":"string","description":"Topic / category the content item belongs to."},"title":{"type":"string","description":"Content title."},"h1":{"type":"string","description":"Page H1 heading (may differ from the title)."},"meta_description":{"type":"string","description":"SEO meta description for the content page."},"excerpt":{"type":"string","description":"Short summary/teaser of the content."},"body_text_preview":{"type":"string","description":"Plain-text preview of the body (truncated; full body served on the dealer site)."},"url":{"type":"string","format":"uri","description":"Absolute URL of the content page on the dealer site."},"updated_at":{"type":"string","format":"date-time","description":"Timestamp of the last content update (ISO 8601)."}}},"DealerPublicContentListingResponse":{"type":"object","description":"A paginated page of editorial content items of a single content type.","required":["content_type","page","page_size","total","has_next","items"],"properties":{"content_type":{"type":"string","enum":["faq","news","glossary","guides","videos","podcasts"],"description":"Editorial content type of this page (news, guides, glossary or faq)."},"page":{"type":"integer","minimum":1,"description":"Current 1-based page number."},"page_size":{"type":"integer","minimum":1,"maximum":100,"description":"Number of items per page."},"total":{"type":"integer","minimum":0,"description":"Total number of items across all pages."},"has_next":{"type":"boolean","description":"True if a further page exists after this one."},"q":{"type":"string","description":"Free-text query echoed back when the listing was filtered by search."},"filters":{"type":"object","additionalProperties":true,"description":"Filters applied to the listing, echoed back (free-form JSON object)."},"meta":{"type":"object","additionalProperties":true,"description":"Identifying metadata about the dealer that owns the returned content.","properties":{"dealer":{"type":"object","additionalProperties":true,"description":"The dealer the content belongs to.","properties":{"id":{"type":"integer","description":"Internal dealer id."},"name":{"type":"string","description":"Dealer legal/registered name."},"brand_name":{"type":"string","description":"Dealer commercial brand name, as shown to end users."},"city":{"type":"string","description":"Dealer city."},"province":{"type":"string","description":"Dealer province (Italian two-letter code, e.g. 'MI')."},"primary_domain":{"type":"string","description":"Dealer primary public website domain."}}}}},"items":{"type":"array","description":"Content items on this page.","items":{"$ref":"#/components/schemas/DealerPublicContentItem"}}}},"DealerPublicContentDetailResponse":{"type":"object","description":"Detail envelope for a single editorial content item.","required":["content_type","item"],"properties":{"content_type":{"type":"string","enum":["faq","news","glossary","guides","videos","podcasts"],"description":"Editorial content type of the item (news, guides, glossary or faq)."},"item":{"$ref":"#/components/schemas/DealerPublicContentItem"},"meta":{"type":"object","additionalProperties":true,"description":"Identifying metadata about the dealer that owns the returned content.","properties":{"dealer":{"type":"object","additionalProperties":true,"description":"The dealer the content belongs to.","properties":{"id":{"type":"integer","description":"Internal dealer id."},"name":{"type":"string","description":"Dealer legal/registered name."},"brand_name":{"type":"string","description":"Dealer commercial brand name, as shown to end users."},"city":{"type":"string","description":"Dealer city."},"province":{"type":"string","description":"Dealer province (Italian two-letter code, e.g. 'MI')."},"primary_domain":{"type":"string","description":"Dealer primary public website domain."}}}}}}},"DealerPublicContentHubResponse":{"type":"object","description":"Content hub: a preview section per content type for the dealer.","required":["content_type","sections"],"properties":{"content_type":{"type":"string","enum":["hub"],"description":"Always 'hub' for this aggregated response."},"meta":{"type":"object","additionalProperties":true,"description":"Identifying metadata about the dealer that owns the returned content.","properties":{"dealer":{"type":"object","additionalProperties":true,"description":"The dealer the content belongs to.","properties":{"id":{"type":"integer","description":"Internal dealer id."},"name":{"type":"string","description":"Dealer legal/registered name."},"brand_name":{"type":"string","description":"Dealer commercial brand name, as shown to end users."},"city":{"type":"string","description":"Dealer city."},"province":{"type":"string","description":"Dealer province (Italian two-letter code, e.g. 'MI')."},"primary_domain":{"type":"string","description":"Dealer primary public website domain."}}}}},"sections":{"type":"object","description":"One preview listing per content type, keyed by content type name.","additionalProperties":{"$ref":"#/components/schemas/DealerPublicContentListingResponse"}}}},"DealerPublicContentSearchResponse":{"type":"object","description":"Cross-content-type search results for the dealer.","required":["q","page_size_per_type","total","by_type","items"],"properties":{"q":{"type":"string","description":"Free-text query that produced these results."},"page_size_per_type":{"type":"integer","minimum":1,"maximum":20,"description":"Maximum number of results returned per content type."},"total":{"type":"integer","minimum":0,"description":"Total number of matching items across all content types."},"by_type":{"type":"object","description":"Per-content-type match counts, keyed by content type name.","additionalProperties":{"type":"integer","minimum":0}},"items":{"type":"array","description":"Matching content items, interleaved across content types.","items":{"$ref":"#/components/schemas/DealerPublicContentItem"}},"meta":{"type":"object","additionalProperties":true,"description":"Identifying metadata about the dealer that owns the returned content.","properties":{"dealer":{"type":"object","additionalProperties":true,"description":"The dealer the content belongs to.","properties":{"id":{"type":"integer","description":"Internal dealer id."},"name":{"type":"string","description":"Dealer legal/registered name."},"brand_name":{"type":"string","description":"Dealer commercial brand name, as shown to end users."},"city":{"type":"string","description":"Dealer city."},"province":{"type":"string","description":"Dealer province (Italian two-letter code, e.g. 'MI')."},"primary_domain":{"type":"string","description":"Dealer primary public website domain."}}}}}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key"}}},"externalDocs":{"description":"DealerMAX Dealer Public API reference","url":"https://developers.dealermax.app/api"},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"tags":[{"name":"DealerPublicAPI","description":"Public REST API for individual dealers to access their own inventory, offers and DealerMax-generated content programmatically. Inventory services: REWIND (used vehicles for sale), NOS (used for rent without scoring), NLT (long-term rental offers / Noleggio Lungo Termine). Content resources: FAQ, news, glossary, guides, videos and podcasts."}]}