{"openapi":"3.0.3","info":{"title":"Sanctions, Watchlist & Embargo Entity Screener API","version":"1.0.0","description":"Screens company and individual names, BIC/SWIFT codes, LEIs, and crypto addresses against high-risk OFAC SDN, EU, UN, UK OFSI, and caller-provided watchlists using legal-suffix stripping, Jaro-Winkler similarity, and phonetic matching."},"servers":[{"url":"https://api.tinplate.dev","description":"Production Edge Gateway"}],"components":{"schemas":{"SanctionsScreenerResponseData":{"type":"object","properties":{"clear":{"type":"boolean","example":false},"verdict":{"type":"string","enum":["clear","review","block"],"example":"block"},"risk_score":{"type":"number","minimum":0,"maximum":100,"example":100},"normalized_query":{"type":"string","example":"vtb bank"},"phonetic_key":{"type":"string","example":"FTPPNK"},"jurisdiction_risk":{"type":"object","properties":{"country_code":{"type":"string","nullable":true,"example":"RU"},"level":{"type":"string","enum":["low","elevated","high_sanctioned","comprehensive_embargo"],"example":"high_sanctioned"},"flags":{"type":"array","items":{"type":"string"},"example":["EU_SECTORAL_SANCTIONS","OFAC_RUSSIA_SANCTIONS"]}},"required":["country_code","level","flags"]},"total_matches":{"type":"integer","minimum":0,"example":1},"matches":{"type":"array","items":{"type":"object","properties":{"entry_id":{"type":"string","example":"OFAC-SDN-VTB-001"},"matched_name":{"type":"string","example":"VTB Bank Public Joint Stock Company"},"entity_type":{"type":"string","enum":["company","individual","vessel"],"example":"company"},"lists":{"type":"array","items":{"type":"string"},"example":["OFAC_SDN","EU_FSF","UK_OFSI"]},"match_method":{"type":"string","enum":["exact_identifier","exact_normalized_name","fuzzy_jaro_winkler","phonetic_alias"],"example":"exact_identifier"},"similarity_score":{"type":"number","minimum":0,"maximum":1,"example":1},"program":{"type":"string","example":"RUSSIA-EO14024 / EU Regulation 833/2014"}},"required":["entry_id","matched_name","entity_type","lists","match_method","similarity_score","program"]}}},"required":["clear","verdict","risk_score","normalized_query","phonetic_key","jurisdiction_risk","total_matches","matches"]},"SanctionsScreenerRequest":{"type":"object","properties":{"entity_name":{"type":"string","minLength":2,"maxLength":512,"example":"VTB Bank PJSC","description":"Company, organization, vessel, or individual name to screen."},"entity_type":{"type":"string","enum":["any","company","individual","vessel"],"default":"any","example":"company"},"country_code":{"type":"string","minLength":2,"maxLength":2,"example":"RU","description":"Optional 2-letter ISO country code to evaluate jurisdiction embargo and FATF risk."},"identifiers":{"type":"object","properties":{"bic":{"type":"string","maxLength":11,"example":"VTBRRUMM"},"lei":{"type":"string","maxLength":20,"example":"253400VTB253400VTB00"},"iban":{"type":"string","maxLength":34},"crypto_address":{"type":"string","maxLength":128}},"description":"Optional structured financial or corporate identifiers for exact watchlist matching."},"custom_watchlist":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":64},"name":{"type":"string","minLength":2,"maxLength":256},"list_source":{"type":"string","maxLength":64}},"required":["id","name"]},"maxItems":500,"description":"Optional caller-provided watchlist entries to fuzzy-screen alongside built-in EU/OFAC/UN/UK designations."},"similarity_threshold":{"type":"number","minimum":0.5,"maximum":1,"default":0.84,"example":0.84,"description":"Minimum normalized Jaro-Winkler / phonetic similarity score (0.50..1.00) to report a name match."}},"required":["entity_name"]},"ResponseMeta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string","format":"uuid"},"ms":{"type":"integer","minimum":0},"version":{"type":"string","example":"1.0.0"}}},"ErrorEnvelope":{"type":"object","required":["ok","error","meta"],"properties":{"ok":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_input"},"message":{"type":"string","example":"Request body failed validation"}}},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}}},"parameters":{}},"paths":{"/v1/sanctions-screener":{"post":{"tags":["41_SANCTIONS_SCREENER"],"summary":"Screen company and individual names, BICs, LEIs, and crypto addresses against EU, OFAC, UN, UK, and custom watchlists using Jaro-Winkler and phonetic matching","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SanctionsScreenerRequest"}}}},"responses":{"200":{"description":"Sanctions screening verdict, fuzzy/phonetic watchlist matches, and jurisdiction embargo risk","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"data":{"$ref":"#/components/schemas/SanctionsScreenerResponseData"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}},"required":["ok","data","meta"]}}}},"400":{"description":"Invalid input or malformed JSON request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Missing or invalid authentication credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"413":{"description":"Request payload exceeds subscribed plan byte cap","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}}}