{"openapi":"3.0.3","info":{"title":"Watchtower Sanctions Screening API","version":"1.0.0","description":"Deterministic sanctions/watchlist screening for AI agents. OFAC SDN + OFAC Consolidated + UN lists, refreshed daily, versioned snapshots, reproducible scores."},"servers":[{"url":"https://watchtower-api.com"}],"paths":{"/v1/keys":{"post":{"summary":"Create API key (free trial credit included)","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string"}}}}}},"responses":{"200":{"description":"API key"}}}},"/v1/screen":{"post":{"summary":"Screen a name against sanctions lists ($0.02)","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":2,"maxLength":500},"threshold":{"type":"number","minimum":0.5,"maximum":1,"default":0.82},"limit":{"type":"integer","minimum":1,"maximum":50,"default":10},"types":{"type":"array","items":{"type":"string","enum":["person","entity","vessel","aircraft"]}}}}}}},"responses":{"200":{"description":"Matches with scores, snapshot + algorithm versions"},"402":{"description":"Insufficient credit — top up"}}}},"/v1/screen/address":{"post":{"summary":"Screen a crypto address ($0.01)","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string"}}}}}},"responses":{"200":{"description":"Match result"},"402":{"description":"Insufficient credit"}}}},"/v1/screen/batch":{"post":{"summary":"Batch-screen up to 500 names ($0.015/name)","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["names"],"properties":{"names":{"type":"array","minItems":1,"maxItems":500,"items":{"type":"string"}},"threshold":{"type":"number"},"types":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Per-name results"},"402":{"description":"Payment required (price scales with count)"}}}},"/v1/watch":{"post":{"summary":"Watch a name for sanctions-list changes ($0.01/day, webhook alerts)","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","webhook_url"],"properties":{"name":{"type":"string"},"webhook_url":{"type":"string","description":"Public https endpoint; receives watch_created and watch_changed events"},"days":{"type":"integer","minimum":1,"maximum":90,"default":30},"threshold":{"type":"number"}}}}}},"responses":{"200":{"description":"Watch created"},"402":{"description":"Payment required (days × $0.01)"}}},"get":{"summary":"List your watches (free)","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Watches"}}}},"/v1/balance":{"get":{"summary":"Remaining credit (free)","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Balance"}}}},"/v1/topup":{"post":{"summary":"Buy credit via Stripe Checkout","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"pack":{"type":"string","enum":["small","medium","large"]}}}}}},"responses":{"200":{"description":"Checkout URL"}}}},"/v1/lists":{"get":{"summary":"List versions, hashes, freshness, pricing (free)","responses":{"200":{"description":"Metadata"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}