Watchlists
GET
Manage watchlists for ongoing monitoring of entities against KYC watchlists. Watchlists automatically check subjects at configured intervals and alert on matches or status changes.
When alerts are triggered, webhooks receive POST requests with match details in JSON format.
Overview
Watchlists allow you to:- Monitor multiple entities continuously
- Receive alerts when matches are found
- Track changes in entity status over time
- Schedule automatic checks (daily, weekly, or on update)
- Organize subjects with custom tags
- Link subjects to onboarding sessions via
session_id
Endpoints
| Method | Endpoint | Permission Required |
|---|---|---|
POST | /kyc/watchlists | watchlist:create |
GET | /kyc/watchlists | watchlist:list |
GET | /kyc/watchlists/{watchlist_id} | watchlist:read |
PATCH | /kyc/watchlists/{watchlist_id} | watchlist:update |
DELETE | /kyc/watchlists/{watchlist_id} | watchlist:delete |
POST | /kyc/watchlists/{watchlist_id}/subjects | watchlist:update |
POST | /kyc/watchlists/{watchlist_id}/subjects/batch | watchlist:update |
GET | /kyc/watchlists/{watchlist_id}/subjects | watchlist:read |
GET | /kyc/watchlists/subjects?session_id=... | watchlist:read |
GET | /kyc/watchlists/tags | watchlist:read |
PATCH | /kyc/watchlists/{watchlist_id}/subjects/{subject_id} | watchlist:update |
DELETE | /kyc/watchlists/{watchlist_id}/subjects/{subject_id} | watchlist:update |
POST | /kyc/watchlists/{watchlist_id}/monitor | watchlist:run |
Create Watchlist
Create a new watchlist with subjects to monitor.Request
Request Parameters
Response
List Watchlists
Retrieve all watchlists for your tenant with optional filtering.Request
Query Parameters
| Parameter | Type | Description |
|---|---|---|
active | boolean | If true, only return watchlists with status=‘active’ |
tags | string | Comma-separated list of tags to filter by (matches if any tag is present) |
Response
Get Watchlist Details
Retrieve detailed information about a specific watchlist.Request
Response
Update Watchlist
Update watchlist configuration.Request
Request Parameters
All parameters are optional - only include fields you want to update:Delete Watchlist
Remove a watchlist and all associated data.Request
Response
Add Subject to Watchlist
Add a single subject to an existing watchlist. Subjects are automatically assigned a TTL-based expiration based on your tenant configuration.Request
Response
Batch Add Subjects
Add multiple subjects to a watchlist in a single request. All subjects are assigned the same expiration time based on your tenant configuration.Request
Response
List Subjects
Retrieve all subjects from a watchlist with optional tag filtering.Request
Query Parameters
| Parameter | Type | Description |
|---|---|---|
tags | string | Comma-separated list of tags to filter by (matches if any tag is present) |
Response
Search Subjects by Session ID
Find all subjects linked to a specific session across all watchlists. This is useful for finding subjects that were created during a specific onboarding session.Request
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id | string | Yes | Session ID to search for |
Response
This endpoint queries the subjects table using a dedicated GSI (
session-index), which provides efficient lookups by session ID. Only active (non-expired) subjects are returned.Get Unique Tags
Retrieve all unique tags from active subjects for autocomplete functionality.Request
Response
Tags are returned in alphabetical order. Use this endpoint to power autocomplete fields for tag filtering in your UI.
Update Subject Tags
Update the tags for a specific subject in a watchlist.Request
Request Parameters
Response
Remove Subject from Watchlist
Remove a subject from a watchlist.Request
Response
Subject Fields
| Field | Type | Required | Description |
|---|---|---|---|
full_name | string | Yes | Full name of the subject |
identifier | string | No | Document ID, wallet address, email, etc. |
identifier_type | string | No | Type: “document”, “wallet”, “email”, etc. |
tags | array | No | Custom tags for categorization and filtering |
session_id | string | No | Session ID if subject was created during onboarding |
Response-only Fields
These fields are returned in responses but cannot be set directly:| Field | Type | Description |
|---|---|---|
subject_id | string | Unique identifier (UUID) |
added_at | string | ISO timestamp when the subject was added |
expires_at | integer | Unix timestamp for TTL-based auto-deletion |
Check Frequency Options
| Value | Description |
|---|---|
daily | Check all subjects once per day |
weekly | Check all subjects once per week |
on_update | Only check when subjects are added/updated |
Status Codes
| Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Missing or invalid token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Watchlist or subject not found |
| 500 | Internal Server Error |
Alert Configuration
Configure when to send alerts for watchlist events:Notification channels (webhooks, emails) are configured at the tenant level, not per-watchlist. The
alert_config only controls when to send alerts, not where. Contact support to configure your notification channels.