> For the complete documentation index, see [llms.txt](https://docs.compliance.phalcon.blocksec.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.compliance.phalcon.blocksec.com/api-documentation/introduction.md).

# Introduction

The Phalcon Compliance REST API lets you integrate address screening and transaction monitoring directly into your applications and workflows. Whether you need to check an individual wallet before processing a withdrawal or continuously monitor transactions across multiple chains, the API provides programmatic access to the same risk intelligence available in the Phalcon Compliance dashboard.

## What You Can Do

### Address Screening

Screen blockchain addresses against the risk engine to identify sanctioned entities, exposure to illicit funds, and other compliance risks.

| Endpoint                                                                                                       | Description                                               |
| -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| [`POST /address/screen`](/api-documentation/address-screening/screen-a-single-address.md)                      | Screen a single address and obtain risk results           |
| [`POST /addresses/screen`](/api-documentation/address-screening/batch-screen-addresses.md)                     | Screen up to 100 addresses in one request                 |
| [`GET /addresses/details/{chain_id}/{address}`](/api-documentation/address-screening/get-an-address-detail.md) | Retrieve a detailed risk breakdown for a screened address |
| [`GET /addresses/screen/tasks/{task_id}`](/api-documentation/address-screening/get-a-task-result.md)           | Poll for the results of an asynchronous screening task    |
| [`PUT /addresses/{chain_id}/{address}`](/api-documentation/address-screening/update-an-address-info.md)        | Update custom labels or notes for an address              |

### Transaction Screening

Monitor the risk exposure of an individual transaction or a batch of transactions, including all associated transfers.

| Endpoint                                                                                                                      | Description                                            |
| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| [`POST /transaction/screen`](/api-documentation/transaction-screening/screen-a-single-transaction.md)                         | Screen a single transaction                            |
| [`POST /transactions/screen`](/api-documentation/transaction-screening/batch-screen-transactions.md)                          | Screen up to 100 transactions in one request           |
| [`GET /transactions/screen/tasks/{task_id}`](/api-documentation/transaction-screening/get-a-task-result.md)                   | Poll for the results of an asynchronous screening task |
| [`GET /transactions/details/{transfer_id}`](/api-documentation/transaction-screening/get-a-transfer-detail.md)                | Get detailed risk information for a specific transfer  |
| [`GET /transactions/transfers/{chain_id}/{hash}`](/api-documentation/transaction-screening/get-transfers-of-a-transaction.md) | List all transfers within a transaction                |

### Customer Management

Link screened addresses and transactions to specific customers for organized compliance tracking.

| Endpoint                                                                                                      | Description                         |
| ------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| [`GET /customers/details/{customer_id}`](/api-documentation/customer/get-a-customer-detail.md)                | Get details for a specific customer |
| [`POST /customers/{customer_id}/addresses`](/api-documentation/customer/add-addresses-to-a-customer.md)       | Add addresses to a customer         |
| [`POST /customers/{customer_id}/transactions`](/api-documentation/customer/add-transactions-to-a-customer.md) | Add transactions to a customer      |

### Blacklist/Whitelist Management

Manage custom address lists to automatically flag or skip addresses during screening.

| Endpoint                                                                                                          | Description                         |
| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| [`POST /blacklists/add`](/api-documentation/blacklist-whitelist-management/add-addresses-to-blacklist.md)         | Add addresses to the blacklist      |
| [`POST /blacklists/remove`](/api-documentation/blacklist-whitelist-management/remove-addresses-from-blacklist.md) | Remove addresses from the blacklist |
| [`POST /whitelists/add`](/api-documentation/blacklist-whitelist-management/add-addresses-to-whitelist.md)         | Add addresses to the whitelist      |
| [`POST /whitelists/remove`](/api-documentation/blacklist-whitelist-management/remove-addresses-from-whitelist.md) | Remove addresses from the whitelist |

### Account Management

Query your project's API usage and quota.

| Endpoint                                                                                       | Description                    |
| ---------------------------------------------------------------------------------------------- | ------------------------------ |
| [`GET /account/usage/screening`](/api-documentation/account-management/get-screening-usage.md) | Get screening usage statistics |

## Quick Start

**1. Get your API key** — In your project workspace, go to **System → API**, then click **Generate Key**.

**2. Send your first request:**

```bash
curl -X POST {BASE_URL}/address/screen \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{
    "chainId": 1,
    "address": "0x..."
  }'
```

**3. Check the response** — If the screening completes within 10 seconds, you will receive the result directly. Otherwise, you will receive a Task ID to poll via `/addresses/screen/tasks/{task_id}` (or via `/transactions/screen/tasks/{task_id}` for transaction screening).

## Key Concepts

* **Risk Engines** — Each screening runs against multiple risk engines. Results include the risk score and risk indicators for each engine. See the [Risk Indicator List](/api-documentation/introduction/risk-indicator-list.md) for all possible indicators.
* **Asynchronous Tasks** — Batch requests and slow screenings return a Task ID. When the results are ready, retrieve them using `/addresses/screen/tasks/{task_id}` or `/transactions/screen/tasks/{task_id}`.
* **Chain ID** — Each supported blockchain has a numeric chain ID (for example, Ethereum = `1`, Bitcoin = `-1`). See [Supported Chains](/api-documentation/introduction/supported-chains.md) for the complete list.

## Next Steps

* [Authentication](/api-documentation/introduction/authentication.md) — How to authenticate your API requests
* [Rate Limits](/api-documentation/introduction/rate-limits.md) — Default rate limits for each endpoint
* [Supported Chains](/api-documentation/introduction/supported-chains.md) — Chains and their IDs
* [Changelog](/api-documentation/introduction/changelog.md) — Recent API updates
