{
  "openapi": "3.1.0",
  "info": {
    "title": "SigmaJunction public API",
    "version": "1.0.0",
    "description": "The endpoints behind sigmajunction.com's forms. Agents may use them on a user's behalf when the user asks: send a project inquiry, request the partner checklist, or subscribe to the newsletter. No authentication; rate limited per IP. For read access to the site use the MCP server (https://sigmajunction.com/mcp) or any page's Markdown twin (append .md).",
    "contact": { "email": "hello@sigmajunction.com", "url": "https://sigmajunction.com/contact" }
  },
  "servers": [{ "url": "https://sigmajunction.com" }],
  "paths": {
    "/api/contact": {
      "post": {
        "operationId": "sendInquiry",
        "summary": "Send a project inquiry",
        "description": "Delivered to the partners; a reply follows by email within one business day.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["name", "email"],
                "properties": {
                  "name": { "type": "string", "maxLength": 200 },
                  "email": { "type": "string", "format": "email", "maxLength": 200 },
                  "company": { "type": "string", "maxLength": 200 },
                  "topic": { "type": "string", "maxLength": 100 },
                  "message": { "type": "string", "maxLength": 5000 }
                }
              }
            }
          }
        },
        "responses": {
          "200": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "ok": { "type": "boolean" } } } } } },
          "400": { "description": "Name and a valid email are required" },
          "413": { "description": "Payload too large" },
          "429": { "description": "Too many requests" }
        }
      }
    },
    "/api/checklist": {
      "post": {
        "operationId": "requestPartnerChecklist",
        "summary": "Email the software partner checklist (PDF)",
        "description": "Sends the requester an email with a download link. Newsletter only if newsletter is true.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["email"],
                "properties": {
                  "email": { "type": "string", "format": "email" },
                  "locale": { "type": "string", "enum": ["en", "de", "sr", "fr", "es", "it"], "default": "en" },
                  "newsletter": { "type": "boolean", "default": false }
                }
              }
            }
          }
        },
        "responses": {
          "200": { "description": "Email sent" },
          "400": { "description": "Invalid email" },
          "429": { "description": "Too many requests" }
        }
      }
    },
    "/api/newsletter": {
      "post": {
        "operationId": "subscribeNewsletter",
        "summary": "Subscribe to the newsletter (double opt-in)",
        "requestBody": {
          "required": true,
          "content": { "application/json": { "schema": { "type": "object", "required": ["email"], "properties": { "email": { "type": "string", "format": "email" } } } } }
        },
        "responses": { "200": { "description": "Confirmation email sent" }, "400": { "description": "Invalid email" } }
      }
    }
  }
}
