{
  "openapi": "3.0.1",
  "info": {
    "title": "Sanctions Screening API",
    "description": "Unofficial sanctions screening API: checks supplier and company names against the US Consolidated Screening List (BIS Entity List, OFAC SDN and more) and the UK Sanctions List. One row per name with match, possible match or no match and scores. Screening aid only.",
    "version": "0.1",
    "x-build-id": "qHUljC8BpxaEJTh34"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sourcing-data-studio~sanctions-screening-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sourcing-data-studio-sanctions-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/sourcing-data-studio~sanctions-screening-api/runs": {
      "post": {
        "operationId": "runs-sync-sourcing-data-studio-sanctions-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/sourcing-data-studio~sanctions-screening-api/run-sync": {
      "post": {
        "operationId": "run-sync-sourcing-data-studio-sanctions-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",
        "required": [
          "companyNames"
        ],
        "properties": {
          "companyNames": {
            "title": "Company names",
            "minItems": 1,
            "maxItems": 200,
            "uniqueItems": true,
            "type": "array",
            "description": "Names of the suppliers or companies to screen, one per line, 1 to 200 per run. Use the full legal name as written on the invoice or contract, for example \"Huawei Technologies Co., Ltd.\". Names of organisations, vessels and aircraft only: private individuals are never screened. Each name returns one row and is charged once, whether or not a match is found. Repeated names are screened once.",
            "items": {
              "type": "string"
            }
          },
          "minScore": {
            "title": "Minimum score",
            "minimum": 0.5,
            "maximum": 1,
            "type": "number",
            "description": "Lowest similarity score, from 0.5 to 1, that counts as a match. 1 means the normalised names are identical. A best score of 0.95 or more gives status \"match\"; a best score between this value and 0.95 gives \"possible_match\"; nothing at or above this value gives \"no_match\". Default 0.85. Lower it (for example 0.75) to catch more spelling variants at the cost of more false alarms; raise it to see near-exact matches only.",
            "default": 0.85
          },
          "lists": {
            "title": "Lists to check",
            "uniqueItems": true,
            "type": "array",
            "description": "Which lists to screen against. \"US\" is the US Consolidated Screening List (BIS Entity List, Military End User List, Unverified List, Denied Persons List, OFAC SDN and other OFAC lists, State Department lists). \"UK\" is the UK Sanctions List. Default: both. Every row reports which lists were actually checked in \"listsChecked\". If a list you select cannot be downloaded, the run fails and nothing is charged for names. Both files are downloaded in every run: a list you leave out is used only to recognise the private individuals it names, and no name is screened against it.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "UK"
              ],
              "enumTitles": [
                "US Consolidated Screening List",
                "UK Sanctions List"
              ]
            },
            "default": [
              "US",
              "UK"
            ]
          },
          "maxMatchesPerName": {
            "title": "Maximum matches per name",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many matching list entries to return for one name, best score first, from 1 to 20. Default 5. \"matchCount\" in the row always reports the total number of entries found, also when it is larger than this limit. This setting does not change the price.",
            "default": 5
          },
          "maxItems": {
            "title": "Maximum names screened",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum number of names to screen and pay for in this run. Leave it at 200 to screen every name; lower it only to cap your spending. Names are taken in the order given; names beyond this number are skipped and not charged, and the run says so in its status message and its run summary: \"N of M names were NOT screened (limit X)\". A name that cannot be screened (no letters or digits) does not count towards this number.",
            "default": 200
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy servers used for the two list downloads. Both lists are public government files, so no proxy is needed and the default is none. Set one only if your own network requires it. A proxy is never used to get around a refusal: when a source answers HTTP 401, 403, 407 or 429, a new try leaves from the same address, never from another proxy of your list. A proxy that itself refuses the connection with one of these answers is not followed by the next proxy either.",
            "default": {
              "useApifyProxy": false
            }
          },
          "maxRequestRetries": {
            "title": "Retries per list download",
            "minimum": 0,
            "maximum": 6,
            "type": "integer",
            "description": "How many times a failed list download is retried, with exponential backoff, from 0 to 6. Default 3. A refusal is not retried from another address: HTTP 401, 403 and 407 are final and the list is recorded as blocked; after HTTP 429 the Actor waits the time the source asks for (up to 60 seconds) and tries again from the same address, and it gives up when the source asks for more or says its limit is used up. If a list you selected still cannot be downloaded, the run fails: no name is screened and nothing is charged for names. Run again later, or select only the other list.",
            "default": 3
          },
          "debugLog": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Print detailed debug messages to the run log.",
            "default": false
          },
          "feedback": {
            "title": "Feedback for the developer",
            "maxLength": 1000,
            "type": "string",
            "description": "Optional. Tell us which list or field you need next, or what went wrong. It is saved with the run summary. Do not include personal data. AI agents may also use this field to report problems."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}