Asset List
Answers ‘which assets does ChainPatrol hold at this status?’. Returns a paginated list defaulting to BLOCKED, optionally narrowed to a single type and to a date range. Omit type to sweep every asset type on one cursor, which is the cheapest way to mirror the whole blocklist. Built for bulk export and sync — pass next_page from the previous response to continue. To check one specific asset, use /asset/check instead; for an organization’s own monitored assets, use /organization/assets.
Quick Start
Authentication
Include your API key in theX-API-KEY header:
Asset Types
type is optional. Omit it to return assets of every asset type on a single
pagination cursor:
AssetType enum. Each returned asset
still carries its own type, so you can bucket the results client-side.
Supply type to narrow the sweep to a single asset type, exactly as before:
"type": null is
rejected with a 400, so a client that builds the body from a struct should leave
the key out rather than setting it to null.
per_page asks for.
Larger values are accepted but clamped, so always keep following next_page
until it comes back null rather than assuming one page holds everything.
Responses are also capped at 4MB.Sync Strategy and Removals
Recommended Approaches
- Monitor allowlist and unknown list for removals: Check both the allowlist and unknown list endpoints periodically to detect assets that have been removed from the blocklist.
- Periodic full sync: Perform a complete sync of the full blocklist at regular intervals (e.g., hourly or daily) to catch any missed changes.
- Hybrid approach: Use time-based filtering for frequent updates combined with periodic full syncs for comprehensive coverage.
Why This Matters
Asset status changes can move assets between different lists (blocklist, allowlist, unknown). Time-based queries on a single endpoint may not capture these transitions, potentially leaving your local cache with outdated information about blocked assets that should no longer be blocked.Soft-Deleted Assets
Assets that ChainPatrol has soft-deleted are excluded from every response, so a mirror built from this endpoint matches ChainPatrol’s own blocklist snapshot. This is a change in behaviour: the endpoint previously returned soft-deleted assets. A mirror built before the change may be holding rows that will never appear again — a full re-sync clears them.Pagination
To use pagination, include theper_page and next_page parameters in your request:
per_page <number>: Items per page. Accepted up to 10000, but a response returns at most 1000 — always follownext_page.next_page <string>: Cursor for the next page of results
Example implementation for pagination:
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
List asset request body
With no startDate, this returns every matching asset regardless of age — there
is no implicit one-day window. Pass startDate to get a delta instead.
You can also choose a startDate and endDate for the range of asset updates, most
timestamp formats should work, we use Luxon
for parsing the dates.
Asset type to retrieve. Omit the field entirely to retrieve assets of every type in a single paginated sweep; an explicit null is rejected.
URL, PAGE, ADDRESS, DISCORD, LINKEDIN, TWITTER, FACEBOOK, YOUTUBE, REDDIT, TELEGRAM, GOOGLE_APP_STORE, APPLE_APP_STORE, AMAZON_APP_STORE, MICROSOFT_APP_STORE, TIKTOK, INSTAGRAM, THREADS, MEDIUM, CHROME_WEB_STORE, MOZILLA_ADDONS, OPERA_ADDONS, EMAIL, PATREON, OPENSEA, FARCASTER, IPFS, GOOGLE_FORM, WHATSAPP, DISCORD_USER, QUORA, GITHUB, TEACHABLE, SUBSTACK, DEBANK, TAWK_TO, JOTFORM, PRIMAL, BLUESKY, SNAPCHAT, DESO, PINTEREST, FLICKR, GALXE, VELOG, NPM, PYPI, HEX, DOCKER_HUB, VOCAL_MEDIA, TECKFINE, TENDERLY, HACKMD, ETSY, ZAZZLE, BASENAME, BILIBILI_TV, VIMEO, DAILYMOTION, PHONE_NUMBER, SLACK, CALENDLY, NGROK, RARIBLE, RUST_PACKAGE, FLATHUB, VIDLII, VEVIOZ, ISSUU, SOUNDCLOUD, ZAPPER, REDNOTE, SAMSUNG_APP_STORE, HUAWEI_APP_STORE, XIAOMI_APP_STORE, TENCENT_APP_STORE, OPPO_APP_STORE, VIVO_APP_STORE, F_DROID, GOOGLE_AD, BING_AD, TWITCH, BEHANCE, ZORA, META_AD, SIGNAL, DEVIANTART, BANDCAMP, ARCHIVE_ORG, FIVE_HUNDRED_PX, LUMA, SMARTMONEYMATCH, APK_GOLD, GLASSDOOR, PUMP_FUN, TUMBLR Status of the assets to retrieve
UNKNOWN, ALLOWED, BLOCKED The start date to list assets from. This should be in the format YYYY-MM-DD and is inclusive.
The end date to list assets from. This should be in the format YYYY-MM-DD and is inclusive.
The number of assets to return per page
1 <= x <= 10000Cursor for fetching the next page of results