# V-Safe — Israeli Company KYB Risk Check (`brand_risk/vsafe-kyb-risk`) Actor

KYB risk scores for Israeli companies: sanctions, insolvency, adverse media, cyber, registry.

- **URL**: https://apify.com/brand\_risk/vsafe-kyb-risk.md
- **Developed by:** [Moshe Brown](https://apify.com/brand_risk) (community)
- **Categories:** Business, AI
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🛡️ V-Safe — Israeli Company KYB Risk Check

**Instant Know-Your-Business risk scores for Israeli companies.** Give V-Safe a
9-digit company registration number (ח.פ) and get back a single, bounded risk
score (0–100) with a full evidence trail — aggregating sanctions & PEP screening,
insolvency, Bank-of-Israel restricted-account flags, adverse media, cyber/domain
signals, and the official companies registry into one structured result.

Built for compliance, onboarding, and due-diligence teams who need a fast,
agent-ready answer to *"how risky is this Israeli company?"* — without manually
chasing six different government and sanctions sources.

> 💸 **Pay per result** — you're billed only for successful checks. No subscription.

---

### ✨ What can you do with it?

- **Onboard vendors & customers (KYB):** screen a new Israeli counterparty in one
  call before you sign or pay them.
- **AML / compliance checks:** sanctions, PEP, and adverse-media screening with
  source citations you can keep for your audit trail.
- **Counterparty & supplier due diligence:** spot insolvency, liquidation, or
  restricted-account red flags early.
- **Enrich & score lists:** batch-check a whole portfolio or prospect list and
  export the risk bands to CSV/Excel/JSON.
- **Power AI agents & workflows:** the structured output drops straight into
  automations, spreadsheets, or LLM agents.

---

### 🔍 What it checks

| Layer | What it surfaces |
|-------|------------------|
| **Company registry** | Legal status, age, capital, officers (official Israeli companies registry) |
| **Insolvency & liquidation** | Court and official-gazette insolvency / winding-up signals |
| **Restricted accounts** | Bank of Israel restricted-account (חשבון מוגבל) flags |
| **Sanctions & PEP** | International sanctions lists and politically-exposed-person screening |
| **Adverse media** | Hebrew-language negative news and reputational signals |
| **Domain & web presence** | WHOIS/DNS/blacklist checks and website ↔ registry consistency |

Each layer returns its own finding with **evidence** (source, link, snippet,
timestamp) and a **confidence** score, rolled up into the overall band.

---

### 📥 Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `registrationNumbers` | string[] | — | One or more 9-digit Israeli registration numbers (ח.פ). The simplest way to run a check. |
| `companies` | object[] | — | Advanced: pass `{registration_number, website?, company_name?, tier?, lei?, duns?, vat?}` per item. Adding a `website` improves the domain & web-presence layers. Merged with the simple list (deduped). |
| `tier` | `full` \| `quick` | `full` | `quick` = registry + insolvency + restricted-account + domain (fast). `full` = all layers incl. sanctions & adverse media. |
| `requestTimeoutSecs` | integer | `60` | A live check fans out to primary sources; `full` tier can take 30–45s. Keep ≥30. |
| `maxConcurrency` | integer | `1` | How many companies to check in parallel. |
| `apiToken` | string (secret) | — | Optional — only for existing V-Safe customers using their own token. Leave blank otherwise. |

Provide at least one of `registrationNumbers` or `companies`.

#### Examples

**1. Single quick check**

```json
{
  "registrationNumbers": ["520013954"],
  "tier": "quick"
}
````

**2. Batch, full risk score**

```json
{
  "registrationNumbers": ["520013954", "520018078", "520042821"],
  "tier": "full",
  "maxConcurrency": 2
}
```

> The numbers above are real public companies — Teva, Bank Leumi, and Check Point.

**3. Advanced — add a website for deeper domain & web-presence coverage**

```json
{
  "companies": [
    { "registration_number": "520013954", "website": "teva.co.il" }
  ],
  "tier": "full"
}
```

***

### 📤 Output

One dataset item per company:

```jsonc
{
  "registration_number": "520013954",
  "ok": true,
  "caption": "Teva Pharmaceutical Industries Ltd",
  "score": 70,            // 0-100, higher = riskier
  "band": "HIGH",         // LOW | MEDIUM | HIGH | UNKNOWN
  "confidence": 0.86,
  "status": "completed",
  "datasets": ["il_companies_registry", "boi_restricted", "..."],
  "result": { /* full structured payload: per-layer findings, evidence, identifiers */ }
}
```

- The flat columns (`band`, `score`, `confidence`, `caption`) show in the
  **Risk overview** table view.
- The `result` field carries the **complete** breakdown — every layer's findings,
  source citations/evidence, and cross-walk identifiers (LEI/DUNS/VAT).
- Failed lookups are returned too, with `"ok": false` and an `error`.
- Export the whole dataset to **JSON, CSV, or Excel** from the run's Storage tab.

***

### ❓ FAQ

**Which companies are covered?** Israeli legal entities identified by their 9-digit
registration number (ח.פ).

**How fresh is the data?** Results are computed live against primary sources at run
time — freshness over cache.

**How long does a check take?** A `quick` check is typically a few seconds; a `full`
check fans out across all layers and can take ~30–45s.

**Do I need a V-Safe account or API key?** No. Just run the Actor — billing is handled
by Apify per result. (Existing V-Safe customers can supply their own `apiToken`.)

**Volume / enterprise access?** See the V-Safe website to talk about higher volumes,
SLAs, or direct API access.

# Actor input Schema

## `registrationNumbers` (type: `array`):

One or more 9-digit Israeli company registration numbers to check. This is the simple path — one risk score per number.

## `companies` (type: `array`):

Optional richer input. Each item may carry a website / name / cross-walk ids that feed the domain & web-presence layers. Use this instead of (or in addition to) the simple list when you have more than just the registration number.

Example item: {"registration\_number": "520013954", "website": "teva.co.il"}

## `tier` (type: `string`):

Quick = registry + insolvency + restricted-account + domain. Full = all layers. Applied to every company unless overridden per-item in the advanced list.

## `apiBaseUrl` (type: `string`):

Base URL of the V-Safe REST API. Leave as default unless you were given a different endpoint.

## `apiToken` (type: `string`):

Optional. A V-Safe bearer token (JWT) to authenticate the checks. Leave blank to use the publisher's metered service account — billing then runs through Apify. Only set this if you have your own V-Safe pilot token.

## `requestTimeoutSecs` (type: `integer`):

A live check fans out to primary sources and can take up to ~20s. Keep this at 60 or higher.

## `maxConcurrency` (type: `integer`):

How many companies to check in parallel. Kept low by default to respect upstream rate/cost ceilings.

## Actor input object example

```json
{
  "registrationNumbers": [
    "520013954"
  ],
  "companies": [],
  "tier": "full",
  "apiBaseUrl": "https://api.v-safe.ai",
  "requestTimeoutSecs": 60,
  "maxConcurrency": 1
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "registrationNumbers": [
        "520013954"
    ],
    "companies": [],
    "apiBaseUrl": "https://api.v-safe.ai"
};

// Run the Actor and wait for it to finish
const run = await client.actor("brand_risk/vsafe-kyb-risk").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "registrationNumbers": ["520013954"],
    "companies": [],
    "apiBaseUrl": "https://api.v-safe.ai",
}

