Add Organization Assets
Batch add multiple assets to your organization’s allowlist. Each asset is automatically parsed and classified. Assets are normally approved as ALLOWED; an asset ChainPatrol currently has BLOCKED, and requests from integration organizations, go to manual review instead. Supports optional group assignment and an optional allowlist expiry, for the whole request or per asset.
Overview
Batch add multiple assets to your organization’s allowlist. Each asset will be automatically parsed, classified by type, and approved withALLOWED status. This endpoint supports adding up to 1,000 assets per request with optional metadata like name, description, and group assignment.
Quick Start
Authentication
Include your API key in theX-API-KEY header:
Example Request
Request Body
Setting an expiry when adding
Assets that should only stay for a while, such as a partner’s site, can be given an allowlist expiry in the same request. SetexpiresAt on the request to apply one date to every asset, or on an asset to give it its own date. An asset’s own date overrides the request’s.
- The expiry is only set on assets that were added. Assets that fail to add get none.
- Each date must be in the future. If any is not, the request returns
400and nothing is added. - To change an expiry later, use Set Organization Asset Expiry.
Supported Asset Types
The endpoint automatically detects and classifies the following asset types:- URL - Full URLs with protocol (e.g.,
https://example.com) - ADDRESS - Blockchain addresses (e.g., Ethereum, Bitcoin addresses)
- PAGE - Web page identifiers
- DISCORD - Discord server or channel identifiers
- TELEGRAM - Telegram channel or group identifiers
- TWITTER - Twitter/X handles (e.g.,
@username) - INSTAGRAM - Instagram handles
- MEDIUM - Medium publication or user identifiers
- GITHUB - GitHub repository or user identifiers
- YOUTUBE - YouTube channel identifiers
- LINKEDIN - LinkedIn profile identifiers
- TWITCH - Twitch channel identifiers
- TIKTOK - TikTok handle identifiers
- EMAIL - Email addresses
Response
Success Response
Partial Success Response
When some assets succeed and others fail:Response Fields
Error Responses
400 Bad Request
Returned when the request is malformed or exceeds limits:401 Unauthorized
Returned when the API key is missing, invalid, or doesn’t have organization access:404 Not Found
Returned when a specified group ID doesn’t exist:Common Error Messages
Best Practices
Batch Operations
- Maximize throughput: Use the full 1,000 asset limit per request when bulk importing
- Handle partial failures: Always check both
successCountanderrorCountin responses - Retry failed assets: Extract failed assets from results and retry with corrected data
Asset Format
- URLs: Include protocol (
https://orhttp://)- ✅
https://example.com - ❌
example.com(will be interpreted as domain, not URL)
- ✅
- Blockchain addresses: Use full address format
- ✅
0x1234567890abcdef1234567890abcdef12345678
- ✅
- Social handles: Include the
@symbol for Twitter/social platforms- ✅
@username - ✅
username(also works)
- ✅
Metadata
- Names: Use descriptive names for easier identification in your dashboard
- Descriptions: Add context about the asset’s purpose, especially for addresses and URLs
- Groups: Organize assets by type, project, or purpose using groups
Error Handling
- Check the
resultsarray for per-asset success/failure status - Use
successCountanderrorCountfor aggregate reporting - Log failed assets with their error messages for debugging
- Implement retry logic for failed assets after correcting issues
Use Cases
Import from Spreadsheet
Add Multiple Asset Types
Notes
- Assets are automatically parsed and classified by type
- All successfully added assets receive
ALLOWEDstatus - Duplicate assets (already in your organization) will fail with an appropriate error
- The endpoint returns partial success - some assets may succeed while others fail
- Organization is automatically determined from your API key
- Group IDs must belong to your organization
- Asset validation happens during processing; invalid formats will be reported in the results
Authorizations
Your API key. This is required by most endpoints to access our API programatically. Reach out to us at support@chainpatrol.io to get an API key for your use.
Body
Add assets to organization allowlist
Batch add multiple assets to your organization's allowlist.
Each asset will be automatically parsed and classified.
Assets are normally auto-approved as ALLOWED. Two cases go to manual review
instead: an asset ChainPatrol currently has BLOCKED, because allowlisting one
is an unblock, and requests from integration organizations. The response still
reports each asset as added; the status change follows once a reviewer
approves it.
Pass expiresAt to give the assets an allowlist expiry, for example for a partner's site.
Array of assets to add (max 1000 per request)
1 - 1000 elementsOptional allowlist expiry for every asset in the request, as an ISO 8601 date-time in the future (e.g. 2027-04-30T23:59:59Z). After it passes, the assets stay on your organization for a 14-day grace period, then are removed from it; their status does not change. An asset's own expiresAt overrides this.