{"openapi":"3.1.0","info":{"title":"Launch Ready API","version":"2026-09-15","description":"Preview API for running a passive public website launch-readiness check. Intended for low-volume evaluation and protected by the same durable rate limits as the visible form."},"servers":[{"url":"https://launchready.cc"}],"externalDocs":{"description":"Human and agent documentation","url":"https://launchready.cc/docs/api/overview"},"paths":{"/api/v1/scans":{"get":{"operationId":"getScanApiCapabilities","summary":"Describe the scan API","responses":{"200":{"description":"API capabilities and discovery links","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapabilityResponse"}}}}}},"post":{"operationId":"runLaunchReadinessCheck","summary":"Run a light launch-readiness check","description":"Makes capped, read-only requests to a public HTTP or HTTPS website and returns only after the check completes. It does not run a browser, API operation, MCP connection, authentication flow, journey, write, or payment. Light-scan reports are public.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanRequest"}}}},"responses":{"200":{"description":"A recent public result was reused","headers":{"Location":{"description":"Absolute API result URL","schema":{"type":"string","format":"uri"}},"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanResponse"}}}},"201":{"description":"Check completed","headers":{"Location":{"description":"Absolute API result URL","schema":{"type":"string","format":"uri"}},"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanResponse"}}}},"400":{"$ref":"#/components/responses/ClientError"},"413":{"$ref":"#/components/responses/ClientError"},"415":{"$ref":"#/components/responses/ClientError"},"429":{"$ref":"#/components/responses/RateLimitError"},"502":{"$ref":"#/components/responses/UpstreamError"},"503":{"$ref":"#/components/responses/ServiceUnavailableError"}}}},"/api/v1/scans/{reportId}":{"get":{"operationId":"getLaunchReadinessReport","summary":"Read a public scan result","description":"Returns the structured result for a public light-scan report ID.","parameters":[{"name":"reportId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{32}$"}}],"responses":{"200":{"description":"Structured public report","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanReport"}}}},"404":{"$ref":"#/components/responses/ClientError"},"503":{"$ref":"#/components/responses/UpstreamError"}}}}},"components":{"headers":{"RequestId":{"description":"Identifier for support and tracing","schema":{"type":"string"}}},"responses":{"ClientError":{"description":"Invalid or unsupported request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimitError":{"description":"Fresh-scan rate limit exceeded","headers":{"Retry-After":{"description":"Seconds before retrying","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UpstreamError":{"description":"Target or report service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailableError":{"description":"Launch Ready storage or platform service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"CapabilityResponse":{"type":"object","additionalProperties":false,"required":["name","version","status","documentation","openapi","endpoint"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"status":{"const":"preview"},"documentation":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"},"endpoint":{"type":"string","format":"uri"}}},"CreateScanRequest":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public HTTP(S) website URL or hostname","examples":["https://example.com"]},"reportId":{"type":"string","pattern":"^[a-fA-F0-9]{32}$","description":"Optional client-generated report ID used to reserve a stable progress and result URL."}}},"CreateScanResponse":{"type":"object","required":["apiVersion","status","reportId","reportUrl","reportUrlAbsolute","resultUrl","reused","requestId"],"properties":{"apiVersion":{"type":"string"},"status":{"enum":["complete","partial","failed"]},"reportId":{"type":"string"},"reportUrl":{"type":"string"},"reportUrlAbsolute":{"type":"string","format":"uri"},"resultUrl":{"type":"string","format":"uri"},"reused":{"type":"boolean"},"requestId":{"type":"string"}}},"Error":{"type":"object","required":["error","code","requestId"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"requestId":{"type":"string"}}},"Finding":{"type":"object","required":["pillar","title","detail","severity"],"properties":{"pillar":{"enum":["clarity","trust","technical","discoverability"]},"title":{"type":"string"},"detail":{"type":"string"},"severity":{"enum":["positive","low","medium","high"]},"evidenceUrl":{"type":["string","null"],"format":"uri"},"observedValue":{"type":["string","null"]}}},"Measurement":{"type":"object","additionalProperties":false,"required":["category","label","value","status"],"properties":{"category":{"enum":["Content","Metadata","Delivery","Security","Discovery","Infrastructure"]},"label":{"type":"string"},"value":{"type":"string"},"status":{"enum":["good","warning","info"]}}},"EvidenceReference":{"type":"object","additionalProperties":false,"required":["url","source"],"properties":{"url":{"type":"string","format":"uri"},"source":{"enum":["submitted","redirect","linked","header","sitemap","convention","dns"]},"observedAt":{"type":"string","format":"date-time"}}},"CheckResult":{"type":"object","additionalProperties":false,"required":["id","pillar","title","status","detail","observedValue"],"properties":{"id":{"type":"string"},"pillar":{"enum":["clarity","trust","technical","discoverability"]},"title":{"type":"string"},"status":{"enum":["pass","partial","fail","info","unknown","error","blocked","not_applicable"]},"scoreFraction":{"type":["number","null"],"minimum":0,"maximum":1},"applicabilityReason":{"type":"string"},"errorCode":{"type":"string"},"detail":{"type":"string"},"observedValue":{"type":"string"},"evidenceUrl":{"type":"string","format":"uri"},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/EvidenceReference"}},"confidence":{"enum":["high","medium","low"]},"durationMs":{"type":"number","minimum":0},"importance":{"enum":["high","medium","low"]},"provenance":{"enum":["launch-ready","ora-inspired"]},"scoreWeight":{"type":"number","minimum":0},"scoreContribution":{"type":["number","null"],"minimum":0},"definitionVersion":{"type":"string"},"surface":{"enum":["web","docs","api","graphql","oauth","mcp","mcp-app","sdk","commerce"]},"mode":{"enum":["static","active-public","browser","journey","authorized"]},"maturity":{"enum":["verified","experimental"]},"requirement":{"enum":["core","recommended","bonus"]},"safetyClass":{"enum":["read-only","sandbox-read","sandbox-write","human-approval"]},"rationale":{"type":"string"}}},"PillarScores":{"type":"object","additionalProperties":false,"required":["clarity","trust","technical","discoverability"],"properties":{"clarity":{"type":"integer","minimum":0,"maximum":100},"trust":{"type":"integer","minimum":0,"maximum":100},"technical":{"type":"integer","minimum":0,"maximum":100},"discoverability":{"type":"integer","minimum":0,"maximum":100}}},"ScanReport":{"type":"object","additionalProperties":false,"required":["apiVersion","reportId","status","visibility","target","result","requestId"],"properties":{"apiVersion":{"type":"string"},"reportId":{"type":"string"},"status":{"enum":["complete","partial","failed"]},"visibility":{"const":"public"},"target":{"type":"object","additionalProperties":false,"required":["hostname","finalUrl"],"properties":{"hostname":{"type":"string"},"finalUrl":{"type":"string","format":"uri"}}},"result":{"type":"object","additionalProperties":false,"required":["score","verdict","summary","pillarScores","technologies","measurements","checkResults","methodologyVersion","checksRun","durationMs","completedAt","findings"],"properties":{"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Current mechanical scores are 1-100 and are withheld when applicable weighted evidence is incomplete; historical reports may retain a legacy zero."},"scoreContract":{"enum":["mechanical-applicable-weight","legacy-four-pillar-average"]},"weightedEvidenceCoverage":{"type":["number","null"],"minimum":0,"maximum":1},"earnedWeight":{"type":["number","null"]},"resolvedApplicableWeight":{"type":["number","null"]},"detectedApplicableWeight":{"type":["number","null"]},"scoreWithheldReason":{"type":["string","null"]},"scoreBasisId":{"type":["string","null"]},"checkSetVersion":{"type":["string","null"]},"scoringModelVersion":{"type":["string","null"]},"collectorVersion":{"type":["string","null"]},"scanDepth":{"enum":["light","deep"]},"evidenceCollectedAt":{"type":["string","null"],"format":"date-time"},"categoryPoints":{"type":["object","null"],"additionalProperties":{"type":"object","required":["earned","available"],"properties":{"earned":{"type":"number"},"available":{"type":"number"}}}},"surfaceProfile":{"type":["object","null"],"additionalProperties":true},"discoveryRecords":{"type":["array","null"],"items":{"type":"object","additionalProperties":true}},"verdict":{"type":"string"},"summary":{"type":"string"},"pillarScores":{"$ref":"#/components/schemas/PillarScores"},"technologies":{"type":"array","items":{"type":"string"}},"measurements":{"type":"array","items":{"$ref":"#/components/schemas/Measurement"}},"checkResults":{"type":"array","items":{"$ref":"#/components/schemas/CheckResult"}},"methodologyVersion":{"type":"string"},"checksRun":{"type":"integer"},"durationMs":{"type":"integer"},"completedAt":{"type":"string","format":"date-time"},"findings":{"type":"array","items":{"$ref":"#/components/schemas/Finding"}}}},"requestId":{"type":"string"}}}}}}