{"components":{"schemas":{"Evaluation":{"properties":{"criteria":{"items":{"type":"object"},"type":"array"},"criteria_set":{"properties":{"digest":{"type":["string","null"]},"slug":{"type":"string"},"version":{"type":"integer"}},"type":"object"},"grade":{"type":"string"},"score":{"maximum":100,"minimum":0,"type":["number","null"]},"summary":{"oneOf":[{"$ref":"#/components/schemas/ScoreSummary"},{"type":"null"}]}},"type":"object"},"Problem":{"properties":{"detail":{"type":"string"},"status":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"}},"required":["type","title","status","detail"],"type":"object"},"Scan":{"properties":{"domain":{"type":"string"},"evaluation":{"oneOf":[{"$ref":"#/components/schemas/Evaluation"},{"type":"null"}]},"requested_site_type":{"enum":["auto","content","api","commerce"],"type":"string"},"scan_id":{"format":"uuid","type":"string"},"status":{"enum":["queued","running","retry_wait","completed","failed"],"type":"string"}},"required":["scan_id","domain","status","evaluation"],"type":"object"},"ScanResponse":{"properties":{"contract_version":{"const":"1.1","type":"string"},"scan":{"$ref":"#/components/schemas/Scan"}},"required":["contract_version","scan"],"type":"object"},"ScoreSummary":{"properties":{"capture_scope":{"type":"string"},"coverage_bps":{"maximum":10000,"minimum":0,"type":"integer"},"eligible_weight_bps":{"type":"integer"},"limits":{"items":{"type":"string"},"type":"array"},"score_state":{"enum":["scored","blocked","main_page_unverified","insufficient_coverage"],"type":"string"},"site_type":{"enum":["content","api","commerce"],"type":"string"},"unknown_weight_bps":{"type":"integer"},"verified_weight_bps":{"type":"integer"}},"type":"object"}},"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}},"info":{"title":"Readiness API","version":"1.1.0"},"openapi":"3.1.0","paths":{"/api/v1/checks":{"get":{"responses":{"200":{"description":"Complete or stored response"}},"summary":"Read the score manifest"}},"/api/v1/scans":{"post":{"parameters":[{"in":"header","name":"Idempotency-Key","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"capture_profile":{"example":"static_v28","type":"string"},"site_type":{"default":"auto","enum":["auto","content","api","commerce"],"type":"string"},"url":{"type":"string"}},"required":["url","capture_profile"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResponse"}}},"description":"Complete or stored response"},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResponse"}}},"description":"Scan pending; poll Location"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"JSON problem response"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"JSON problem response"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"JSON problem response"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"JSON problem response"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Quota reached; follow Retry-After","headers":{"Retry-After":{"description":"Seconds before retry","schema":{"type":"integer"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"JSON problem response","headers":{"Retry-After":{"description":"Seconds before retry","schema":{"type":"integer"}}}}},"security":[{"bearerAuth":[]}],"summary":"Start or reuse a scan"}},"/api/v1/scans/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResponse"}}},"description":"Complete or stored response"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"JSON problem response"}},"summary":"Read durable scan status"}},"/api/v1/scores/{domain}":{"get":{"parameters":[{"in":"path","name":"domain","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scan"}}},"description":"Complete or stored response"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"JSON problem response"}},"summary":"Read the latest approved report"}}},"servers":[{"url":"https://agentnsight.com"}]}