# Run the Actor and wait for it to finish
run = client.actor("brand_risk/vsafe-kyb-risk").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "registrationNumbers": [
    "520013954"
  ],
  "companies": [],
  "apiBaseUrl": "https://api.v-safe.ai"
}' |
apify call brand_risk/vsafe-kyb-risk --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=brand_risk/vsafe-kyb-risk",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "V-Safe — Israeli Company KYB Risk Check",
        "description": "KYB risk scores for Israeli companies: sanctions, insolvency, adverse media, cyber, registry.",
        "version": "0.1",
        "x-build-id": "ELMUev6AwIL9JZWpT"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/brand_risk~vsafe-kyb-risk/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-brand_risk-vsafe-kyb-risk",
                "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/brand_risk~vsafe-kyb-risk/runs": {
            "post": {
                "operationId": "runs-sync-brand_risk-vsafe-kyb-risk",
                "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/brand_risk~vsafe-kyb-risk/run-sync": {
            "post": {
                "operationId": "run-sync-brand_risk-vsafe-kyb-risk",
                "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": {
                    "registrationNumbers": {
                        "title": "Company registration numbers (ח.פ)",
                        "type": "array",
                        "description": "One or more 9-digit Israeli company registration numbers to check. This is the simple path — one risk score per number.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "companies": {
                        "title": "Companies (advanced)",
                        "type": "array",
                        "description": "Optional richer input. Each item may carry a website / name / cross-walk ids that feed the domain & web-presence layers. Use this instead of (or in addition to) the simple list when you have more than just the registration number.\n\nExample item: {\"registration_number\": \"520013954\", \"website\": \"teva.co.il\"}"
                    },
                    "tier": {
                        "title": "Tier",
                        "enum": [
                            "full",
                            "quick"
                        ],
                        "type": "string",
                        "description": "Quick = registry + insolvency + restricted-account + domain. Full = all layers. Applied to every company unless overridden per-item in the advanced list.",
                        "default": "full"
                    },
                    "apiBaseUrl": {
                        "title": "V-Safe API base URL",
                        "type": "string",
                        "description": "Base URL of the V-Safe REST API. Leave as default unless you were given a different endpoint.",
                        "default": "https://api.v-safe.ai"
                    },
                    "apiToken": {
                        "title": "V-Safe API token (optional)",
                        "type": "string",
                        "description": "Optional. A V-Safe bearer token (JWT) to authenticate the checks. Leave blank to use the publisher's metered service account — billing then runs through Apify. Only set this if you have your own V-Safe pilot token."
                    },
                    "requestTimeoutSecs": {
                        "title": "Per-check timeout (seconds)",
                        "minimum": 30,
                        "maximum": 180,
                        "type": "integer",
                        "description": "A live check fans out to primary sources and can take up to ~20s. Keep this at 60 or higher.",
                        "default": 60
                    },
                    "maxConcurrency": {
                        "title": "Max concurrent checks",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "How many companies to check in parallel. Kept low by default to respect upstream rate/cost ceilings.",
                        "default": 1
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
