{"openapi":"3.1.0","info":{"title":"AI Discovery Site Audit — AEO/GEO Fix Pack | agent402.dev","version":"1.7.0","description":"Primary product: five fixed remediation slots for JSON-LD, metadata, robots.txt, llms.txt, and sitemap.xml. Copy-paste code is included only when observed evidence permits; otherwise the slot reports an explicit review, none, or needs-input action. Includes a $5, 22-check technical SEO/AEO/GEO audit and seven fixed agent-discovery findings for one public HTTPS page with at least one public IPv4 DNS answer. Existing auxiliary x402 tools remain available on their documented paths.","x-guidance":"Use siteReleaseAudit for the primary $5 AI Discovery Site Audit. First POST the exact body to the free /site-release-audit/eligibility support route; it checks bounded main-document delivery but returns no score, findings, root observations, or remediations. Then submit the unchanged body promptly with an x402-capable buyer client that validates the exact v2 Base-USDC terms and supplies PAYMENT-SIGNATURE. Plain curl is only a 402 probe: it inspects the challenge, is not checkout, and does not pay. Direct x402 cancels settlement on a 4xx/5xx report response; Payan challenges before seller input validation and wrong input can still settle. Inspect GET /site-release-audit/sample.json and GET /site-release-audit/methodology.json for the current v1.1 contract. GET /site-release-audit/proof/v1/case-study.json is the immutable seller-controlled base proof; it predates and does not prove root-file observation.","contact":{"name":"AI Discovery Site Audit","url":"https://agent402.dev/site-release-audit"}},"servers":[{"url":"https://eden-model-provides-hoping.trycloudflare.com"}],"paths":{"/task-day-plan":{"post":{"operationId":"taskDayPlan","summary":"Prioritize and schedule up to 50 tasks for $0.01","description":"Returns a deterministic dependency-safe ranking, up to 24 sequential day blocks, unscheduled reasons, and SHA-256 integrity. No network, LLM, storage, or randomness.","tags":["Productivity"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"x-price":"$0.01","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskDayPlanInput"}}}},"responses":{"200":{"description":"Deterministic task-day plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskDayPlanReport"}}}},"400":{"description":"Invalid tasks, dependency graph, bounds, or RFC3339 timestamp"},"402":{"description":"Payment Required. An x402-capable buyer client must validate the challenge and retry once with PAYMENT-SIGNATURE; plain curl only obtains this 402 and does not pay."}}}},"/website-preflight":{"post":{"operationId":"websitePreflight","summary":"Preflight one public website with seven HEAD-only checks","description":"Returns a bounded public-HTTPS, public-IPv4-pinned HTTP, redirect, HSTS, CSP, nosniff, and frame-policy snapshot without downloading a response body.","tags":["Developer tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]},"x-price":"$0.05","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUrlInput"}}}},"responses":{"200":{"description":"Verified URL Evidence Snapshot","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrlPreflightReport"}}}},"400":{"description":"Invalid or unsafe public target"},"402":{"description":"Payment Required. An x402-capable buyer client must validate the challenge and retry once with PAYMENT-SIGNATURE; plain curl only obtains this 402 and does not pay."},"502":{"description":"Bounded target observation failed"}}}},"/url-evidence":{"get":{"operationId":"verifiedUrlEvidence","summary":"Capture bounded HTTP, TLS, and SHA-256 evidence for $1","description":"Returns one credential-free public HTTPS observation pinned to a public IPv4 address. The url query defaults to https://example.com/ so automated clients receive a valid delivery; buyers can supply another public HTTPS URL with at least one public IPv4 DNS answer. content_fingerprint defaults to true and hashes at most 128 KiB without retaining or returning response content. The encoded request-target is capped at 2300 bytes and its JSON string serialization at 2302 bytes. Delivery runs after payment verification but before settlement, so invalid or unavailable targets fail without charging.","tags":["Developer tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.00"},"protocols":[{"x402":{}}]},"x-price":"$1.00","x-request-target-max-bytes":2300,"x-request-target-max-json-bytes":2302,"parameters":[{"name":"url","in":"query","required":false,"description":"Credential-free public HTTPS URL. The complete encoded request-target must not exceed 2300 bytes or 2302 bytes as a JSON string.","schema":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048,"default":"https://example.com/"}},{"name":"content_fingerprint","in":"query","required":false,"description":"Hash up to 128 KiB of the response representation.","schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"Verified URL Evidence Snapshot","headers":{"X-Evidence-ID":{"description":"Stable 24-hex identifier for this point-in-time observation.","schema":{"type":"string","pattern":"^[a-f0-9]{24}$"}},"X-Report-SHA256":{"description":"SHA-256 of the JSON report before reportSha256 is appended.","schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrlEvidenceReport"}}}},"400":{"description":"Invalid or unsafe public target; payment does not settle"},"402":{"description":"Payment Required. An x402-capable buyer client must validate the challenge and retry once with PAYMENT-SIGNATURE; plain curl only obtains this 402 and does not pay."},"502":{"description":"Bounded target observation failed; payment does not settle"}}}},"/site-release-audit":{"post":{"operationId":"siteReleaseAudit","summary":"AI Discovery Site Audit — AEO/GEO Fix Pack for one public URL","description":"Returns 22 bounded transport, security-header, SEO, accessibility-surface, AEO, and GEO checks, seven fixed agent-discovery findings, and five fixed remediation slots for JSON-LD, metadata, robots.txt, llms.txt, and sitemap.xml. The target must have at least one public IPv4 DNS answer; every connection is pinned to a validated public IPv4 address. A slot includes copy-paste code only when observed evidence permits; otherwise its action is review, none, or needs-input. Root requests are parallel, redirect-free, size-capped, and nonfatal. Payment requires an x402-capable client and PAYMENT-SIGNATURE; plain curl only obtains the HTTP 402 challenge and does not pay.","tags":["Developer tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"5.00"},"protocols":[{"x402":{}}]},"x-price":"$5.00","x-payment-client-guidance":{"required":true,"protocolVersion":2,"requestHeader":"PAYMENT-SIGNATURE","plainCurlBehavior":"HTTP 402 probe only; not checkout; no payment."},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUrlInput"}}}},"responses":{"200":{"description":"Website Release Evidence Dossier","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteEvidenceReport"}}}},"400":{"description":"Invalid or unsafe public target"},"402":{"description":"Payment Required. An x402-capable buyer client must validate the challenge and retry once with PAYMENT-SIGNATURE; plain curl only obtains this 402 and does not pay."},"502":{"description":"Bounded target observation failed"}}}},"/site-release-audit/eligibility":{"post":{"operationId":"siteReleaseAuditEligibility","summary":"Check main-document delivery eligibility before paying","description":"Free point-in-time support check for the exact paid body. It reuses the paid audit main-document DNS, TLS, IP-pinning, redirect, body-cap, and deadline path; makes zero root-file requests; and returns no audit score, findings, or remediations. It is not an outcome or ranking guarantee. Payan can settle wrong input, so submit the unchanged checked body promptly.","tags":["Developer tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUrlInput"}}}},"responses":{"200":{"description":"Main-document delivery was eligible at the stated time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteAuditEligibility"}}}},"422":{"description":"Exact input or target is ineligible","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteAuditEligibility"}}}},"429":{"description":"Ephemeral client or target rate limit reached","headers":{"Retry-After":{"schema":{"type":"integer","const":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteAuditEligibility"}}}},"503":{"description":"Transport eligibility is unknown or local probe capacity is full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteAuditEligibility"}}}}}}},"/site-release-audit/sample.json":{"get":{"operationId":"siteReleaseAuditSample","summary":"Inspect a full production-format audit sample for example.com","description":"Free fixed-target proof of the exact paid response contract. It contains all 22 checks, seven discovery findings, five fixed remediation slots with conditional code and explicit actions, and integrity checksums; it cannot audit caller-selected URLs.","tags":["Developer tools"],"responses":{"200":{"description":"Full production-format Website Release Evidence Dossier sample","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteEvidenceReport"}}}},"502":{"description":"The fixed public sample target could not be refreshed"}}}},"/site-release-audit/methodology.json":{"get":{"operationId":"siteReleaseAuditMethodology","summary":"Inspect the live fixed audit method and fail-closed rules","description":"Free machine-readable check weights, AEO/GEO finding IDs, remediation slots, observation limits, fail-closed predicates, and exact integrity semantics for the paid audit.","tags":["Developer tools"],"responses":{"200":{"description":"Live production methodology","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"502":{"description":"The live methodology could not be assembled"}}}},"/site-release-audit/proof/v1/case-study.json":{"get":{"operationId":"siteReleaseAuditCaseStudy","summary":"Verify one frozen v1 base 22-check before/after audit case","description":"Free, immutable seller-controlled v1 deterministic replay: complete frozen HTTP representations, both full 22-check reports, all 22/7/5 deltas, a root-replacement patch, integrity hashes, and explicit limitations. It predates and does not prove the v1.1 root-file observations shown by the live sample and methodology. It is not a paid customer result or an independent attestation.","tags":["Developer tools"],"responses":{"200":{"description":"Reproducible Website Release Evidence Dossier case study","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteAuditCaseStudy"}}}}}}},"/audit-x402":{"post":{"operationId":"auditX402","summary":"Audit one public x402 v2 GET endpoint","description":"Checks a public-IPv4-pinned endpoint for payment binding, Base USDC terms, Bazaar metadata, protected-body leakage, and launch readiness.","tags":["Developer tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"5.99"},"protocols":[{"x402":{}}]},"x-price":"$5.99","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402AuditInput"}}}},"responses":{"200":{"description":"x402 launch-readiness report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402AuditReport"}}}},"400":{"description":"Invalid or unsafe public target"},"402":{"description":"Payment Required. An x402-capable buyer client must validate the challenge and retry once with PAYMENT-SIGNATURE; plain curl only obtains this 402 and does not pay."},"502":{"description":"Bounded target observation failed"}}}},"/x402-health":{"post":{"operationId":"x402Health","summary":"Check one public x402 GET endpoint for $0.01","description":"Returns bounded challenge, resource-binding, canonical Base USDC, and Bazaar health facts for a public-IPv4-pinned endpoint without paying the target or exposing the full remediation dossier.","tags":["Developer tools"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"x-price":"$0.01","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402AuditInput"}}}},"responses":{"200":{"description":"x402 endpoint health snapshot","content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402HealthReport"}}}},"400":{"description":"Invalid or unsafe public target"},"402":{"description":"Payment Required. An x402-capable buyer client must validate the challenge and retry once with PAYMENT-SIGNATURE; plain curl only obtains this 402 and does not pay."},"502":{"description":"Bounded target observation failed"}}}},"/download":{"get":{"operationId":"downloadWayfarersDeck","summary":"Download Wayfarer's Deck quest-card kit","description":"Returns the complete offline quest-card workshop ZIP.","tags":["Downloads"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"5.99"},"protocols":[{"x402":{}}]},"x-price":"$5.99","parameters":[{"name":"version","in":"query","required":false,"description":"Optional archive version selector.","schema":{"type":"string","const":"1.0"}}],"responses":{"200":{"description":"ZIP archive","headers":{"X-Content-SHA256":{"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"content":{"application/zip":{}}},"402":{"description":"Payment Required. An x402-capable buyer client must validate the challenge and retry once with PAYMENT-SIGNATURE; plain curl only obtains this 402 and does not pay."}}}},"/qr-campaign-pack":{"get":{"operationId":"downloadQrCampaignPack","summary":"Download the Bulk QR Campaign Pack","description":"Returns the offline CSV/TSV/JSON-to-SVG/PNG workshop ZIP.","tags":["Downloads"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"5.99"},"protocols":[{"x402":{}}]},"x-price":"$5.99","parameters":[{"name":"version","in":"query","required":false,"description":"Optional archive version selector.","schema":{"type":"string","const":"1.0.0"}}],"responses":{"200":{"description":"ZIP archive","headers":{"X-Content-SHA256":{"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"content":{"application/zip":{}}},"402":{"description":"Payment Required. An x402-capable buyer client must validate the challenge and retry once with PAYMENT-SIGNATURE; plain curl only obtains this 402 and does not pay."}}}}},"components":{"schemas":{"TaskDayPlanInput":{"type":"object","additionalProperties":false,"required":["tasks","available_minutes","start_at","strategy"],"properties":{"tasks":{"type":"array","maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["id","title","importance","duration_minutes"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"Unique task ID without surrounding whitespace."},"title":{"type":"string","minLength":1,"maxLength":160},"importance":{"type":"integer","minimum":1,"maximum":5},"duration_minutes":{"type":"integer","minimum":5,"maximum":480},"deadline":{"type":"string","format":"date-time","maxLength":40,"description":"Optional RFC3339 deadline with an explicit timezone."},"dependency_ids":{"type":"array","maxItems":49,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":64}}}}},"available_minutes":{"type":"integer","minimum":0,"maximum":1440},"start_at":{"type":"string","format":"date-time","maxLength":40,"description":"RFC3339 day-plan start with an explicit timezone."},"strategy":{"type":"string","enum":["balanced","deadline","impact"]}}},"TaskDayPlanReport":{"type":"object","additionalProperties":false,"required":["schema_version","product","strategy","start_at","available_minutes","scheduled_minutes","remaining_minutes","ranked_tasks","blocks","unscheduled","summary","plan_id","report_sha256"],"properties":{"schema_version":{"type":"string","const":"1.0.0"},"product":{"type":"string","const":"Deterministic Task Day Scheduler"},"strategy":{"type":"string","enum":["balanced","deadline","impact"]},"start_at":{"type":"string","format":"date-time"},"available_minutes":{"type":"integer","minimum":0,"maximum":1440},"scheduled_minutes":{"type":"integer","minimum":0,"maximum":1440},"remaining_minutes":{"type":"integer","minimum":0,"maximum":1440},"ranked_tasks":{"type":"array","maxItems":50,"items":{"type":"object","required":["rank","task_id","title","importance","duration_minutes","deadline","dependency_ids","disposition"],"properties":{"rank":{"type":"integer","minimum":1,"maximum":50},"task_id":{"type":"string","maxLength":64},"title":{"type":"string","maxLength":160},"importance":{"type":"integer","minimum":1,"maximum":5},"duration_minutes":{"type":"integer","minimum":5,"maximum":480},"deadline":{"type":["string","null"]},"dependency_ids":{"type":"array","maxItems":49,"items":{"type":"string","maxLength":64}},"disposition":{"type":"string","enum":["scheduled","unscheduled"]}}}},"blocks":{"type":"array","maxItems":24,"items":{"type":"object","required":["block","task_id","title","start_at","end_at","duration_minutes","deadline","deadline_met"],"properties":{"block":{"type":"integer","minimum":1,"maximum":24},"task_id":{"type":"string","maxLength":64},"title":{"type":"string","maxLength":160},"start_at":{"type":"string","format":"date-time"},"end_at":{"type":"string","format":"date-time"},"duration_minutes":{"type":"integer","minimum":5,"maximum":480},"deadline":{"type":["string","null"]},"deadline_met":{"type":["boolean","null"]}}}},"unscheduled":{"type":"array","maxItems":50,"items":{"type":"object","required":["task_id","title","reason","message"],"properties":{"task_id":{"type":"string","maxLength":64},"title":{"type":"string","maxLength":160},"reason":{"type":"string","enum":["insufficient_time","block_limit","dependency_unscheduled"]},"message":{"type":"string"},"blocked_by":{"type":"array","maxItems":49,"items":{"type":"string","maxLength":64}}}}},"summary":{"type":"object","required":["task_count","scheduled_count","unscheduled_count","block_count"],"properties":{"task_count":{"type":"integer","minimum":0,"maximum":50},"scheduled_count":{"type":"integer","minimum":0,"maximum":24},"unscheduled_count":{"type":"integer","minimum":0,"maximum":50},"block_count":{"type":"integer","minimum":0,"maximum":24}}},"plan_id":{"type":"string","pattern":"^[a-f0-9]{24}$"},"report_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"UrlEvidenceReport":{"type":"object","additionalProperties":false,"required":["product","version","observedAt","target","http","tls","summary","checks","scope","evidenceId","reportSha256"],"properties":{"product":{"type":"string","const":"Verified URL Evidence Snapshot"},"version":{"type":"string","const":"1.1.0"},"observedAt":{"type":"string","format":"date-time"},"target":{"type":"object","additionalProperties":false,"required":["url","method"],"properties":{"url":{"type":"string","pattern":"^https://"},"method":{"type":"string","enum":["HEAD","GET"]}}},"http":{"type":"object","required":["status","durationMs","headers"],"additionalProperties":true},"tls":{"type":["object","null"],"additionalProperties":true},"contentEvidence":{"type":"object","additionalProperties":false,"required":["algorithm","limitBytes","sampleBytes","sampleSha256","complete","representationEncoding"],"properties":{"algorithm":{"type":"string","const":"sha256"},"limitBytes":{"type":"integer","const":131072},"sampleBytes":{"type":"integer","minimum":0,"maximum":131072},"sampleSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"complete":{"type":"boolean"},"representationEncoding":{"type":["string","null"]}}},"summary":{"type":"object","required":["passes","warnings","failures"],"properties":{"passes":{"type":"integer","minimum":0},"warnings":{"type":"integer","minimum":0},"failures":{"type":"integer","minimum":0}}},"checks":{"type":"array","minItems":7,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","status","message"],"properties":{"id":{"type":"string","enum":["public-https","http-response","direct-url","content-fingerprint","hsts","content-security-policy","nosniff","frame-policy"]},"status":{"type":"string","enum":["pass","warning","fail"]},"message":{"type":"string"}}}},"scope":{"type":"string"},"evidenceId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"reportSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"PublicUrlInput":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048,"description":"Public HTTPS URL with at least one public IPv4 DNS answer."}}},"SiteAuditEligibility":{"type":"object","additionalProperties":false,"required":["schemaVersion","product","checkKind","checkedAt","validUntil","eligibility","reason","inputSha256","observation","purchaseBinding"],"properties":{"schemaVersion":{"type":"string","const":"1.0.0"},"product":{"type":"string","const":"AI Discovery Site Audit — AEO/GEO Fix Pack"},"checkKind":{"type":"string","const":"pre-payment-delivery-eligibility"},"checkedAt":{"type":"string","format":"date-time"},"validUntil":{"type":"string","format":"date-time"},"eligibility":{"type":"string","enum":["eligible","ineligible","unknown"]},"reason":{"type":"string","enum":["main_document_deliverable","invalid_input","invalid_target","transport_unavailable","rate_limited","capacity_limited"]},"inputSha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"observation":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["method","requestedUrlSha256","finalUrlSha256","redirectCount","status","contentType","rootRequests"],"properties":{"method":{"type":"string","const":"GET"},"requestedUrlSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"finalUrlSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"redirectCount":{"type":"integer","minimum":0,"maximum":3},"status":{"type":"integer","minimum":100,"maximum":599},"contentType":{"type":["string","null"],"maxLength":100},"rootRequests":{"type":"integer","const":0}}}]},"purchaseBinding":{"type":"object","additionalProperties":false,"required":["offerId","priceCents","amountAtomic","directRoute","payanRoute","submitUnchangedBodyPromptly","caveat"],"properties":{"offerId":{"type":"string","const":"kh70zbzh8m5awkegpvn7tc82798aed20"},"priceCents":{"type":"integer","const":500},"amountAtomic":{"type":"string","const":"5000000"},"directRoute":{"type":"string","const":"/site-release-audit"},"payanRoute":{"type":"string","const":"https://payanagent.com/x402/kh70zbzh8m5awkegpvn7tc82798aed20"},"submitUnchangedBodyPromptly":{"type":"boolean","const":true},"caveat":{"type":"string","minLength":1,"maxLength":300}}}}},"UrlPreflightCheck":{"type":"object","additionalProperties":false,"required":["id","status","message"],"properties":{"id":{"type":"string","enum":["public-https","http-response","direct-url","hsts","content-security-policy","nosniff","frame-policy"]},"status":{"type":"string","enum":["pass","warning","fail"]},"message":{"type":"string"}}},"UrlPreflightReport":{"type":"object","required":["product","version","observedAt","target","http","tls","summary","checks","scope","evidenceId","reportSha256"],"properties":{"product":{"type":"string","const":"Verified URL Evidence Snapshot"},"version":{"type":"string","const":"1.1.0"},"observedAt":{"type":"string","format":"date-time"},"target":{"type":"object","required":["url","method"],"properties":{"url":{"type":"string","format":"uri"},"method":{"type":"string","const":"HEAD"}}},"http":{"type":"object","additionalProperties":true},"tls":{"type":["object","null"],"additionalProperties":true},"summary":{"type":"object","required":["passes","warnings","failures"],"properties":{"passes":{"type":"integer","minimum":0},"warnings":{"type":"integer","minimum":0},"failures":{"type":"integer","minimum":0}}},"checks":{"type":"array","minItems":7,"maxItems":7,"items":{"$ref":"#/components/schemas/UrlPreflightCheck"}},"scope":{"type":"string"},"evidenceId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"reportSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"X402AuditInput":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048,"description":"Public HTTPS endpoint with at least one public IPv4 DNS answer."},"method":{"type":"string","enum":["GET"],"default":"GET"}}},"WebsiteAuditCheck":{"type":"object","additionalProperties":false,"required":["id","section","title","status","points","earned","evidence","fix"],"properties":{"id":{"type":"string"},"section":{"type":"string","enum":["transport","security","seo","accessibility"]},"title":{"type":"string"},"status":{"type":"string","enum":["pass","warning","fail"]},"points":{"type":"number"},"earned":{"type":"number"},"evidence":{"type":"object","additionalProperties":true},"fix":{"type":["string","null"],"description":"Prioritized copy-ready remediation when the check does not pass."}}},"WebsiteEvidenceReport":{"type":"object","required":["schemaVersion","product","observedAt","target","http","tls","summary","checks","aiDiscovery","dossierId","reportSha256"],"properties":{"schemaVersion":{"type":"string","const":"1.1.0"},"product":{"type":"string","const":"Website Release Evidence Dossier"},"observedAt":{"type":"string","format":"date-time"},"target":{"type":"object","additionalProperties":true},"http":{"type":"object","additionalProperties":true},"tls":{"type":["object","null"],"additionalProperties":true},"summary":{"type":"object","required":["score","possible","grade","verdict","ready","passes","warnings","failures","sections"],"properties":{"score":{"type":"number","minimum":0,"maximum":100},"possible":{"type":"number","const":100},"grade":{"type":"string","enum":["A","B","C","D","F"]},"verdict":{"type":"string","enum":["strong-baseline","improvements-recommended","material-gaps"]},"ready":{"type":"boolean"},"passes":{"type":"integer","minimum":0},"warnings":{"type":"integer","minimum":0},"failures":{"type":"integer","minimum":0},"sections":{"type":"object","additionalProperties":true}}},"checks":{"type":"array","minItems":22,"maxItems":22,"items":{"$ref":"#/components/schemas/WebsiteAuditCheck"}},"aiDiscovery":{"type":"object","description":"AEO, GEO, and agent-discovery findings plus bounded same-origin root-file evidence and evidence-derived remediation candidates.","additionalProperties":false,"required":["contractVersion","methodology","dimensions","summary","findings","remediations","rootEvidence","networkScope","caveats"],"properties":{"contractVersion":{"type":"string","const":"1.1.0"},"methodology":{"type":"string","const":"root-evidence-v1"},"dimensions":{"type":"object","additionalProperties":false,"required":["aeo","geo","agentDiscovery"],"properties":{"aeo":{"type":"string","const":"Answer Engine Optimization (AEO)"},"geo":{"type":"string","const":"Generative Engine Optimization (GEO)"},"agentDiscovery":{"type":"string","const":"Agent discovery readiness"}}},"summary":{"type":"object","additionalProperties":false,"required":["passes","warnings","failures","notObserved"],"properties":{"passes":{"type":"integer","minimum":0,"maximum":7},"warnings":{"type":"integer","minimum":0,"maximum":7},"failures":{"type":"integer","minimum":0,"maximum":7},"notObserved":{"type":"integer","minimum":0,"maximum":3}}},"findings":{"type":"array","minItems":7,"maxItems":7,"items":{"type":"object","additionalProperties":false,"required":["id","dimensions","status","checkIds","remediationIds","message","evidence"],"properties":{"id":{"type":"string","enum":["page-identity","content-structure","structured-page-identity","page-indexability","robots-txt","llms-txt","sitemap-xml"]},"dimensions":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["aeo","geo","agent-discovery"]}},"status":{"type":"string","enum":["pass","warning","fail","not-observed"]},"checkIds":{"type":"array","maxItems":4,"uniqueItems":true,"items":{"type":"string"}},"remediationIds":{"type":"array","maxItems":2,"uniqueItems":true,"items":{"type":"string","enum":["json-ld-webpage","head-meta","robots-txt","llms-txt","sitemap-xml"]}},"message":{"type":"string","maxLength":300},"evidence":{"type":"object","additionalProperties":true}}}},"remediations":{"type":"array","minItems":5,"maxItems":5,"items":{"type":"object","additionalProperties":false,"required":["id","artifact","target","action","contentType","code","codeSha256","checkIds","inputsNeeded","reviewRequired","rationale"],"properties":{"id":{"type":"string","enum":["json-ld-webpage","head-meta","robots-txt","llms-txt","sitemap-xml"]},"artifact":{"type":"string","maxLength":100},"target":{"type":"string","maxLength":100},"action":{"type":"string","enum":["insert","merge","review","none","needs-input"]},"contentType":{"type":"string","enum":["application/ld+json","text/html","text/plain","text/markdown","application/xml"]},"code":{"type":["string","null"],"maxLength":8192},"codeSha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"checkIds":{"type":"array","maxItems":4,"uniqueItems":true,"items":{"type":"string"}},"inputsNeeded":{"type":"array","maxItems":4,"uniqueItems":true,"items":{"type":"string"}},"reviewRequired":{"type":"boolean"},"rationale":{"type":"string","maxLength":500}}}},"rootEvidence":{"type":"object","additionalProperties":false,"required":["contractVersion","originSha256","additionalRequests","files","evidenceSha256"],"properties":{"contractVersion":{"type":"string","const":"1.1.0"},"originSha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"additionalRequests":{"type":"integer","minimum":0,"maximum":3},"files":{"type":"object","additionalProperties":false,"required":["robotsTxt","llmsTxt","sitemapXml"],"properties":{"robotsTxt":{"type":"object","additionalProperties":false,"required":["path","status","contentType","bodyBytes","bodySha256","result","reason","representationEncoding","tlsProtocol","facts","evidenceSha256"],"properties":{"path":{"type":"string","enum":["/robots.txt","/llms.txt","/sitemap.xml"]},"status":{"type":["integer","null"],"minimum":0,"maximum":599},"contentType":{"type":["string","null"],"maxLength":100},"bodyBytes":{"type":["integer","null"],"minimum":0,"maximum":262144},"bodySha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"result":{"type":"string","enum":["present","missing","invalid","not-observed"]},"reason":{"type":"string","maxLength":200},"representationEncoding":{"type":"string","const":"identity"},"tlsProtocol":{"type":["string","null"],"enum":["TLSv1.2","TLSv1.3",null]},"facts":{"type":["object","null"],"additionalProperties":true},"evidenceSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"llmsTxt":{"type":"object","additionalProperties":false,"required":["path","status","contentType","bodyBytes","bodySha256","result","reason","representationEncoding","tlsProtocol","facts","evidenceSha256"],"properties":{"path":{"type":"string","enum":["/robots.txt","/llms.txt","/sitemap.xml"]},"status":{"type":["integer","null"],"minimum":0,"maximum":599},"contentType":{"type":["string","null"],"maxLength":100},"bodyBytes":{"type":["integer","null"],"minimum":0,"maximum":262144},"bodySha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"result":{"type":"string","enum":["present","missing","invalid","not-observed"]},"reason":{"type":"string","maxLength":200},"representationEncoding":{"type":"string","const":"identity"},"tlsProtocol":{"type":["string","null"],"enum":["TLSv1.2","TLSv1.3",null]},"facts":{"type":["object","null"],"additionalProperties":true},"evidenceSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"sitemapXml":{"type":"object","additionalProperties":false,"required":["path","status","contentType","bodyBytes","bodySha256","result","reason","representationEncoding","tlsProtocol","facts","evidenceSha256"],"properties":{"path":{"type":"string","enum":["/robots.txt","/llms.txt","/sitemap.xml"]},"status":{"type":["integer","null"],"minimum":0,"maximum":599},"contentType":{"type":["string","null"],"maxLength":100},"bodyBytes":{"type":["integer","null"],"minimum":0,"maximum":262144},"bodySha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"result":{"type":"string","enum":["present","missing","invalid","not-observed"]},"reason":{"type":"string","maxLength":200},"representationEncoding":{"type":"string","const":"identity"},"tlsProtocol":{"type":["string","null"],"enum":["TLSv1.2","TLSv1.3",null]},"facts":{"type":["object","null"],"additionalProperties":true},"evidenceSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}}}},"evidenceSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"networkScope":{"type":"object","additionalProperties":false,"required":["additionalRequests","htmlAnalyzed","requested","notObserved","statement"],"properties":{"additionalRequests":{"type":"integer","minimum":0,"maximum":3},"htmlAnalyzed":{"type":"boolean"},"requested":{"type":"array","minItems":0,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["/robots.txt","/llms.txt","/sitemap.xml"]}},"notObserved":{"type":"array","minItems":0,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["/robots.txt","/llms.txt","/sitemap.xml"]}},"statement":{"type":"string","maxLength":300}}},"caveats":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"string","maxLength":300}}}},"dossierId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"reportSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"SiteAuditCaseStudy":{"type":"object","additionalProperties":true,"required":["schemaVersion","caseStudyId","evidenceKind","livePaidRouteUsed","selfAuditBlocked","sourceRepresentations","patch","reports","delta","caveats","integrity"],"properties":{"schemaVersion":{"type":"string","const":"1.0.0"},"caseStudyId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"evidenceKind":{"type":"string","const":"seller-controlled-deterministic-replay"},"livePaidRouteUsed":{"type":"boolean","const":false},"selfAuditBlocked":{"type":"boolean","const":true},"sourceRepresentations":{"type":"object","required":["before","after"],"additionalProperties":true},"patch":{"type":"object","additionalProperties":true},"reports":{"type":"object","required":["before","after"],"additionalProperties":true},"delta":{"type":"object","additionalProperties":true},"caveats":{"type":"array","minItems":1,"items":{"type":"string"}},"integrity":{"type":"object","additionalProperties":true}}},"X402AuditCheck":{"type":"object","additionalProperties":false,"required":["id","status","message"],"properties":{"id":{"type":"string","enum":["http-402","protocol-v2","payment-options","payment-fields","base-usdc","resource-binding","bazaar-discovery","protected-body"]},"status":{"type":"string","enum":["pass","warning","fail"]},"message":{"type":"string","description":"Observed payment, discovery, or protected-body evidence."},"remediation":{"type":"string","description":"Actionable fix when the check does not pass."}}},"X402HealthReport":{"type":"object","additionalProperties":false,"required":["product","version","healthId","checkedAt","target","health","payment","disclaimer","reportSha256"],"properties":{"product":{"type":"string","const":"x402 Endpoint Health Snapshot"},"version":{"type":"string","const":"1.0.0"},"healthId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"checkedAt":{"type":"string","format":"date-time"},"target":{"type":"object","additionalProperties":true},"health":{"type":"object","additionalProperties":false,"required":["healthy","score","challengeValid","resourceBound","baseCanonicalUsdc","bazaarDiscoverable"],"properties":{"healthy":{"type":"boolean"},"score":{"type":"integer","minimum":0,"maximum":100},"challengeValid":{"type":"boolean"},"resourceBound":{"type":"boolean"},"baseCanonicalUsdc":{"type":"boolean"},"bazaarDiscoverable":{"type":"boolean"}}},"payment":{"type":["object","null"],"additionalProperties":true},"disclaimer":{"type":"string"},"reportSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"X402AuditReport":{"type":"object","required":["product","version","auditId","auditedAt","target","summary","payment","checks","clientSnippets","disclaimer","reportSha256"],"properties":{"product":{"type":"string","const":"x402 Launch Readiness Audit"},"version":{"type":"string","const":"1.0.0"},"auditId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"auditedAt":{"type":"string","format":"date-time"},"target":{"type":"object","additionalProperties":true},"summary":{"type":"object","required":["score","ready","passes","warnings","failures"],"properties":{"score":{"type":"integer","minimum":0,"maximum":100},"ready":{"type":"boolean"},"passes":{"type":"integer","minimum":0},"warnings":{"type":"integer","minimum":0},"failures":{"type":"integer","minimum":0}}},"payment":{"type":["object","null"],"additionalProperties":true},"checks":{"type":"array","minItems":8,"maxItems":8,"items":{"$ref":"#/components/schemas/X402AuditCheck"}},"clientSnippets":{"type":"object","additionalProperties":true},"disclaimer":{"type":"string"},"reportSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}}}}}