{
  "openapi": "3.1.0",
  "info": {
    "title": "Martina Peukert – Public Content & Lead API",
    "version": "1.0.0",
    "summary": "Public read-only content endpoints and a lead-submission endpoint exposed by martina-peukert.com for AI agents and integrators.",
    "description": "This OpenAPI document describes the publicly available HTTP resources of martina-peukert.com. The site is a human-services business (KI-Beratung, Keynotes, Workshops, EU-AI-Act-Schulung, Coaching). There is no autonomous booking API; lead capture is the only write operation and is explicitly designed for agent + human use.\n\nUse this spec to (a) discover machine-readable content (llms.txt, agent card, agent skills, sitemap), (b) submit a structured contact/lead via the Lovable Cloud edge function, and (c) initiate a human-in-the-loop booking flow by linking to the Calendly endpoint.",
    "contact": {
      "name": "Martina Peukert",
      "email": "info@martina-peukert.com",
      "url": "https://martina-peukert.com/kontakt"
    },
    "license": {
      "name": "Content citation allowed with attribution",
      "url": "https://martina-peukert.com/agents.md"
    }
  },
  "servers": [
    { "url": "https://martina-peukert.com", "description": "Production website" },
    { "url": "https://ybbkayxdtqxnwparhvhl.supabase.co", "description": "Lovable Cloud (edge functions)" }
  ],
  "tags": [
    { "name": "discovery", "description": "Machine-readable resources for AI agents (llms.txt, agent card, MCP discovery)." },
    { "name": "content", "description": "Human-readable HTML and Markdown pages." },
    { "name": "leads", "description": "Lead capture endpoints (no auth required, rate-limited)." },
    { "name": "booking", "description": "Human-in-the-loop booking via Calendly." }
  ],
  "paths": {
    "/llms.txt": {
      "get": {
        "tags": ["discovery"],
        "summary": "llms.txt index",
        "description": "Short llms.txt directory of services and machine-readable resources.",
        "responses": { "200": { "description": "text/markdown", "content": { "text/markdown": {} } } }
      }
    },
    "/llms-full.txt": {
      "get": {
        "tags": ["discovery"],
        "summary": "Full content profile",
        "description": "Verbose KI profile and offer catalogue suitable for retrieval-augmented agents.",
        "responses": { "200": { "description": "text/markdown", "content": { "text/markdown": {} } } }
      }
    },
    "/pricing.md": {
      "get": {
        "tags": ["discovery"],
        "summary": "Machine-readable pricing",
        "responses": { "200": { "description": "text/markdown", "content": { "text/markdown": {} } } }
      }
    },
    "/pricing": {
      "get": {
        "tags": ["content"],
        "summary": "Pricing & licence packages (HTML)",
        "responses": { "200": { "description": "text/html" } }
      }
    },
    "/agents.md": {
      "get": {
        "tags": ["discovery"],
        "summary": "Agent guide",
        "description": "Quick reference for AI agents: identity, skills, citation policy.",
        "responses": { "200": { "description": "text/markdown", "content": { "text/markdown": {} } } }
      }
    },
    "/.well-known/agent-card.json": {
      "get": {
        "tags": ["discovery"],
        "summary": "A2A Agent Card",
        "responses": { "200": { "description": "application/json", "content": { "application/json": {} } } }
      }
    },
    "/.well-known/agent-skills/index.json": {
      "get": {
        "tags": ["discovery"],
        "summary": "Agent Skills Index v0.2.0",
        "responses": { "200": { "description": "application/json" } }
      }
    },
    "/.well-known/mcp.json": {
      "get": {
        "tags": ["discovery"],
        "summary": "MCP discovery document",
        "responses": { "200": { "description": "application/json" } }
      }
    },
    "/sitemap.xml": {
      "get": {
        "tags": ["discovery"],
        "summary": "XML sitemap",
        "responses": { "200": { "description": "application/xml" } }
      }
    },
    "/functions/v1/notify-business-lead": {
      "servers": [{ "url": "https://ybbkayxdtqxnwparhvhl.supabase.co" }],
      "post": {
        "tags": ["leads"],
        "summary": "Submit a B2B lead",
        "description": "Public endpoint for agents/forms to submit a structured business inquiry. Triggers an internal notification. Rate-limited; abusive use will be blocked.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/BusinessLead" }
            }
          }
        },
        "responses": {
          "200": { "description": "Lead accepted" },
          "400": { "description": "Validation error" },
          "429": { "description": "Rate limited" }
        }
      }
    },
    "/calendly": {
      "servers": [{ "url": "https://calendly.com/mp-beratung" }],
      "get": {
        "tags": ["booking"],
        "summary": "Free 30-min discovery call (human-in-the-loop)",
        "description": "Calendly link. Agents must hand off to the human user to complete booking; there is intentionally no autonomous booking API.",
        "responses": { "302": { "description": "Redirect to Calendly UI" } }
      }
    }
  },
  "components": {
    "schemas": {
      "BusinessLead": {
        "type": "object",
        "required": ["name", "email", "message"],
        "properties": {
          "name": { "type": "string", "maxLength": 200 },
          "email": { "type": "string", "format": "email", "maxLength": 255 },
          "company": { "type": "string", "maxLength": 200 },
          "phone": { "type": "string", "maxLength": 40 },
          "message": { "type": "string", "maxLength": 5000 },
          "source": { "type": "string", "description": "How the lead found the site (page slug or campaign id)." }
        }
      }
    }
  }
}
