{
  "openapi": "3.1.0",
  "info": {
    "title": "Lumi marketing site HTTP APIs",
    "description": "Route and method discovery overview for HTTP APIs exposed by the Lumi marketing and tools site. This file does not yet define every request field, response shape, authentication rule, or error status. All paths are relative to the site origin.",
    "version": "1.0.0"
  },
  "paths": {
    "/api/audit": {
      "post": {
        "summary": "Count missing alt attributes in the returned HTML of one storefront page",
        "operationId": "postAudit",
        "description": "Accepts a required url string and optional email string. If supplied, email is stored with the scan result. Returns results in the response; does not email a report."
      }
    },
    "/api/audit-report": {
      "post": {
        "summary": "Accessibility-style audit report payload",
        "operationId": "postAuditReport"
      }
    },
    "/api/risk-report/scan": {
      "post": {
        "summary": "Start or continue a multi-page risk report scan",
        "operationId": "postRiskReportScan"
      }
    },
    "/api/risk-report/contact": {
      "post": {
        "summary": "Save a risk report store URL and email address",
        "operationId": "postRiskReportContact",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": ["storeUrl", "email"],
                "properties": {
                  "storeUrl": { "type": "string", "format": "uri" },
                  "email": { "type": "string", "format": "email" }
                }
              }
            }
          }
        }
      }
    },
    "/api/risk-report/{id}": {
      "get": {
        "summary": "Retrieve a risk report by ID",
        "operationId": "getRiskReportById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": { "type": "string" }
          }
        ]
      }
    },
    "/api/calculator/contact": {
      "post": {
        "summary": "ROI calculator lead capture",
        "operationId": "postCalculatorContact"
      }
    },
    "/api/referral/clicks": {
      "get": {
        "summary": "Return referral click totals for the authenticated partner",
        "operationId": "getReferralClicks"
      }
    },
    "/api/referral/commissions": {
      "get": {
        "summary": "Return commissions and payouts for the authenticated partner",
        "operationId": "getReferralCommissions"
      }
    }
  }
}
