Threat Detection
List Organization Threats
List every asset your organization has reported, with the lifecycle state of each investigation: report opened, escalated, blocklisted, takedown submitted, takedown completed. Built for threat-intel platforms that poll for changes and upsert on asset ID. Supports pagination.
GET
List organization threats
Overview
List every asset reported for your organization, by your team or by ChainPatrol, with where each one stands: still under investigation, escalated to you, blocked or allowed, and how far its takedown has got. Use it to keep a threat-intel platform, SIEM or ticketing system in step with ChainPatrol. Page through it once for a backfill, then poll withupdatedSince and
upsert each row on id.
To list only confirmed threats blocked in a date range, use
/threats/list. To list unconfirmed detections, use
/detection/list.
Quick Start
Authentication
Include your API key in theX-API-KEY header. Organization API keys resolve the
organization from the key, so slug is optional for them.
Example Request
Query Parameters
Lifecycle states
state sums up each asset’s reports and the decision on it:
A decision on the asset wins over open reports: once it is blocked or allowed,
state stays there even if someone reports it again. An asset that was escalated,
decided and then reported again goes back to investigating.
The timestamps on each threat:
firstReportedAt: the first report for your organization.escalatedAt: the first time the asset was escalated to your organization, ornullif it never was.blockedAt: when the asset was blocked, ornull.takedown:nulluntil a takedown is opened.submittedAtis the first time it was filed with a provider, andcompletedAtthe first time it was completed. If the site comes back, the takedown reopens:statusgoes back toIN_PROGRESSwhilecompletedAtkeeps the first completion. Watchstatusto catch re-emergence.updatedAt: the latest change to the asset, its reports or its takedown. This is the valueupdatedSincecompares against.
Polling for changes
- Backfill. Call without
updatedSinceand follownext_pageuntil it isnull. Note the time you started. - Poll. Send
updatedSinceset a few minutes before the start of your last successful sync, and follownext_pageuntil it isnull, keeping the sameupdatedSinceon every page. Upsert each threat onid. - Advance. Use the start time of this sync as the watermark for the next one.
id, ascending, and the cursor is the last id returned,
so assets reported mid-sync land on later pages instead of shifting earlier ones. A
page can hold fewer than per_page threats while next_page is still set; keep
going until next_page is null.
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.
Query Parameters
Available options:
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, MASTODON The number of threats to return per page (max 1000)
Required range:
1 <= x <= 1000Cursor for fetching the next page of results