{"openapi":"3.1.0","info":{"title":"skill-audit API","description":"Detect malicious patterns in AI agent skills/plugins. x402 v2 micropayments on Base.","contact":{"name":"eltociear","url":"https://github.com/eltociear","email":"ashimine_ikko_bp@netprice.com"},"version":"2.0.0"},"paths":{"/mcp":{"get":{"summary":"Mcp Info","description":"Human/browser-facing description. Clients POST here; GET just explains what this is.","operationId":"mcp_info_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Mcp Endpoint","description":"MCP Streamable HTTP endpoint (JSON-RPC 2.0). FREE — never behind the x402 paywall.","operationId":"mcp_endpoint_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/world/airquality":{"post":{"summary":"Air Quality","description":"Current air quality for a place: PM2.5/PM10, ozone, NO2, and both AQI scales.","operationId":"air_quality_world_airquality_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/geocode":{"post":{"summary":"Geocode","description":"Resolve a place name to coordinates, country, timezone and population.","operationId":"geocode_world_geocode_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeocodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/earthquakes":{"post":{"summary":"Earthquakes","description":"Recent earthquakes from the USGS feed, worldwide or within a radius of a place.","operationId":"earthquakes_world_earthquakes_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuakeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/holidays":{"post":{"summary":"Holidays","description":"Public holidays for a country and year — what an agent needs to reason about dates.","operationId":"holidays_world_holidays_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HolidayRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/indicators":{"post":{"summary":"Indicators","description":"World Bank country statistics: GDP, population, inflation and friends over time.","operationId":"indicators_world_indicators_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndicatorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/elevation":{"post":{"summary":"Elevation","description":"Ground elevation in metres for a place or coordinate pair.","operationId":"elevation_world_elevation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/world/selftest":{"get":{"summary":"World Selftest","description":"FREE. Per-upstream reachability for every backend behind these routes.\n\nSame reasoning as the other selftests: a paid route cannot be exercised without paying,\nso this is the only way to tell a dead upstream from a broken parser. Returns latency\nand a boolean only, never a payload, so it gives away nothing the paid routes sell.","operationId":"world_selftest_world_selftest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"World Selftest","description":"FREE. Per-upstream reachability for every backend behind these routes.\n\nSame reasoning as the other selftests: a paid route cannot be exercised without paying,\nso this is the only way to tell a dead upstream from a broken parser. Returns latency\nand a boolean only, never a payload, so it gives away nothing the paid routes sell.","operationId":"world_selftest_world_selftest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"World Selftest","description":"FREE. Per-upstream reachability for every backend behind these routes.\n\nSame reasoning as the other selftests: a paid route cannot be exercised without paying,\nso this is the only way to tell a dead upstream from a broken parser. Returns latency\nand a boolean only, never a payload, so it gives away nothing the paid routes sell.","operationId":"world_selftest_world_selftest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llm/chat":{"post":{"summary":"Chat","operationId":"chat_llm_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/llm/answer":{"post":{"summary":"Answer","description":"Search the live web, read the top hits, and synthesise a cited answer.","operationId":"answer_llm_answer_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/llm/extract":{"post":{"summary":"Extract","description":"Turn free text (or a URL's content) into structured JSON.","operationId":"extract_llm_extract_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/llm_routes__ExtractRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/llm/selftest":{"get":{"summary":"Llm Selftest","description":"FREE. Per-backend reachability for the inference chain.\n\nSame reasoning as the web-data selftest: a paid route cannot be exercised without\npaying, so without this there is no way to tell a backend that has gone away from one\nthat is answering 200 with empty content. Returns latency and a boolean only — never\ngenerated text — so it gives away nothing the paid routes charge for.","operationId":"llm_selftest_llm_selftest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Llm Selftest","description":"FREE. Per-backend reachability for the inference chain.\n\nSame reasoning as the web-data selftest: a paid route cannot be exercised without\npaying, so without this there is no way to tell a backend that has gone away from one\nthat is answering 200 with empty content. Returns latency and a boolean only — never\ngenerated text — so it gives away nothing the paid routes charge for.","operationId":"llm_selftest_llm_selftest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Llm Selftest","description":"FREE. Per-backend reachability for the inference chain.\n\nSame reasoning as the web-data selftest: a paid route cannot be exercised without\npaying, so without this there is no way to tell a backend that has gone away from one\nthat is answering 200 with empty content. Returns latency and a boolean only — never\ngenerated text — so it gives away nothing the paid routes charge for.","operationId":"llm_selftest_llm_selftest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/x402.json":{"get":{"summary":"Well Known X402","description":"x402 discovery document (x402scan/Bazaar auto-index). version-1 schema:\n{version, resources[], instructions}. ownershipProofs omitted (listed as\nunverified) — a wallet-signed proof can be added later for the verified badge.","operationId":"well_known_x402__well_known_x402_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Well Known X402","description":"x402 discovery document (x402scan/Bazaar auto-index). version-1 schema:\n{version, resources[], instructions}. ownershipProofs omitted (listed as\nunverified) — a wallet-signed proof can be added later for the verified badge.","operationId":"well_known_x402__well_known_x402_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Well Known X402","description":"x402 discovery document (x402scan/Bazaar auto-index). version-1 schema:\n{version, resources[], instructions}. ownershipProofs omitted (listed as\nunverified) — a wallet-signed proof can be added later for the verified badge.","operationId":"well_known_x402__well_known_x402_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/x402":{"get":{"summary":"Well Known X402","description":"x402 discovery document (x402scan/Bazaar auto-index). version-1 schema:\n{version, resources[], instructions}. ownershipProofs omitted (listed as\nunverified) — a wallet-signed proof can be added later for the verified badge.","operationId":"well_known_x402__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Well Known X402","description":"x402 discovery document (x402scan/Bazaar auto-index). version-1 schema:\n{version, resources[], instructions}. ownershipProofs omitted (listed as\nunverified) — a wallet-signed proof can be added later for the verified badge.","operationId":"well_known_x402__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Well Known X402","description":"x402 discovery document (x402scan/Bazaar auto-index). version-1 schema:\n{version, resources[], instructions}. ownershipProofs omitted (listed as\nunverified) — a wallet-signed proof can be added later for the verified badge.","operationId":"well_known_x402__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/x402":{"get":{"summary":"Well Known X402","description":"x402 discovery document (x402scan/Bazaar auto-index). version-1 schema:\n{version, resources[], instructions}. ownershipProofs omitted (listed as\nunverified) — a wallet-signed proof can be added later for the verified badge.","operationId":"well_known_x402_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Well Known X402","description":"x402 discovery document (x402scan/Bazaar auto-index). version-1 schema:\n{version, resources[], instructions}. ownershipProofs omitted (listed as\nunverified) — a wallet-signed proof can be added later for the verified badge.","operationId":"well_known_x402_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Well Known X402","description":"x402 discovery document (x402scan/Bazaar auto-index). version-1 schema:\n{version, resources[], instructions}. ownershipProofs omitted (listed as\nunverified) — a wallet-signed proof can be added later for the verified badge.","operationId":"well_known_x402_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/x402/discovery/resources":{"get":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources__well_known_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources__well_known_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources__well_known_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v2/x402/discovery/resources":{"get":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_v2_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_v2_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_v2_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/x402/discovery/resources":{"get":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_v1_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_v1_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_v1_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/x402/discovery/resources":{"get":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_x402_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/discovery/resources":{"get":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_discovery_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/x402-resources":{"get":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources__well_known_x402_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources__well_known_x402_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources__well_known_x402_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/x402-resources":{"get":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_x402_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_x402_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"X402 Resources","description":"Expanded resource list. Indexers ask for this shape (full `accepts` per resource)\nrather than the bare URL array in /.well-known/x402, and this Space was the only one of\nthe three not serving it — its own access log shows the path being requested.","operationId":"x402_resources_x402_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1":{"get":{"summary":"Api Index","operationId":"api_index_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Api Index","operationId":"api_index_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Api Index","operationId":"api_index_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1":{"get":{"summary":"Api Index","operationId":"api_index_api_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Api Index","operationId":"api_index_api_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Api Index","operationId":"api_index_api_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api":{"get":{"summary":"Api Index","operationId":"api_index_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Api Index","operationId":"api_index_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Api Index","operationId":"api_index_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/pricing":{"get":{"summary":"Pricing","operationId":"pricing_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Pricing","operationId":"pricing_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Pricing","operationId":"pricing_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/privacy":{"get":{"summary":"Terms","description":"Terms an autonomous buyer can read before spending.","operationId":"terms_privacy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Terms","description":"Terms an autonomous buyer can read before spending.","operationId":"terms_privacy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Terms","description":"Terms an autonomous buyer can read before spending.","operationId":"terms_privacy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tos":{"get":{"summary":"Terms","description":"Terms an autonomous buyer can read before spending.","operationId":"terms_tos_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Terms","description":"Terms an autonomous buyer can read before spending.","operationId":"terms_tos_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Terms","description":"Terms an autonomous buyer can read before spending.","operationId":"terms_tos_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/terms":{"get":{"summary":"Terms","description":"Terms an autonomous buyer can read before spending.","operationId":"terms_terms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Terms","description":"Terms an autonomous buyer can read before spending.","operationId":"terms_terms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Terms","description":"Terms an autonomous buyer can read before spending.","operationId":"terms_terms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Sitemap","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Sitemap","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/m2m-openapi.json":{"get":{"summary":"M2M Openapi","description":"Alias: something in the wild probes this name for a machine-readable spec.","operationId":"m2m_openapi_m2m_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"M2M Openapi","description":"Alias: something in the wild probes this name for a machine-readable spec.","operationId":"m2m_openapi_m2m_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"M2M Openapi","description":"Alias: something in the wild probes this name for a machine-readable spec.","operationId":"m2m_openapi_m2m_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","description":"llms.txt — the machine-readable site summary crawlers/agents probe for.","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Llms Txt","description":"llms.txt — the machine-readable site summary crawlers/agents probe for.","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Llms Txt","description":"llms.txt — the machine-readable site summary crawlers/agents probe for.","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/agent-card":{"get":{"summary":"Agent Card","description":"A2A agent card — how agent directories and peers introspect a service. Measured\n2026-08-02: distinct A2A agents probe these exact paths on this Space and got 404,\ni.e. they are trying to discover us as a peer and failing.","operationId":"agent_card__well_known_agent_card_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Agent Card","description":"A2A agent card — how agent directories and peers introspect a service. Measured\n2026-08-02: distinct A2A agents probe these exact paths on this Space and got 404,\ni.e. they are trying to discover us as a peer and failing.","operationId":"agent_card__well_known_agent_card_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Agent Card","description":"A2A agent card — how agent directories and peers introspect a service. Measured\n2026-08-02: distinct A2A agents probe these exact paths on this Space and got 404,\ni.e. they are trying to discover us as a peer and failing.","operationId":"agent_card__well_known_agent_card_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/agent-card.json":{"get":{"summary":"Agent Card","description":"A2A agent card — how agent directories and peers introspect a service. Measured\n2026-08-02: distinct A2A agents probe these exact paths on this Space and got 404,\ni.e. they are trying to discover us as a peer and failing.","operationId":"agent_card__well_known_agent_card_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Agent Card","description":"A2A agent card — how agent directories and peers introspect a service. Measured\n2026-08-02: distinct A2A agents probe these exact paths on this Space and got 404,\ni.e. they are trying to discover us as a peer and failing.","operationId":"agent_card__well_known_agent_card_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Agent Card","description":"A2A agent card — how agent directories and peers introspect a service. Measured\n2026-08-02: distinct A2A agents probe these exact paths on this Space and got 404,\ni.e. they are trying to discover us as a peer and failing.","operationId":"agent_card__well_known_agent_card_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/agent.json":{"get":{"summary":"Agent Card","description":"A2A agent card — how agent directories and peers introspect a service. Measured\n2026-08-02: distinct A2A agents probe these exact paths on this Space and got 404,\ni.e. they are trying to discover us as a peer and failing.","operationId":"agent_card__well_known_agent_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Agent Card","description":"A2A agent card — how agent directories and peers introspect a service. Measured\n2026-08-02: distinct A2A agents probe these exact paths on this Space and got 404,\ni.e. they are trying to discover us as a peer and failing.","operationId":"agent_card__well_known_agent_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Agent Card","description":"A2A agent card — how agent directories and peers introspect a service. Measured\n2026-08-02: distinct A2A agents probe these exact paths on this Space and got 404,\ni.e. they are trying to discover us as a peer and failing.","operationId":"agent_card__well_known_agent_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/audit":{"post":{"summary":"Audit Text","operationId":"audit_text_audit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/okx/status":{"get":{"summary":"Okx Status","description":"FREE diagnostic: is the OKX broker paywall live, or are we still on the fallback challenge?\nReports whether credentials are present, never their values.","operationId":"okx_status_okx_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Okx Status","description":"FREE diagnostic: is the OKX broker paywall live, or are we still on the fallback challenge?\nReports whether credentials are present, never their values.","operationId":"okx_status_okx_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Okx Status","description":"FREE diagnostic: is the OKX broker paywall live, or are we still on the fallback challenge?\nReports whether credentials are present, never their values.","operationId":"okx_status_okx_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/okx/{service}":{"get":{"summary":"Okx Discover","description":"Discovery probe: a bare GET on any /okx/* service returns the same 402 challenge the POST\ndoes. Without this a reviewer (or `onchainos agent x402-check` with no --body) sees 405 and\nreads the service as 'not a valid x402 endpoint'.","operationId":"okx_discover_okx__service__get","parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string","title":"Service"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/okx/audit":{"post":{"summary":"Okx Audit","description":"OKX-marketplace audit endpoint (X Layer / USDT via OKX escrow). Same scan engine as\n/audit; only the payment rail differs (eip155:196 + USDT, settled by OKX).","operationId":"okx_audit_okx_audit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/okx/search":{"post":{"summary":"Okx Search","description":"OKX-marketplace web search (X Layer / USDT via OKX escrow). Delegates to /search.","operationId":"okx_search_okx_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/okx/extract":{"post":{"summary":"Okx Extract","description":"OKX-marketplace structured extract (X Layer / USDT via OKX escrow). Delegates to /extract.","operationId":"okx_extract_okx_extract_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scripts__x402_api__main__ExtractRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/okx/read":{"post":{"summary":"Okx Read","description":"OKX-marketplace clean-read (X Layer / USDT via OKX escrow). Delegates to /read.","operationId":"okx_read_okx_read_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/url":{"post":{"summary":"Audit Url","operationId":"audit_url_audit_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditUrlRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/read":{"post":{"summary":"Read Url","operationId":"read_url_read_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/read/batch":{"post":{"summary":"Read Batch","operationId":"read_batch_read_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/search":{"post":{"summary":"Web Search","operationId":"web_search_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/crawl":{"post":{"summary":"Crawl Site","operationId":"crawl_site_crawl_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrawlRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sitemap":{"post":{"summary":"Site Map","operationId":"site_map_sitemap_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SitemapRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rss":{"post":{"summary":"Parse Feed","operationId":"parse_feed_rss_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RssRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/extract":{"post":{"summary":"Extract Structured","operationId":"extract_structured_extract_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/scripts__x402_api__main__ExtractRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pdf":{"post":{"summary":"Pdf To Text","operationId":"pdf_to_text_pdf_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PdfRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/trust":{"post":{"summary":"Trust Score","description":"Composite, transparent, x402-native trust score for an arbitrary URL / x402 server.\nBeats single-signal scorers: one call returns transport + content-safety + domain +\nmetadata + x402-compliance sub-scores, each backed by real evidence.","operationId":"trust_score_trust_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/headers":{"post":{"summary":"Security Headers","operationId":"security_headers_headers_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HeadersRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dns":{"post":{"summary":"Dns Lookup","operationId":"dns_lookup_dns_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/registry":{"post":{"summary":"Audit Registry","description":"Scan the newest servers in the official MCP registry. No input required.\n\nSee RegistryAuditRequest for why this exists: every route that needs an argument from the\ncaller converts ~25x worse than one that can be called blind, because the buyers are\ncrawlers. This gives a blind caller a real answer — a fresh supply-chain risk feed over\nservers somebody just published — using the same pattern engine as /audit.","operationId":"audit_registry_audit_registry_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistryAuditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/repo":{"post":{"summary":"Audit Repo","operationId":"audit_repo_audit_repo_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoAuditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AnswerRequest":{"properties":{"query":{"type":"string","title":"Query"},"max_sources":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Sources","default":4},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens","default":700}},"type":"object","required":["query"],"title":"AnswerRequest"},"AuditRequest":{"properties":{"content":{"type":"string","title":"Content"}},"type":"object","required":["content"],"title":"AuditRequest"},"AuditUrlRequest":{"properties":{"url":{"type":"string","title":"Url"},"max_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Size","default":500000}},"type":"object","required":["url"],"title":"AuditUrlRequest"},"ChatRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System"},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens","default":800},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature","default":0.3}},"type":"object","required":["prompt"],"title":"ChatRequest"},"CrawlRequest":{"properties":{"url":{"type":"string","title":"Url"},"max_pages":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Pages","default":5},"include_links":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Links","default":true}},"type":"object","required":["url"],"title":"CrawlRequest"},"DnsRequest":{"properties":{"domain":{"type":"string","title":"Domain"}},"type":"object","required":["domain"],"title":"DnsRequest"},"GeocodeRequest":{"properties":{"name":{"type":"string","title":"Name"},"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count","default":5}},"type":"object","required":["name"],"title":"GeocodeRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HeadersRequest":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"HeadersRequest"},"HolidayRequest":{"properties":{"country":{"type":"string","title":"Country"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}},"type":"object","required":["country"],"title":"HolidayRequest"},"IndicatorRequest":{"properties":{"country":{"type":"string","title":"Country"},"indicator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Indicator","default":"gdp"},"years":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years","default":5}},"type":"object","required":["country"],"title":"IndicatorRequest"},"PdfRequest":{"properties":{"url":{"type":"string","title":"Url"},"max_pages":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Pages","default":50}},"type":"object","required":["url"],"title":"PdfRequest"},"PointRequest":{"properties":{"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"}},"type":"object","title":"PointRequest"},"QuakeRequest":{"properties":{"min_magnitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Magnitude","default":4.5},"days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days","default":1},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit","default":20},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"radius_km":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Radius Km","default":500.0}},"type":"object","title":"QuakeRequest"},"ReadBatchRequest":{"properties":{"urls":{"items":{"type":"string"},"type":"array","title":"Urls"},"include_links":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Links","default":true}},"type":"object","required":["urls"],"title":"ReadBatchRequest"},"ReadRequest":{"properties":{"url":{"type":"string","title":"Url"},"include_links":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Links","default":true},"max_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Size","default":2000000}},"type":"object","required":["url"],"title":"ReadRequest"},"RegistryAuditRequest":{"properties":{"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit","default":5}},"type":"object","title":"RegistryAuditRequest","description":"Deliberately has NO required field — that is the entire point of the route.\n\nMeasured 2026-08-10 across ~14,000 paywall challenges, with `POST /mcp 200` excluded:\n\n    routes callable with NO required input : 12 routes, 397 paid,  mean 33.1\n    routes REQUIRING an argument           :  9 routes,  12 paid,  mean  1.3\n\nA 25x gap that cuts cleanly across price AND category. /btc_rates at $0.020 with no\nargument converts; /check at $0.005 needing an `address` converted once in 5,608. The\nbuyers are crawlers walking a directory of x402 endpoints and calling them blind: they can\npay for /stocks because `{}` returns something worth $0.005, and they cannot pay for\n/audit because they have no text of ours to audit.\n\nSo the security capability was never unsellable — it was the wrong SHAPE. This is the same\nscanner behind /audit, pointed at a target the caller does not have to supply."},"RepoAuditRequest":{"properties":{"repo":{"type":"string","title":"Repo"},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref"},"include_tests":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Tests","default":false}},"type":"object","required":["repo"],"title":"RepoAuditRequest"},"RssRequest":{"properties":{"url":{"type":"string","title":"Url"},"max_items":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Items","default":50}},"type":"object","required":["url"],"title":"RssRequest"},"SearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Results","default":10}},"type":"object","required":["query"],"title":"SearchRequest"},"SitemapRequest":{"properties":{"url":{"type":"string","title":"Url"},"max_urls":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Urls","default":500}},"type":"object","required":["url"],"title":"SitemapRequest"},"TrustRequest":{"properties":{"url":{"type":"string","title":"Url"},"check_x402":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Check X402","default":true}},"type":"object","required":["url"],"title":"TrustRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"llm_routes__ExtractRequest":{"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"schema_hint":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Schema Hint"},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction"}},"type":"object","title":"ExtractRequest"},"scripts__x402_api__main__ExtractRequest":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"ExtractRequest"}}}}