> 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 a single 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 risk engines to identify sanctioned entities, illicit fund exposure, and other compliance risks.

| Endpoint                                                                                                       | Description                                             |
| -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| [`POST /address/screen`](/api-documentation/address-screening/screen-a-single-address.md)                      | Screen a single address and get 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 detailed risk breakdown for a screened address |
| [`GET /addresses/screen/tasks/{task_id}`](/api-documentation/address-screening/get-a-task-result.md)           | Poll for results of async screening tasks               |
| [`PUT /addresses/{chain_id}/{address}`](/api-documentation/address-screening/update-an-address-info.md)        | Update custom labels or notes on an address             |

### Transaction Screening

Monitor individual transactions or batches for risk exposure across all transfers involved.

| 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 results of async screening tasks      |
| [`GET /transactions/details/{transfer_id}`](/api-documentation/transaction-screening/get-a-transfer-detail.md)                | Get detailed risk info 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 of 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** — Go to **System → API** in your project workspace and click **Generate Key**.

**2. Make 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 screening completes within 10 seconds, you get results directly. Otherwise, you receive a Task ID to poll via `/addresses/screen/tasks/{task_id}` (or `/transactions/screen/tasks/{task_id}` for transaction screening).

## Key Concepts

* **Risk Engines** — Each screening runs against multiple risk engines. Results include risk scores and risk indicators per engine. See [List of Risk Indicators](/api-documentation/introduction/risk-indicator-list.md) for all possible indicators.
* **Async Tasks** — Batch requests and slow screenings return a Task ID. Use `/addresses/screen/tasks/{task_id}` or `/transactions/screen/tasks/{task_id}` to retrieve results when ready.
* **Chain IDs** — Each supported blockchain has a numeric chain ID (e.g., Ethereum = `1`, Bitcoin = `-1`). See [Supported Chains](/api-documentation/introduction/supported-chains.md) for the full 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 per endpoint
* [Supported Chains](/api-documentation/introduction/supported-chains.md) — Chains and their IDs
* [Changelog](/api-documentation/introduction/changelog.md) — Recent API updates
