{"name":"Agent Utility Store","protocol":"x402","network":"eip155:8453","asset":"USDC","pay_per_call":true,"llm_required":false,"free_routes":["/v1/json/inspect","/v1/json/validate","/v1/json/repair","/mcp","/v1/catalog","/v1/catalog/select","/skill.md"],"catalog":"/v1/catalog","selector":"/v1/catalog/select","skill":"/skill.md","product_count":24,"bazaar_metadata_pass":true,"products":[{"product_id":"json_reliable","name":"JSON Reliability","category":"json","endpoint":"/v1/json/reliable","path":"/v1/json/reliable","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"Deterministic JSON inspect, safe repair, and optional JSON Schema validation.","use_when":"Agent JSON is malformed, uses single quotes, or needs safe repair plus schema validation.","output_summary":"valid_original, repaired, valid_final, json, errors, changes. Never invents missing values.","keywords":["malformed json","repair json","json reliability","trailing comma","single quotes","schema validation"],"input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Malformed or valid JSON text"},"schema":{"type":"object","description":"Optional JSON Schema"}}},"output_schema":{"type":"object","description":"valid_original, repaired, valid_final, json, errors, changes. Never invents missing values."},"example_input":{"text":"{'a': 1}"},"example_output":{"valid_original":false,"repaired":true,"valid_final":true,"json":{"a":1}},"x402":true,"paid_enabled":true},{"product_id":"json_contract_check","name":"JSON Contract Check","category":"json","endpoint":"/v1/json/contract-check","path":"/v1/json/contract-check","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"JSON Schema contract check: valid, violations, missing keys, type mismatches, additional keys.","use_when":"You already have JSON and a JSON Schema and need missing keys, extra keys, and type mismatches.","output_summary":"valid, schema violations, missing_keys, additional_keys, type_mismatches.","keywords":["json schema","contract check","missing keys","additional properties","type mismatch"],"input_schema":{"type":"object","required":["json"],"properties":{"json":{"description":"Document to check"},"document":{"description":"Alias for json"},"schema":{"type":"object"}}},"output_schema":{"type":"object","description":"valid, schema violations, missing_keys, additional_keys, type_mismatches."},"example_input":{"json":{"a":1},"schema":{"type":"object"}},"example_output":{"valid":true,"missing_keys":[],"additional_keys":[]},"x402":true,"paid_enabled":true},{"product_id":"json_diff","name":"JSON Structural Diff","category":"json","endpoint":"/v1/json/diff","path":"/v1/json/diff","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"Structural JSON diff: added, removed, type changes, value changes, compatibility.","use_when":"Compare two JSON documents for added/removed keys, type changes, and value changes.","output_summary":"added_keys, removed_keys, changed_types, changed_values, structural_compatibility.","keywords":["json diff","structural diff","before after","breaking json change"],"input_schema":{"type":"object","required":["before","after"],"properties":{"before":{},"after":{}}},"output_schema":{"type":"object","description":"added_keys, removed_keys, changed_types, changed_values, structural_compatibility."},"example_input":{"before":{"a":1},"after":{"a":2}},"example_output":{"changed_values":[{"path":"a"}],"structural_compatibility":true},"x402":true,"paid_enabled":true},{"product_id":"web_extract","name":"Web Structured Extract","category":"web","endpoint":"/v1/web/extract","path":"/v1/web/extract","method":"POST","price_usdc":0.005,"price":"0.005","price_atomic":5000,"network":"eip155:8453","asset":"USDC","description":"Public-URL structured extract with provenance (SHA-256, UTC).","use_when":"Need title, headings, main text, and metadata from one public HTML page.","output_summary":"title, headings, main_text, metadata, structured_sections, provenance.","keywords":["extract webpage","page text","headings","html extract","structured content"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"title, headings, main_text, metadata, structured_sections, provenance."},"example_input":{"url":"https://example.com/"},"example_output":{"title":"Example","headings":[],"main_text":"","provenance":{}},"x402":true,"paid_enabled":true},{"product_id":"web_markdown","name":"Web Clean Markdown","category":"web","endpoint":"/v1/web/markdown","path":"/v1/web/markdown","method":"POST","price_usdc":0.005,"price":"0.005","price_atomic":5000,"network":"eip155:8453","asset":"USDC","description":"Deterministic Markdown from a public URL with source, timestamp, SHA-256.","use_when":"Convert a public HTML page into deterministic Markdown with a content hash.","output_summary":"markdown, source_url, timestamp, sha256.","keywords":["html to markdown","clean markdown","page markdown"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"markdown, source_url, timestamp, sha256."},"example_input":{"url":"https://example.com/"},"example_output":{"markdown":"# Example","sha256":"","source_url":"https://example.com/"},"x402":true,"paid_enabled":true},{"product_id":"web_tables","name":"Web Table Extract","category":"web","endpoint":"/v1/web/tables","path":"/v1/web/tables","method":"POST","price_usdc":0.005,"price":"0.005","price_atomic":5000,"network":"eip155:8453","asset":"USDC","description":"HTML table extract: columns, rows, source indexes, provenance.","use_when":"Extract HTML tables into columns and rows from a public URL.","output_summary":"tables[] with columns, rows, source indexes, provenance.","keywords":["table extraction","html table","structured rows","spreadsheet html"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"tables[] with columns, rows, source indexes, provenance."},"example_input":{"url":"https://example.com/"},"example_output":{"tables":[{"columns":[],"rows":[]}]},"x402":true,"paid_enabled":true},{"product_id":"web_metadata","name":"Web Metadata Extract","category":"web","endpoint":"/v1/web/metadata","path":"/v1/web/metadata","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"Page metadata: title, description, canonical, OpenGraph, Twitter, JSON-LD, language, favicon.","use_when":"Need OpenGraph, Twitter cards, canonical, JSON-LD, or favicon without full page text.","output_summary":"title, description, canonical, opengraph, twitter, json_ld, language, favicon.","keywords":["opengraph","twitter card","json-ld","canonical url","page metadata"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"title, description, canonical, opengraph, twitter, json_ld, language, favicon."},"example_input":{"url":"https://example.com/"},"example_output":{"title":"Example","canonical":"https://example.com/","opengraph":{}},"x402":true,"paid_enabled":true},{"product_id":"web_link_map","name":"Web Link Map","category":"web","endpoint":"/v1/web/link-map","path":"/v1/web/link-map","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"Link map: internal, external, invalid patterns, canonicalized URLs, counts.","use_when":"Map internal vs external links on a public page.","output_summary":"internal, external, invalid patterns, counts, provenance.","keywords":["link map","internal links","external links","outbound urls"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"internal, external, invalid patterns, counts, provenance."},"example_input":{"url":"https://example.com/"},"example_output":{"internal":[],"external":[],"counts":{}},"x402":true,"paid_enabled":true},{"product_id":"evidence_pack","name":"Fresh Web Evidence Pack","category":"evidence","endpoint":"/v1/evidence/pack","path":"/v1/evidence/pack","method":"POST","price_usdc":0.0075,"price":"0.0075","price_atomic":7500,"network":"eip155:8453","asset":"USDC","description":"Fresh Web Evidence Pack for AI agents. Fetches up to 5 public URLs at request time and returns structured facts with source URLs, UTC timestamps, SHA-256 provenance, and explicit contradictions.","use_when":"Need a fresh multi-URL evidence pack with SHA-256 provenance and contradictions.","output_summary":"facts, sources, contradictions, confidence, warnings. Winner not invented.","keywords":["evidence pack","fresh fetch","provenance","sha-256","contradictions"],"input_schema":{"type":"object","properties":{"url":{"type":"string"},"urls":{"type":"array","maxItems":5,"items":{"type":"string"}}}},"output_schema":{"type":"object","description":"facts, sources, contradictions, confidence, warnings. Winner not invented."},"example_input":{"urls":["https://example.com/"]},"example_output":{"facts":[],"sources":[],"contradictions":[],"winner":null},"x402":true,"paid_enabled":true},{"product_id":"evidence_compare","name":"Multi-Source Evidence Compare","category":"evidence","endpoint":"/v1/evidence/compare","path":"/v1/evidence/compare","method":"POST","price_usdc":0.01,"price":"0.01","price_atomic":10000,"network":"eip155:8453","asset":"USDC","description":"Compare 2–5 public URLs: agreements, differences, contradictions. Winner is null unless deterministic.","use_when":"Compare two to five public sources for agreements and differences.","output_summary":"agreements, differences, contradictions, sources. winner is always null unless deterministic.","keywords":["compare sources","multi source","agreement","web compare"],"input_schema":{"type":"object","properties":{"url":{"type":"string"},"urls":{"type":"array","minItems":2,"maxItems":5,"items":{"type":"string"}}},"required":["urls"]},"output_schema":{"type":"object","description":"agreements, differences, contradictions, sources. winner is always null unless deterministic."},"example_input":{"urls":["https://example.com/","https://example.org/"]},"example_output":{"agreements":[],"differences":[],"winner":null},"x402":true,"paid_enabled":true},{"product_id":"evidence_contradictions","name":"Source Contradiction Scan","category":"evidence","endpoint":"/v1/evidence/contradictions","path":"/v1/evidence/contradictions","method":"POST","price_usdc":0.0075,"price":"0.0075","price_atomic":7500,"network":"eip155:8453","asset":"USDC","description":"Contradiction groups across 2–5 URLs. No unsupported winner.","use_when":"Find conflicting claims across two to five URLs without picking a winner.","output_summary":"contradiction_groups with claims, values, sources, timestamps. winner=null.","keywords":["contradiction scan","conflicting claims","source conflict"],"input_schema":{"type":"object","properties":{"url":{"type":"string"},"urls":{"type":"array","minItems":2,"maxItems":5,"items":{"type":"string"}}},"required":["urls"]},"output_schema":{"type":"object","description":"contradiction_groups with claims, values, sources, timestamps. winner=null."},"example_input":{"urls":["https://example.com/","https://example.org/"]},"example_output":{"contradiction_groups":[],"winner":null},"x402":true,"paid_enabled":true},{"product_id":"evidence_freshness","name":"Freshness Proof","category":"evidence","endpoint":"/v1/evidence/freshness","path":"/v1/evidence/freshness","method":"POST","price_usdc":0.005,"price":"0.005","price_atomic":5000,"network":"eip155:8453","asset":"USDC","description":"Freshness proof: fetched_at, Last-Modified, ETag, SHA-256, cache headers.","use_when":"Prove when a public URL was fetched and whether cache validators exist.","output_summary":"fetched_at, last_modified, etag, content_hash, cache_headers.","keywords":["freshness","last-modified","etag","cache headers","content hash"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"fetched_at, last_modified, etag, content_hash, cache_headers."},"example_input":{"url":"https://example.com/"},"example_output":{"fetched_at":"","etag":null,"content_hash":""},"x402":true,"paid_enabled":true},{"product_id":"evidence_receipt","name":"Content Provenance Receipt","category":"evidence","endpoint":"/v1/evidence/receipt","path":"/v1/evidence/receipt","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"Provenance receipt: URL, timestamp, status, content-type, SHA-256, selected headers. No body stored.","use_when":"Need a provenance receipt (status, type, SHA-256, headers) without storing the body.","output_summary":"url, timestamp, http_status, content_type, sha256, headers. body_stored=false.","keywords":["provenance receipt","content hash receipt","no body stored"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"url, timestamp, http_status, content_type, sha256, headers. body_stored=false."},"example_input":{"url":"https://example.com/"},"example_output":{"http_status":200,"sha256":"","body_stored":false},"x402":true,"paid_enabled":true},{"product_id":"url_preflight","name":"Public URL Preflight","category":"url_security","endpoint":"/v1/url/preflight","path":"/v1/url/preflight","method":"POST","price_usdc":0.005,"price":"0.005","price_atomic":5000,"network":"eip155:8453","asset":"USDC","description":"Public URL preflight: TLS, headers, redirects, robots, OpenAPI, sitemap, localhost leaks.","use_when":"Production-readiness check of a public origin: TLS, headers, robots, OpenAPI, sitemap, localhost leaks.","output_summary":"tls, headers, redirects, robots, openapi, sitemap, localhost_leaks, timestamp.","keywords":["url preflight","production ready","site audit","localhost leak"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"tls, headers, redirects, robots, openapi, sitemap, localhost_leaks, timestamp."},"example_input":{"url":"https://example.com/"},"example_output":{"tls":{},"headers":{},"localhost_leaks":[]},"x402":true,"paid_enabled":true},{"product_id":"url_security_headers","name":"Security Headers Audit","category":"url_security","endpoint":"/v1/url/security-headers","path":"/v1/url/security-headers","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"Security header audit for a public origin.","use_when":"Audit HSTS, CSP, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, frame protections.","output_summary":"present, missing, selected security headers, provenance.","keywords":["security headers","hsts","csp","x-content-type-options","frame options"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"present, missing, selected security headers, provenance."},"example_input":{"url":"https://example.com/"},"example_output":{"present":[],"missing":[]},"x402":true,"paid_enabled":true},{"product_id":"url_cors_check","name":"CORS Configuration Check","category":"url_security","endpoint":"/v1/url/cors-check","path":"/v1/url/cors-check","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"CORS check: wildcard origins, credential conflicts, preflight behavior.","use_when":"Detect wildcard CORS, credential conflicts, and preflight behavior.","output_summary":"allow_origin, wildcard, credential_wildcard_conflict, preflight_status.","keywords":["cors","wildcard origin","access-control-allow-origin","preflight"],"input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"},"origin":{"type":"string"}}},"output_schema":{"type":"object","description":"allow_origin, wildcard, credential_wildcard_conflict, preflight_status."},"example_input":{"url":"https://example.com/","origin":"https://agent.example"},"example_output":{"wildcard":false,"allow_origin":null},"x402":true,"paid_enabled":true},{"product_id":"url_tls_check","name":"TLS Snapshot","category":"url_security","endpoint":"/v1/url/tls-check","path":"/v1/url/tls-check","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"TLS snapshot: availability, subject, issuer, expiry, hostname match.","use_when":"Inspect TLS availability, certificate subject, issuer, expiry, and hostname match.","output_summary":"tls_available, protocol, subject, issuer, not_after, hostname_match.","keywords":["tls","certificate","ssl expiry","hostname match"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"tls_available, protocol, subject, issuer, not_after, hostname_match."},"example_input":{"url":"https://example.com/"},"example_output":{"tls_available":true,"hostname_match":true},"x402":true,"paid_enabled":true},{"product_id":"url_robots_audit","name":"Robots / Agent Access Audit","category":"url_security","endpoint":"/v1/url/robots-audit","path":"/v1/url/robots-audit","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"Agent-access audit: robots.txt, llms.txt, AGENTS.md, sitemap.","use_when":"Check robots.txt, llms.txt, AGENTS.md, sitemap, and agent-readable metadata.","output_summary":"presence and hashes for robots, llms.txt, AGENTS.md, sitemap, agent.json.","keywords":["robots.txt","llms.txt","agents.md","sitemap","agent access"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"presence and hashes for robots, llms.txt, AGENTS.md, sitemap, agent.json."},"example_input":{"url":"https://example.com/"},"example_output":{"robots":true,"llms_txt":false,"sitemap":false},"x402":true,"paid_enabled":true},{"product_id":"url_redirect_check","name":"Redirect Chain Audit","category":"url_security","endpoint":"/v1/url/redirect-check","path":"/v1/url/redirect-check","method":"POST","price_usdc":0.003,"price":"0.003","price_atomic":3000,"network":"eip155:8453","asset":"USDC","description":"Redirect chain: hops, status codes, domains, protocol downgrade, loops, final URL.","use_when":"Audit redirect hops, protocol downgrade, loops, and the final URL.","output_summary":"hops, status_codes, domains, protocol_downgrade, loops, final_url.","keywords":["redirect chain","http downgrade","redirect loop","final url"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"hops, status_codes, domains, protocol_downgrade, loops, final_url."},"example_input":{"url":"https://example.com/"},"example_output":{"hops":[],"final_url":"https://example.com/","loops":false},"x402":true,"paid_enabled":true},{"product_id":"api_openapi_audit","name":"OpenAPI Production Audit","category":"api","endpoint":"/v1/api/openapi-audit","path":"/v1/api/openapi-audit","method":"POST","price_usdc":0.005,"price":"0.005","price_atomic":5000,"network":"eip155:8453","asset":"USDC","description":"OpenAPI audit: syntax, servers, operations, schemas, security, localhost URLs.","use_when":"Audit an OpenAPI document for syntax, servers, security, and localhost URLs.","output_summary":"operation_count, missing_descriptions, localhost_urls, issues.","keywords":["openapi audit","swagger audit","localhost server","api spec"],"input_schema":{"type":"object","properties":{"url":{"type":"string"},"spec":{"type":"object"}}},"output_schema":{"type":"object","description":"operation_count, missing_descriptions, localhost_urls, issues."},"example_input":{"url":"https://example.com/openapi.json"},"example_output":{"operation_count":0,"localhost_urls":[],"issues":[]},"x402":true,"paid_enabled":true},{"product_id":"api_openapi_diff","name":"OpenAPI Breaking Change Diff","category":"api","endpoint":"/v1/api/openapi-diff","path":"/v1/api/openapi-diff","method":"POST","price_usdc":0.0075,"price":"0.0075","price_atomic":7500,"network":"eip155:8453","asset":"USDC","description":"OpenAPI breaking-change diff: removed endpoints, methods, required fields, types, security.","use_when":"Diff two OpenAPI specs for removed endpoints and other breaking changes.","output_summary":"removed_endpoints, required_field_changes, type_changes, security_changes, breaking.","keywords":["openapi diff","breaking change","removed endpoint","api compatibility"],"input_schema":{"type":"object","properties":{"old":{"type":"object"},"new":{"type":"object"},"old_url":{"type":"string"},"new_url":{"type":"string"}}},"output_schema":{"type":"object","description":"removed_endpoints, required_field_changes, type_changes, security_changes, breaking."},"example_input":{"old_url":"https://example.com/openapi.json","new_url":"https://example.com/openapi.json"},"example_output":{"removed_endpoints":[],"breaking":false},"x402":true,"paid_enabled":true},{"product_id":"api_schema_drift","name":"API Schema Drift Check","category":"api","endpoint":"/v1/api/schema-drift","path":"/v1/api/schema-drift","method":"POST","price_usdc":0.005,"price":"0.005","price_atomic":5000,"network":"eip155:8453","asset":"USDC","description":"Schema drift: observed GET/HEAD JSON shape vs declared OpenAPI schema. No destructive methods.","use_when":"Compare a live GET/HEAD JSON response shape to a declared schema. No destructive methods.","output_summary":"observed_shape, declared_schema, http_status. GET/HEAD only.","keywords":["schema drift","live vs spec","response shape","openapi drift"],"input_schema":{"type":"object","required":["live_url"],"properties":{"live_url":{"type":"string"},"endpoint":{"type":"string"},"schema":{"type":"object"},"openapi_url":{"type":"string"},"method":{"type":"string","enum":["GET","HEAD"]}}},"output_schema":{"type":"object","description":"observed_shape, declared_schema, http_status. GET/HEAD only."},"example_input":{"live_url":"https://example.com/health","method":"GET"},"example_output":{"http_status":200,"observed_shape":{}},"x402":true,"paid_enabled":true},{"product_id":"mcp_preflight","name":"MCP Production Preflight","category":"mcp_x402","endpoint":"/v1/mcp/preflight","path":"/v1/mcp/preflight","method":"POST","price_usdc":0.005,"price":"0.005","price_atomic":5000,"network":"eip155:8453","asset":"USDC","description":"MCP preflight: initialize, tools/list, schemas, server info. Does not execute tools.","use_when":"Check a remote MCP server with initialize and tools/list only. Does not execute tools.","output_summary":"initialize ok, tools_list, tool_schemas, server_info. tools_executed=false.","keywords":["mcp preflight","tools/list","mcp initialize","mcp production"],"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL"}},"required":["url"]},"output_schema":{"type":"object","description":"initialize ok, tools_list, tool_schemas, server_info. tools_executed=false."},"example_input":{"url":"https://example.com/mcp"},"example_output":{"tools_list":[],"tools_executed":false},"x402":true,"paid_enabled":true},{"product_id":"x402_preflight","name":"x402 Production Preflight","category":"mcp_x402","endpoint":"/v1/x402/preflight","path":"/v1/x402/preflight","method":"POST","price_usdc":0.0075,"price":"0.0075","price_atomic":7500,"network":"eip155:8453","asset":"USDC","description":"x402 unpaid preflight: HTTP 402, PAYMENT-REQUIRED, network, asset, amount, discovery. Never pays.","use_when":"Validate that a paid HTTP endpoint returns a correct unpaid x402 402 challenge. Never pays.","output_summary":"http_status, network, asset, amount, payTo, scheme, discovery. payment_signature_sent=false.","keywords":["x402 validation","payment challenge","production readiness","402 probe","payment-required"],"input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"},"endpoint":{"type":"string"}}},"output_schema":{"type":"object","description":"http_status, network, asset, amount, payTo, scheme, discovery. payment_signature_sent=false."},"example_input":{"url":"https://example.com/paid"},"example_output":{"http_status":402,"payment_signature_sent":false},"x402":true,"paid_enabled":true}]}