{"manifest_type":"santos-capability-manifest","manifest_version":"1.0.0","standard":false,"name":"Santos Website Intelligence API","description":"An AI Website Intelligence API that measures whether websites can be discovered, understood, trusted, and used by AI agents. This vendor-specific discovery metadata is not an IETF, MCP, or Schema.org standard.","version":"2.16.0","provider":{"name":"Santos Automation","url":"https://www.santosautomation.com"},"documentation_url":"https://api.santosautomation.com/openapi.json","openapi_url":"https://api.santosautomation.com/openapi.json","mcp_url":"https://api.santosautomation.com/mcp","mcp_transport":"streamable-http","mcp_registry":"https://registry.modelcontextprotocol.io/v0/servers?search=com.santosautomation/site-audit","mcp_clients":[{"client":"Grok / xAI Remote MCP Tools","verified":true,"guide":"https://www.santosautomation.com/integrations/grok"},{"client":"Claude custom connector","verified":true,"guide":"https://www.santosautomation.com/integrations/claude"},{"client":"Any MCP-capable client over Streamable HTTP","verified":true,"guide":"https://www.santosautomation.com/docs#mcp"}],"authentication":"No account or traditional API key. Paid resources use x402 v2; deep report reads use a per-job bearer token.","payment_protocols":[{"protocol":"x402-v2","network":"eip155:8453","currency":"USDC"}],"human_purchase":{"products":[{"product":"Quick Agent Readiness Report","price":{"amount":"9.00","currency":"USD","rail":"stripe-card"},"url":"https://www.santosautomation.com/agent-readiness/buy"},{"product":"Deep Website Intelligence Report (browser-rendered)","price":{"amount":"29.00","currency":"USD","rail":"stripe-card"},"url":"https://www.santosautomation.com/agent-readiness/buy"},{"product":"Santos Monitoring (weekly re-audit subscription)","price":{"amount":"9.00","currency":"USD","interval":"month","rail":"stripe-card"},"url":"https://www.santosautomation.com/monitoring"}],"note":"Human convenience: card purchase, reports formatted and emailed as private tokened links, no account. The machine-payable per-call price remains $0.075 USDC via x402."},"support_url":"mailto:info@santosautomation.com","terms_url":"https://www.santosautomation.com/terms","privacy_url":"https://www.santosautomation.com/terms#privacy","error_model":{"shape":{"error":"string — human-readable message","code":"string — stable machine code (see error_codes)","for_humans":"string, optional — plain-language next step","retry_after":"integer seconds, optional — present on 429"},"paid_endpoints":"An unpaid request always receives 402 with a base64 PAYMENT-REQUIRED header (x402 v2 terms) before any validation error; payment settles only on a <400 response, so a failed call is never charged.","error_codes":[{"code":"PAYMENT_REQUIRED","status":402,"meaning":"x402 terms attached in PAYMENT-REQUIRED; sign and retry with PAYMENT-SIGNATURE."},{"code":"INVALID_URL","status":400,"meaning":"Target is not a parseable public http(s) URL (or a redirect target is not)."},{"code":"UNSUPPORTED_SCHEME","status":400,"meaning":"Only http: and https: targets are accepted."},{"code":"UNSUPPORTED_PORT","status":400,"meaning":"Destination port is outside the allowed set (80/443)."},{"code":"UNSUPPORTED_CONTENT_TYPE","status":400,"meaning":"Target returned a content type the endpoint cannot process."},{"code":"PRIVATE_ADDRESS_BLOCKED","status":400,"meaning":"Target is (or resolves to) a private, reserved, or loopback address — SSRF guard."},{"code":"TARGET_UNREACHABLE","status":502,"meaning":"DNS resolution or TCP connection to the target failed."},{"code":"FETCH_BUDGET_EXCEEDED","status":502,"meaning":"Agent Readiness bounded-request budget exhausted before the assessment completed."},{"code":"RATE_LIMITED","status":429,"meaning":"Free-tier quota exhausted; retry_after tells you when it resets (UTC midnight)."},{"code":"FREE_TIER_RETIRED","status":402,"meaning":"A retired free endpoint. The body names the paid successor, its price, and the exact URL to call."},{"code":"EMAIL_DELIVERY_FAILED","status":503,"meaning":"The verification email could not be sent; try again later."},{"code":"INVALID_CODE","status":400,"meaning":"Verification code does not match the latest code issued for that email."},{"code":"CODE_EXPIRED","status":410,"meaning":"Verification code is older than 10 minutes; request a fresh one."},{"code":"INVALID_REQUEST","status":400,"meaning":"Malformed request body or parameters."},{"code":"INVALID_JSON","status":400,"meaning":"Request body is not valid JSON."},{"code":"BODY_TOO_LARGE","status":413,"meaning":"Request body exceeds the endpoint's byte cap."},{"code":"UNAUTHORIZED","status":401,"meaning":"Missing or invalid per-job bearer token (deep audit report reads)."},{"code":"SERVICE_UNAVAILABLE","status":503,"meaning":"A backing store or worker is not configured or unreachable; honest outage, retry later."}]},"capabilities":[{"id":"site-audit.quick","title":"Quick Intelligence Audit","version":"2.1.0","description":"Select for synchronous lightweight website intelligence triage of one public page.","endpoint":"https://api.santosautomation.com/api/audit?url={url}","method":"GET","mode":"synchronous","expected_latency":"seconds","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1api~1audit/get/responses/200","access":"x402 v2 payment; no account or API key","billing_unit":"successful audit","idempotency":"safe GET; payment settles only on a successful response","side_effects":"read-only public fetch","rate_limits":"bounded target fetch","error_model":"stable JSON code and message","data_retention":"no target credentials or cookies collected","limitations":["single page","no JavaScript rendering","not WCAG certification or a vulnerability scan"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.015","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl \"https://api.santosautomation.com/api/audit?url=https://example.com\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\"","response":{"tier":"paid","url":"https://example.com/","http_status":200,"overall_score":68,"website_intelligence_score":74,"scores":{"performance":100,"seo":40,"accessibility":100,"security":33},"issues":["Missing canonical link"],"signature_alg":"HMAC-SHA256","signature":"<hex>"}}},{"id":"site-audit.quick-batch","title":"Batch Quick Intelligence Audit","version":"1.0.0","description":"Select for volume triage: up to 50 public URLs audited for one flat payment, per-URL failure isolation.","endpoint":"https://api.santosautomation.com/api/audit/batch","method":"POST","mode":"synchronous","expected_latency":"seconds to a few minutes","input_schema":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","format":"uri"}}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1api~1audit~1batch/post/responses/200","access":"x402 v2 payment; no account or API key","billing_unit":"flat batch (up to 50 URLs); settles only when at least one audit succeeds","idempotency":"read-only audits; retry with a fresh payment per batch","side_effects":"read-only public fetches (concurrency-capped)","rate_limits":"max 50 URLs per batch, 8 concurrent fetches","error_model":"stable JSON code and message, per-URL error entries","data_retention":"no target credentials or cookies collected","limitations":["single page per URL","no JavaScript rendering","max 50 URLs per batch","flat price regardless of URL count"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.50","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl -X POST \"https://api.santosautomation.com/api/audit/batch\" -H \"content-type: application/json\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\" -d '{\"urls\":[\"https://example.com\",\"https://bad-host.invalid\"]}'","response":{"results":[{"url":"https://example.com/","ok":true,"report":{"overall_score":68,"signature":"<hex>"}},{"url":"https://bad-host.invalid","ok":false,"error":{"message":"Target unreachable","code":"TARGET_UNREACHABLE"}}]}}},{"id":"agent-readiness.quick","title":"Agent Readiness Audit","version":"1.0.0","description":"Select to assess public agent-facing discovery, APIs, MCP, trust, and resource-scoped machine-commerce pricing without active target actions.","endpoint":"https://api.santosautomation.com/api/agent-readiness?url={url}","method":"GET","mode":"synchronous","expected_latency":"seconds","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"},"depth":{"type":"string","enum":["quick"]}}},"output_schema":"https://api.santosautomation.com/openapi.json#/components/schemas/AgentReadinessResult","access":"x402 v2 payment; no account or API key","billing_unit":"successful audit","idempotency":"safe read-only GET; payment settles only on a successful response","side_effects":"none on the target beyond bounded public reads","rate_limits":"maximum eight additional public requests","error_model":"stable JSON code and message","data_retention":"no authentication, payment signature, cookie, or secret collection","limitations":["public surfaces only","does not authenticate to or pay the audited target","no MCP tools/call","llms.txt proposal and optional preview-registry evidence"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","schema_version":"1.0.0","price":{"amount":"0.075","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl \"https://api.santosautomation.com/api/agent-readiness?url=https://example.com&depth=quick\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\"","response":{"website_intelligence_score":82,"website_intelligence":{"dimensions":{"discoverable":91,"understandable":78,"callable":73,"trustworthy":86}},"grade":"B","readiness_level":"mostly-ready","findings":[{"id":"openapi-discovery","status":"pass"}],"signature_alg":"HMAC-SHA256","signature":"<hex>"}}},{"id":"web.safe-fetch","title":"Safe Fetch","version":"1.0.0","description":"Select to retrieve one public URL's raw text body through a hardened SSRF-guarded fetcher with redirects, headers, and timing metadata.","endpoint":"https://api.santosautomation.com/v1/fetch?url={url}","method":"GET","mode":"synchronous","expected_latency":"seconds","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1fetch/get/responses/200","access":"x402 v2 payment; no account or API key","billing_unit":"successful fetch","idempotency":"read-only; payment settles only on a successful response","side_effects":"read-only public fetch","rate_limits":"bounded target fetch (15s, 2MB, ports 80/443)","error_model":"stable JSON code and message","data_retention":"fetched content is returned, not stored","limitations":["single URL","text formats only","no crawling","no JavaScript rendering"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.002","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl \"https://api.santosautomation.com/v1/fetch?url=https://example.com/data.json\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\"","response":{"url":"https://example.com/data.json","final_url":"https://example.com/data.json","http_status":200,"headers":{"content-type":"application/json"},"body":"{\"hello\":\"world\"}","body_bytes":17}}},{"id":"content.extract-markdown","title":"Page-to-Markdown Extraction","version":"1.0.0","description":"Select to convert one public web page into clean Markdown with title, links, and metadata for RAG and research workflows.","endpoint":"https://api.santosautomation.com/v1/extract","method":"POST","mode":"synchronous","expected_latency":"seconds","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1extract/post/responses/200","access":"x402 v2 payment; no account or API key","billing_unit":"successful extraction","idempotency":"read-only; payment settles only on a successful response","side_effects":"read-only public fetch","rate_limits":"bounded target fetch (15s, 5MB)","error_model":"stable JSON code and message","data_retention":"page content is returned, not stored","limitations":["single page","no crawling","no JavaScript rendering"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.005","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl -X POST \"https://api.santosautomation.com/v1/extract\" -H \"content-type: application/json\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\" -d '{\"url\":\"https://example.com/article\"}'","response":{"http_status":200,"title":"Example article","markdown":"# Example article\n\nBody text…","links":[{"url":"https://example.com/next","text":"Next page"}],"word_count":245}}},{"id":"content.extract-structured","title":"Structured Extraction","version":"1.0.0","description":"Select to extract structured JSON fields from one public web page against your own JSON Schema, using an LLM with forced tool-use and schema validation on the output.","endpoint":"https://api.santosautomation.com/v1/extract/structured","method":"POST","mode":"synchronous","expected_latency":"seconds","input_schema":{"type":"object","required":["url","schema"],"properties":{"url":{"type":"string","format":"uri"},"schema":{"type":"object","description":"Self-contained JSON Schema (type: object, no $ref) describing the fields to extract. Max 4000 characters."}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1extract~1structured/post/responses/200","access":"x402 v2 payment; no account or API key","billing_unit":"successful extraction (output validated against caller schema)","idempotency":"read-only; payment settles only when the extracted data validates against the caller's schema","side_effects":"read-only public fetch plus one upstream LLM call","rate_limits":"bounded target fetch (15s, 5MB); page content truncated to 8000 characters before extraction; model output capped at 1024 tokens regardless of schema size","error_model":"stable JSON code and message","data_retention":"page content and extracted data are returned, not stored","limitations":["single page","no crawling","no JavaScript rendering","caller-supplied JSON Schema, self-contained only (no external $ref)","very long pages are truncated before extraction"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.08","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl -X POST \"https://api.santosautomation.com/v1/extract/structured\" -H \"content-type: application/json\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\" -d '{\"url\":\"https://example.com/product\",\"schema\":{\"type\":\"object\",\"properties\":{\"price\":{\"type\":\"string\"}},\"required\":[\"price\"]}}'","response":{"data":{"price":"$49.00"},"valid":true}}},{"id":"content.feed-parse","title":"Santos Feed Parser","version":"1.0.0","description":"Select to parse one public feed URL (RSS 2.0, Atom, or JSON Feed) into normalized JSON with feed metadata and up to 50 items.","endpoint":"https://api.santosautomation.com/v1/feed?url={url}","method":"GET","mode":"synchronous","expected_latency":"seconds","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1feed/get/responses/200","access":"x402 v2 payment; no account or API key","billing_unit":"successful parse","idempotency":"read-only; payment settles only on a successful response","side_effects":"read-only public fetch","rate_limits":"bounded target fetch (15s, 2MB, ports 80/443)","error_model":"stable JSON code and message","data_retention":"feed content is returned, not stored","limitations":["single feed URL","RSS 2.0 / Atom / JSON Feed only","max 50 items","no JavaScript rendering","non-feed targets return 422 and never settle"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.003","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl \"https://api.santosautomation.com/v1/feed?url=https://example.com/feed.xml\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\"","response":{"schema_version":"1.0.0","url":"https://example.com/feed.xml","final_url":"https://example.com/feed.xml","format":"rss2","feed":{"title":"Example Blog","link":"https://example.com/","description":"Example posts","feed_url":"https://example.com/feed.xml"},"item_count":12,"items":[{"id":"https://example.com/post-1","title":"Post one","url":"https://example.com/post-1","published":"2026-07-20T12:00:00.000Z","summary":"…","author":"Example Author"}]}}},{"id":"content.link-map","title":"Santos Link Map","version":"1.0.0","description":"Select to map one public HTML page's links into a categorized link map — kind internal/external plus topic tags (docs, pricing, api, careers, social, feed) — with up to 200 links.","endpoint":"https://api.santosautomation.com/v1/links?url={url}","method":"GET","mode":"synchronous","expected_latency":"seconds","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1links/get/responses/200","access":"x402 v2 payment; no account or API key","billing_unit":"successful link map","idempotency":"read-only; payment settles only on a successful response","side_effects":"read-only public fetch","rate_limits":"bounded target fetch (15s, 5MB)","error_model":"stable JSON code and message","data_retention":"page content is returned, not stored","limitations":["single page","no crawling","max 200 links","no JavaScript rendering"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.003","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl \"https://api.santosautomation.com/v1/links?url=https://example.com\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\"","response":{"schema_version":"1.0.0","url":"https://example.com","final_url":"https://example.com/","http_status":200,"total_links":42,"counts":{"internal":30,"external":8,"docs":2,"pricing":1,"api":1,"careers":0,"social":3,"feed":1},"links":[{"url":"https://example.com/docs","text":"Docs","kind":"internal","topics":["docs"]}]}}},{"id":"content.summarize","title":"Santos Summarizer","version":"1.0.0","description":"Select to summarize one public HTML page into a Claude-generated structured summary with key facts, entities, and word count; an optional focus steers the summary.","endpoint":"https://api.santosautomation.com/v1/summarize","method":"POST","mode":"synchronous","expected_latency":"seconds","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"},"focus":{"type":"string","description":"Optional steering prompt, e.g. \"pricing plans\"."}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1summarize/post/responses/200","access":"x402 v2 payment; no account or API key","billing_unit":"successful summary","idempotency":"read-only; payment settles only on a successful response","side_effects":"read-only public fetch plus one upstream LLM call","rate_limits":"bounded target fetch (15s, 5MB)","error_model":"stable JSON code and message","data_retention":"page content and summary are returned, not stored","limitations":["single page","no crawling","no JavaScript rendering","non-HTML targets return 422 and never settle"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.033","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl -X POST \"https://api.santosautomation.com/v1/summarize\" -H \"content-type: application/json\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\" -d '{\"url\":\"https://example.com/article\",\"focus\":\"pricing\"}'","response":{"schema_version":"1.0.0","url":"https://example.com/article","final_url":"https://example.com/article","http_status":200,"title":"Example article","summary":"…","key_facts":["…"],"entities":["…"],"word_count":245,"focus":"pricing","model":"claude-sonnet-4-5"}}},{"id":"render.screenshot","title":"Screenshot & PDF Render","version":"1.0.0","description":"Select to render one public page as a PNG, JPEG, or print-rendered A4 PDF in a real isolated Chromium browser — JavaScript executes, so SPAs and client-rendered content are captured as a real visitor sees them. Useful for deploy verification, visual monitoring, link previews, PDF archival, and vision-model input.","endpoint":"https://api.santosautomation.com/v1/screenshot?url={url}","method":"GET","mode":"synchronous","expected_latency":"seconds (a cold worker wakes on demand; retry on 504)","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"},"format":{"type":"string","enum":["png","jpeg","pdf"]},"device":{"type":"string","enum":["desktop","mobile"]},"full_page":{"type":"boolean"}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1screenshot/get/responses/200","access":"x402 v2 payment; no account or API key","billing_unit":"successful render","idempotency":"read-only; payment settles only when render bytes are returned","side_effects":"read-only public browser navigation","rate_limits":"bounded browser requests, bytes, and runtime","error_model":"stable JSON code and message on failures; binary on success","data_retention":"render artifacts expire within 72 hours","limitations":["single page","public pages only — no login-protected content","fresh anonymous visitor: no cookies carried","binary response"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.01","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl \"https://api.santosautomation.com/v1/screenshot?url=https://example.com&format=png&device=mobile&full_page=true\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\" -o page.png","response":"Binary image/png (or image/jpeg, application/pdf) response body; JSON error model on failure."}},{"id":"site-audit.deep-page","title":"Deep Website Intelligence Audit","version":"3.0.0","description":"Select for browser-rendered website intelligence evidence and optional Agent Readiness discovery.","endpoint":"https://api.santosautomation.com/v1/audits","method":"POST","mode":"asynchronous","expected_latency":"tens of seconds to minutes","input_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1audits/post/requestBody","output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1audits~1{job_id}~1report/get/responses/200","access":"x402 v2 payment plus per-job bearer access token","billing_unit":"bounded compute reservation","idempotency":"Idempotency-Key supported","side_effects":"read-only public browser navigation","rate_limits":"bounded browser requests, bytes, runtime, and artifacts","error_model":"versioned job and report errors","data_retention":"short-lived report artifacts; target cookie values are never captured","limitations":["single page","lab data","no authenticated flows or penetration testing"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0.225","currency":"USDC","protocol":"x402-v2","network":"eip155:8453"},"examples":{"request":"curl -X POST \"https://api.santosautomation.com/v1/audits\" -H \"content-type: application/json\" -H \"Idempotency-Key: <uuid>\" -H \"PAYMENT-SIGNATURE: <x402 v2 signed payload>\" -d '{\"url\":\"https://example.com\"}'","response":{"job_id":"job_01J…","status":"queued","access_token":"<per-job bearer>","poll":"https://api.santosautomation.com/v1/audits/job_01J…/events","report":"https://api.santosautomation.com/v1/audits/job_01J…/report"}}},{"id":"site.badge","title":"Agent-Ready Badge (SVG)","version":"1.0.0","description":"Select to embed a live SVG shield showing a site's latest public Agent Readiness score and verification date.","endpoint":"https://api.santosautomation.com/v1/badge?url={url}","method":"GET","mode":"synchronous","expected_latency":"seconds","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1badge/get/responses/200","access":"free; no account, no payment, no quota (public image)","billing_unit":"none — free","idempotency":"safe read-only GET","side_effects":"none","rate_limits":"none; cacheable image (Cache-Control: public, max-age=3600)","error_model":"gray 'unverified' badge when no public report exists","data_retention":"reads the site's latest public report only","limitations":["reflects the latest public report for the domain","shows a re-verify state when the report is over 30 days old"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0","currency":"USDC"},"examples":{"request":"[![Agent-Ready badge](https://api.santosautomation.com/v1/badge?url=example.com)](https://www.santosautomation.com/reports/example.com)","response":"image/svg+xml — gold shield with score and verification date; muted 're-verify' state after 30 days; gray 'unverified' when the domain has no public report."}},{"id":"report.verify","title":"Report Signature Verification","version":"1.0.0","description":"Select to verify the HMAC-SHA256 signature on a Santos audit report and confirm it was issued unmodified.","endpoint":"https://api.santosautomation.com/v1/verify","method":"POST","mode":"synchronous","expected_latency":"instant","input_schema":{"type":"object","description":"The full report JSON as returned by any audit endpoint, including its signature fields."},"output_schema":"https://api.santosautomation.com/openapi.json#/paths/~1v1~1verify/post/responses/200","access":"free; no account, no payment","billing_unit":"none — free","idempotency":"read-only verification","side_effects":"none","rate_limits":"30 verifications per hour per IP","error_model":"stable JSON code and message","data_retention":"submitted reports are verified in memory, not stored","limitations":["HMAC-SHA256 signature scheme only","unsigned or modified reports return valid: false"],"documentation":"https://api.santosautomation.com/openapi.json","support":"mailto:info@santosautomation.com","price":{"amount":"0","currency":"USDC"},"examples":{"request":"curl -X POST \"https://api.santosautomation.com/v1/verify\" -H \"content-type: application/json\" --data @report.json","response":{"valid":true,"url":"https://example.com/","score":82,"signed_at":"2026-07-23T12:00:00.000Z"}}}]}