{
  "openapi": "3.1.0",
  "info": {
    "title": "GMS Pro Public Voorraad API",
    "version": "1.0.0",
    "description": "Read-only vehicle stock and lead submission for website embeds. Requires a per-garage public API key and allowed embed origin."
  },
  "servers": [{ "url": "https://api.gmspro.nl" }],
  "paths": {
    "/public/v1/vehicles": {
      "get": {
        "summary": "List published vehicles",
        "parameters": [
          { "name": "key", "in": "query", "required": true, "schema": { "type": "string" } },
          { "name": "page", "in": "query", "schema": { "type": "integer", "default": 1 } },
          { "name": "page_size", "in": "query", "schema": { "type": "integer", "default": 24, "maximum": 50 } }
        ],
        "responses": {
          "200": {
            "description": "Paginated vehicle list (no financial fields)"
          }
        }
      }
    },
    "/public/v1/vehicles/{slug}": {
      "get": {
        "summary": "Vehicle detail by slug or id",
        "parameters": [
          { "name": "key", "in": "query", "required": true, "schema": { "type": "string" } },
          { "name": "slug", "in": "path", "required": true, "schema": { "type": "string" } }
        ],
        "responses": {
          "200": { "description": "Single vehicle DTO" },
          "404": { "description": "Not found" }
        }
      }
    },
    "/public/v1/leads": {
      "post": {
        "summary": "Submit contact or proefrit lead",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["key", "name", "email"],
                "properties": {
                  "key": { "type": "string" },
                  "stock_vehicle_id": { "type": "string" },
                  "type": { "type": "string", "enum": ["contact", "proefrit"] },
                  "name": { "type": "string" },
                  "email": { "type": "string", "format": "email" },
                  "phone": { "type": "string" },
                  "message": { "type": "string" }
                }
              }
            }
          }
        },
        "responses": {
          "200": { "description": "Lead created" }
        }
      }
    }
  }
}
