{
  "openapi": "3.0.1",
  "info": {
    "title": "Sanctions Screening API - OpenSanctions PEP, Watchlist Match",
    "description": "Sanctions, PEP and watchlist screening with the OpenSanctions API: fuzzy match people, companies, vessels and crypto wallets against OFAC, EU, UN, UK and hundreds more lists, PEPs, debarment and crime data, with match scores, topics, programs and full entity records. Bring your own key.",
    "version": "0.1",
    "x-build-id": "YAN2sfJckvcqtX8Rf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~sanctions-watchlist-screening-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-sanctions-watchlist-screening-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nabeelbaghoor~sanctions-watchlist-screening-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-sanctions-watchlist-screening-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nabeelbaghoor~sanctions-watchlist-screening-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-sanctions-watchlist-screening-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to do",
            "enum": [
              "match",
              "search",
              "entity"
            ],
            "type": "string",
            "description": "Entity screening scores each name or entity against the OpenSanctions database with the /match API (fuzzy, cross-script name matching plus birth date, nationality and identifier checks), one credit per entity. Text search runs a keyword search with filters, one credit per page. Entity details reads the full record of known OpenSanctions entity IDs with sanctions, family and ownership links, free on your plan.",
            "default": "match"
          },
          "names": {
            "title": "Names to screen",
            "type": "array",
            "description": "Entity screening. One person, company or vessel name per line, all screened as the entity type below. Up to 1,000 a run, each one OpenSanctions credit.",
            "items": {
              "type": "string"
            }
          },
          "entityType": {
            "title": "Entity type for names",
            "enum": [
              "Person",
              "Company",
              "Organization",
              "LegalEntity",
              "Vessel",
              "Airplane",
              "CryptoWallet",
              "Security",
              "PublicBody"
            ],
            "type": "string",
            "description": "Entity screening. The FollowTheMoney schema the names are screened as. Use the most specific one you know; LegalEntity covers both companies and organizations.",
            "default": "Person"
          },
          "entities": {
            "title": "Detailed entities (JSON)",
            "type": "array",
            "description": "Entity screening, for better precision. A JSON list of entities with extra details, each with a schema and FollowTheMoney properties, either flat or under properties, and an optional ref that is copied to every row. Example: [{\"ref\": \"cust-42\", \"schema\": \"Person\", \"name\": \"Arkadii Rotenberg\", \"birthDate\": \"1951\", \"nationality\": \"ru\"}, {\"schema\": \"Company\", \"name\": \"Stroygazmontazh\", \"jurisdiction\": \"ru\", \"registrationNumber\": \"1077762942212\"}, {\"schema\": \"Vessel\", \"name\": \"Example\", \"imoNumber\": \"9123456\"}]."
          },
          "threshold": {
            "title": "Match threshold",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Entity screening. The score (0 to 1) at or above which a candidate counts as a match. 0.7 is the calibrated default; 0.8 or 0.85 gives fewer false positives.",
            "default": 0.7
          },
          "algorithm": {
            "title": "Matching algorithm",
            "enum": [
              "best",
              "logic-v2",
              "ofac",
              "name-based",
              "name-qualified",
              "logic-v1",
              "regression-v1"
            ],
            "type": "string",
            "description": "Entity screening. The OpenSanctions scoring algorithm. Best is recommended; pin logic-v2 if you need stable scores for audit.",
            "default": "best"
          },
          "resultsPerEntity": {
            "title": "Candidates per entity",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Entity screening. The most candidates OpenSanctions returns for each screened entity (API maximum 500).",
            "default": 5
          },
          "onlyMatches": {
            "title": "Only matches",
            "type": "boolean",
            "description": "Entity screening. Keeps only candidates at or above the threshold. Turn off to also get (and pay for) weaker candidates for manual review.",
            "default": true
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Text search. Keywords such as a name, with the documented search syntax: field searches, wildcards and, with fuzzy on, name~ for fuzzy terms."
          },
          "searchSchema": {
            "title": "Search entity type",
            "enum": [
              "Thing",
              "Person",
              "Company",
              "Organization",
              "LegalEntity",
              "Vessel",
              "Airplane",
              "CryptoWallet",
              "Security",
              "PublicBody"
            ],
            "type": "string",
            "description": "Text search. Restricts results to one entity type.",
            "default": "Thing"
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Text search. Two letter ISO country codes in lower case, one per line, such as ru, ir or us.",
            "items": {
              "type": "string"
            }
          },
          "filters": {
            "title": "Property filters",
            "type": "array",
            "description": "Text search. One field:value filter per line on entity properties, such as properties.programId:EU-UKR or properties.birthDate:1965.",
            "items": {
              "type": "string"
            }
          },
          "fuzzy": {
            "title": "Fuzzy query syntax",
            "type": "boolean",
            "description": "Text search. Allows the fuzzy query syntax in the search query.",
            "default": false
          },
          "entityIds": {
            "title": "Entity IDs",
            "type": "array",
            "description": "Entity details. One OpenSanctions entity ID per line (the entityId column of a screening or search row, or the ID in an opensanctions.org/entities/ link). Merged IDs are followed to the canonical entity. Up to 1,000 a run.",
            "items": {
              "type": "string"
            }
          },
          "nested": {
            "title": "Include linked entities",
            "type": "boolean",
            "description": "Entity details. Includes adjacent entities in the record: sanction designations, addresses, identification documents, family, associates, owners and subsidiaries.",
            "default": true
          },
          "dataset": {
            "title": "Dataset scope",
            "enum": [
              "default",
              "sanctions",
              "peps",
              "crime",
              "debarment",
              "enforcement",
              "regulatory",
              "wanted",
              "maritime",
              "eu_sanctions",
              "us_sanctions",
              "securities",
              "special_interest"
            ],
            "type": "string",
            "description": "Entity screening and text search. The OpenSanctions collection to screen or search against.",
            "default": "default"
          },
          "topics": {
            "title": "Risk topics",
            "type": "array",
            "description": "Entity screening and text search. Only entities with at least one of these risk topics.",
            "items": {
              "type": "string",
              "enum": [
                "sanction",
                "sanction.linked",
                "sanction.control",
                "sanction.counter",
                "debarment",
                "role.pep",
                "role.rca",
                "poi",
                "reg.action",
                "reg.warn"
              ],
              "enumTitles": [
                "Sanctioned",
                "Sanction linked",
                "Sanction linked via ownership or control",
                "Counter sanctioned",
                "Debarred",
                "Politically exposed person",
                "Relative or close associate of a PEP",
                "Person of interest",
                "Regulatory action",
                "Regulatory warning"
              ]
            }
          },
          "includeDatasets": {
            "title": "Include datasets",
            "type": "array",
            "description": "Entity screening and text search. Only entities in at least one of these source datasets, such as us_ofac_sdn, eu_fsf or gb_hmt_sanctions (names as on opensanctions.org/datasets).",
            "items": {
              "type": "string"
            }
          },
          "excludeDatasets": {
            "title": "Exclude datasets",
            "type": "array",
            "description": "Entity screening and text search. Leaves out entities from these source datasets.",
            "items": {
              "type": "string"
            }
          },
          "changedSince": {
            "title": "Changed since",
            "type": "string",
            "description": "Entity screening and text search. Only entities updated since this date (2026-01-31, optionally with a time such as 2026-01-31T12:00). Useful for re-screening as part of continuous monitoring."
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most rows this run returns and charges for. Only this many entities are screened or looked up, and a search stops paging here.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Pacing. A 429 quota answer is waited out and retried a few times, then ends the run.",
            "default": 60
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own OpenSanctions API key (opensanctions.org/account). Stored as a secret, sent only to api.opensanctions.org in the Authorization header as ApiKey, and never logged. You can instead set the DATA_API_KEY environment secret."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}