POST
/
asset
/
list
curl --request POST \
  --url https://app.chainpatrol.io/api/v2/asset/list \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '{
  "type": "URL",
  "status": "BLOCKED",
  "startDate": "<string>",
  "endDate": "<string>",
  "per_page": 5000,
  "next_page": "<string>"
}'
{
  "assets": [
    {
      "content": "<string>",
      "type": "URL",
      "status": "UNKNOWN",
      "updatedAt": "<string>"
    }
  ],
  "next_page": "<string>"
}

The /asset/list API will soon require an API Key, whereas previously this API was usable without an API Key. Please double check you are using a ChainPatrol issued API key.

We’ve recently updated this endpoint to support pagination. If you encounter errors related to payload size, please consider using the pagination feature as described below.

Pagination

To use pagination, include the per_page and next_page parameters in your request:

  • per_page <number>: Number of items to return per page (max: 10000)
  • next_page <string>: Cursor for the next page of results

Example implementation for pagination:

async function fetchAllAssets(type, status) {
  let allAssets = [];
  let nextPage = null;
  while (true) {
    const response = await fetch(
      "https://app.chainpatrol.io/api/v2/asset/list",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "X-API-KEY": "YOUR_API_KEY_HERE",
        },
        body: JSON.stringify({
          type,
          status,
          per_page: 500,
          next_page: nextPage,
        }),
      }
    );
    const data = await response.json();
    allAssets = allAssets.concat(data.assets);
    nextPage = data.next_page;
    if (!nextPage) {
      break;
    }
  }
  return allAssets;
}
fetchAllAssets("URL", "BLOCKED")
  .then((assets) => console.log("All assets:", assets))
  .catch((error) => console.error("Error fetching assets:", error));

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 [email protected] to get an API key for your use.

Body

application/json
type
enum<string>
required
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
status
enum<string>
default:BLOCKED
Available options:
UNKNOWN,
ALLOWED,
BLOCKED
startDate
string
endDate
string
per_page
integer
Required range: 1 <= x <= 10000
next_page
string | null

Response

200
application/json
Successful response
assets
object[]
required
next_page
string | null