{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/":{"get":{"summary":"Root","description":"Friendly root — humans land here from the bare hostname; crawlers want a\nmachine-readable pointer to the discovery surface.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Root Post","description":"x402 protocol discovery — POST / returns the same 402 PaymentRequired\nchallenge as POST /scan, so x402 explorers and crawlers that probe the\norigin root can verify this service as an x402 endpoint without knowing\nthe canonical path. The actual scan handler lives at /scan.","operationId":"root_post__post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"summary":"Root","description":"Friendly root — humans land here from the bare hostname; crawlers want a\nmachine-readable pointer to the discovery surface.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Get Llms","operationId":"get_llms_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Get Robots","operationId":"get_robots_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/schema":{"get":{"summary":"Get Schema","operationId":"get_schema_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tos":{"get":{"summary":"Get Tos","operationId":"get_tos_tos_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/agents.json":{"get":{"summary":"Get Agents Manifest","operationId":"get_agents_manifest__well_known_agents_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/agents.json":{"get":{"summary":"Get Agents Manifest","operationId":"get_agents_manifest_agents_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/scan":{"post":{"summary":"Scan Address","operationId":"scan_address_scan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatternReport"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bulk/quote":{"post":{"summary":"Bulk Quote","operationId":"bulk_quote_bulk_quote_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkQuoteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bulk/status/{invoice_id}":{"get":{"summary":"Bulk Status","operationId":"bulk_status_bulk_status__invoice_id__get","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bulk/results/{invoice_id}":{"get":{"summary":"Bulk Results","operationId":"bulk_results_bulk_results__invoice_id__get","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/healthz":{"get":{"summary":"Health","operationId":"health_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/stats":{"get":{"summary":"Get Stats","operationId":"get_stats_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"BulkQuoteRequest":{"properties":{"addresses":{"items":{"type":"string"},"type":"array","maxItems":50,"minItems":1,"title":"Addresses","examples":[["rDsbeomae4FXwgQTJp9Rs64Qg9vDiTCdBv","r4rVA3GZZ3bJh1zJrYrVDPBnfsYKXP23Se"]]}},"type":"object","required":["addresses"],"title":"BulkQuoteRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PatternReport":{"properties":{"address":{"type":"string","title":"Address","examples":["rDsbeomae4FXwgQTJp9Rs64Qg9vDiTCdBv"]},"activity_score":{"type":"integer","title":"Activity Score","examples":[88]},"activity_level":{"type":"string","title":"Activity Level","examples":["High"]},"confidence":{"type":"string","title":"Confidence","default":"low","examples":["high"]},"window_days":{"type":"integer","title":"Window Days","default":90},"transaction_count":{"type":"integer","title":"Transaction Count","examples":[200]},"signals":{"items":{"type":"string"},"type":"array","title":"Signals","examples":[["NET_OUTBOUND_SWEEP","LABELED_EXCHANGE_COUNTERPARTY"]]},"features":{"additionalProperties":true,"type":"object","title":"Features"},"reasoning":{"type":"string","title":"Reasoning","examples":["The address shows highly automated, service-like behavior..."]},"cached":{"type":"boolean","title":"Cached","default":false},"schema_url":{"type":"string","title":"Schema Url","default":"https://sentinel.xrpl-utilities.io/schema"},"tos_url":{"type":"string","title":"Tos Url","default":"https://sentinel.xrpl-utilities.io/tos"},"legal_notice":{"type":"string","title":"Legal Notice","default":"BEHAVIORAL PATTERN CLASSIFICATION ONLY. This is not a risk, compliance, sanctions, or AML determination. No counterparty labels, sanctions lists, or graph-based forensics are used. Always do your own research and independently verify any address before transacting, extending credit, or making financial, legal, or regulatory decisions based on these results."}},"type":"object","required":["address","activity_score","activity_level","transaction_count","reasoning"],"title":"PatternReport"},"ScanRequest":{"properties":{"address":{"type":"string","title":"Address","examples":["rDsbeomae4FXwgQTJp9Rs64Qg9vDiTCdBv"]}},"type":"object","required":["address"],"title":"ScanRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}