curl --request POST \
--url https://app.chainpatrol.io/api/v2/takedowns/list \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"query": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"assetType": [
"URL"
],
"takedownStatus": [
"TODO"
],
"livenessStatus": [
"UNKNOWN"
],
"sorting": [
{
"key": "updatedAt",
"direction": "asc"
}
],
"per_page": 10,
"next_page": "<string>"
}
'{
"takedowns": [
{
"id": 123,
"status": "TODO",
"createdAt": "<string>",
"updatedAt": "<string>",
"asset": {
"id": 123,
"content": "<string>",
"type": "URL",
"livenessStatus": "UNKNOWN"
},
"assignee": {
"id": 123,
"fullName": "<string>"
},
"brand": {
"id": 123,
"name": "<string>",
"slug": "<string>"
}
}
],
"next_page": "<string>"
}List takedowns for an organization using API key authentication
curl --request POST \
--url https://app.chainpatrol.io/api/v2/takedowns/list \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"query": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"assetType": [
"URL"
],
"takedownStatus": [
"TODO"
],
"livenessStatus": [
"UNKNOWN"
],
"sorting": [
{
"key": "updatedAt",
"direction": "asc"
}
],
"per_page": 10,
"next_page": "<string>"
}
'{
"takedowns": [
{
"id": 123,
"status": "TODO",
"createdAt": "<string>",
"updatedAt": "<string>",
"asset": {
"id": 123,
"content": "<string>",
"type": "URL",
"livenessStatus": "UNKNOWN"
},
"assignee": {
"id": 123,
"fullName": "<string>"
},
"brand": {
"id": 123,
"name": "<string>",
"slug": "<string>"
}
}
],
"next_page": "<string>"
}per_page and next_page parameters in your request:
per_page <number>: Number of takedowns to return per page (min: 1, max: 100)next_page <string>: Cursor for the next page of resultsasync function fetchAllTakedowns() {
let allTakedowns = [];
let nextPage = null;
while (true) {
const response = await fetch(
"https://app.chainpatrol.io/api/v2/takedowns/list",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": "YOUR_API_KEY_HERE",
},
body: JSON.stringify({
per_page: 100,
next_page: nextPage,
takedownStatus: ["TODO", "IN_PROGRESS"],
livenessStatus: ["ALIVE"],
}),
}
);
const data = await response.json();
allTakedowns = allTakedowns.concat(data.takedowns);
nextPage = data.next_page;
if (!nextPage) {
break;
}
}
return allTakedowns;
}
fetchAllTakedowns()
.then((takedowns) => console.log("All takedowns:", takedowns))
.catch((error) => console.error("Error fetching takedowns:", error));
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.
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 TODO, IN_PROGRESS, COMPLETED, CANCELLED, PENDING_RETRACTION, RETRACTION_SENT, RETRACTED, PENDING_INPUT UNKNOWN, ALIVE, DEAD Show child attributes
1 <= x <= 100Was this page helpful?