{
  "openapi": "3.0.1",
  "info": {
    "title": "OFAC Sanctions Screening - SDN & Consolidated Lists",
    "description": "Screen any list of names against US Treasury OFAC sanctions - the SDN and Consolidated lists - with fuzzy matching and match scores: aliases (AKA), programs, entity type, addresses and remarks per hit. Official public data, straight from OFAC - no API key, no browser.",
    "version": "0.1",
    "x-build-id": "v2B7K4UKqd43CBJL1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~ofac-sanctions-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-ofac-sanctions-scraper",
        "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/scrapesage~ofac-sanctions-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-ofac-sanctions-scraper",
        "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/scrapesage~ofac-sanctions-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-ofac-sanctions-scraper",
        "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": {
          "names": {
            "title": "Names to screen",
            "type": "array",
            "description": "People, companies, vessels or aircraft to screen against the OFAC sanctions lists, one per line. <b>Leave empty and the run returns a small free sample.</b>",
            "items": {
              "type": "string"
            }
          },
          "namesFromFile": {
            "title": "Import names from a file",
            "type": "string",
            "description": "Bulk-load names. Either <b>paste the whole list</b> (one per line), or give <b>a single link</b> to a public <code>.txt</code>/<code>.csv</code>, a Google Sheet/Drive link, or an Apify key-value-store record. A file that cannot be read says so and charges nothing."
          },
          "lists": {
            "title": "Sanctions lists",
            "type": "array",
            "description": "Which OFAC lists to screen against. Leave empty for both.",
            "items": {
              "type": "string",
              "enum": [
                "SDN",
                "CONSOLIDATED"
              ],
              "enumTitles": [
                "Specially Designated Nationals (SDN)",
                "Consolidated non-SDN list (CONSOLIDATED)"
              ]
            }
          },
          "entityTypes": {
            "title": "Only these entity types",
            "type": "array",
            "description": "Keep only matches of the selected entity types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "individual",
                "entity",
                "vessel",
                "aircraft"
              ],
              "enumTitles": [
                "Individuals (individual)",
                "Companies & organizations (entity)",
                "Vessels (vessel)",
                "Aircraft (aircraft)"
              ]
            }
          },
          "programs": {
            "title": "Only these sanctions programs",
            "type": "array",
            "description": "Keep only matches tagged with these OFAC program codes, e.g. <code>SDGT</code>, <code>IRAN</code>, <code>RUSSIA-EO14024</code>, <code>SDNTK</code>, <code>CUBA</code>. Free text because OFAC adds new program codes over time; values are matched case-insensitively against each entity's program tags. Leave empty for all programs.",
            "items": {
              "type": "string"
            }
          },
          "minScore": {
            "title": "Minimum match score (1-100)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How strict the fuzzy match is. 100 = exact normalized name only; 85 (default) also catches names whose words all appear in a listed name or alias; lower values catch partial-word overlaps.",
            "default": 85
          },
          "maxMatchesPerName": {
            "title": "Max matches per name",
            "minimum": 1,
            "type": "integer",
            "description": "How many sanction-list hits to return per screened name (best scores first).",
            "default": 5
          },
          "includeClears": {
            "title": "Include clear results",
            "type": "boolean",
            "description": "Emit one row for every screened name that has NO match (an auditable all-clear). Turn off to output match rows only.",
            "default": true
          },
          "maxItems": {
            "title": "Max results (total)",
            "minimum": 1,
            "type": "integer",
            "description": "Overall cap on saved screening results. You are only charged for results actually saved.",
            "default": 10000
          },
          "outputFields": {
            "title": "Output fields (leave empty for all)",
            "type": "array",
            "description": "Pick the fields you want and every record is trimmed to exactly those - handy for lean CSV/Sheets exports.",
            "items": {
              "type": "string",
              "enum": [
                "type",
                "query",
                "matched",
                "score",
                "matchedName",
                "matchedNameType",
                "primaryName",
                "entityId",
                "listName",
                "sdnType",
                "programs",
                "title",
                "remarks",
                "akaNames",
                "akaCount",
                "addresses",
                "addressCount",
                "callSign",
                "vesselType",
                "vesselFlag",
                "vesselOwner",
                "tonnage",
                "grossRegisteredTonnage",
                "scrapedAt"
              ],
              "enumTitles": [
                "Record type (type)",
                "Screened name (query)",
                "Matched (matched)",
                "Match score (score)",
                "Matched name (matchedName)",
                "Matched name type (matchedNameType)",
                "Primary listed name (primaryName)",
                "OFAC entity ID (entityId)",
                "List (listName)",
                "Entity type (sdnType)",
                "Sanctions programs (programs)",
                "Title/role (title)",
                "Remarks (remarks)",
                "Alias names (akaNames)",
                "Alias count (akaCount)",
                "Addresses (addresses)",
                "Address count (addressCount)",
                "Call sign (callSign)",
                "Vessel type (vesselType)",
                "Vessel flag (vesselFlag)",
                "Vessel owner (vesselOwner)",
                "Tonnage (tonnage)",
                "Gross registered tonnage (grossRegisteredTonnage)",
                "Scraped at (scrapedAt)"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}