Skip to main content
POST
Add assets to organization allowlist

Overview

Batch add multiple assets to your organization’s allowlist. Each asset will be automatically parsed, classified by type, and approved with ALLOWED 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 the X-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. Set expiresAt 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 400 and 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 successCount and errorCount in responses
  • Retry failed assets: Extract failed assets from results and retry with corrected data

Asset Format

  • URLs: Include protocol (https:// or http://)
    • ✅ 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 results array for per-asset success/failure status
  • Use successCount and errorCount for 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 ALLOWED status
  • 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

X-API-KEY
string
header
required

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

application/json

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.

assets
object[]
required

Array of assets to add (max 1000 per request)

Required array length: 1 - 1000 elements
expiresAt
string<date-time>

Optional 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.

Response

Successful response

Batch add operation results

results
object[]
required

Results for each asset

successCount
number
required

Number of assets successfully added

errorCount
number
required

Number of assets that failed to add