> ## Documentation Index
> Fetch the complete documentation index at: https://chainpatrol.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List Followed Assets

> Every asset the person behind these credentials follows in this organization, newest first, with its current status and this organization's takedown. Poll it to see status changes without email. Needs a user-scoped API key or a signed-in session.

## Overview

List every asset you follow in an organization, newest first, with each asset's
current status and your organization's takedown for it.

Use it to see status changes without waiting for email: poll it and compare `status`
and `takedown.status` with what you saw last time. Each person can follow at most 100
assets per organization, so the list is never paginated.

It needs a user-scoped API key or a signed-in session,
and shows only **your** follows — not those of other people in your organization.

## Quick Start

### Authentication

Include your user-scoped API key in the `X-API-KEY` header:

```bash theme={null}
X-API-KEY: <api-key>
```

### Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET 'https://app.chainpatrol.io/api/v2/asset/follows' \
    -H 'X-API-KEY: <api-key>'
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch("https://app.chainpatrol.io/api/v2/asset/follows", {
    headers: { "X-API-KEY": "<api-key>" },
  });

  const { follows, followCount, limit } = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://app.chainpatrol.io/api/v2/asset/follows",
      headers={"X-API-KEY": "<api-key>"},
  )
  data = response.json()
  ```
</CodeGroup>

## Query Parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `slug` | `string` | No | Organization slug. Required only when your credentials can reach more than one organization. |

## Response

```json theme={null}
{
  "follows": [
    {
      "assetId": 4175269,
      "content": "your-brand-login.example",
      "type": "URL",
      "status": "BLOCKED",
      "deleted": false,
      "followedAt": "2026-10-06T22:34:47.912Z",
      "takedown": { "id": 8812, "status": "IN_PROGRESS" }
    }
  ],
  "followCount": 1,
  "limit": 100,
  "warnThreshold": 90,
  "canFollowMore": true,
  "warning": null
}
```

| Field | Type | Description |
| - | - | - |
| `follows[].assetId` | `number` | Asset ID. |
| `follows[].content` | `string` | Asset content (URL, handle, address, …). |
| `follows[].type` | `string` | Asset type. |
| `follows[].status` | `string` | Current asset status: `UNKNOWN`, `ALLOWED` or `BLOCKED`. |
| `follows[].deleted` | `boolean` | The asset was deleted. It sends no more emails but still counts toward `limit` until you unfollow. |
| `follows[].followedAt` | `string` | When you started following the asset. |
| `follows[].takedown` | `object \| null` | Your organization's takedown for the asset — its `id` and `status` — or `null` if there is none. |
| `followCount` | `number` | How many assets you follow in this organization. |
| `limit`, `warnThreshold`, `canFollowMore`, `warning` | | Your follow limit, as in [Follow Asset](/docs/external-api/asset-follow#response). |

## Related

* [Follow Asset](/docs/external-api/asset-follow)
* [Unfollow Asset](/docs/external-api/asset-unfollow)


## OpenAPI

````yaml GET /asset/follows
openapi: 3.0.3
info:
  title: ChainPatrol External API - OpenAPI 3.0
  description: ChainPatrol External API documentation
  version: 2.0.0
servers:
  - url: https://app.chainpatrol.io/api/v2
security: []
tags:
  - name: asset
  - name: report
  - name: dark-web
externalDocs:
  url: https://chainpatrol.com/docs
paths:
  /asset/follows:
    get:
      tags:
        - asset
      summary: List followed assets
      description: >-
        Every asset the person behind these credentials follows in this
        organization, newest first, with its current status and this
        organization's takedown. Poll it to see status changes without email.
        Needs a user-scoped API key or a signed-in session.
      operationId: assetFollowsList
      parameters:
        - in: query
          name: slug
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  follows:
                    type: array
                    items:
                      type: object
                      properties:
                        assetId:
                          type: integer
                        content:
                          type: string
                        type:
                          type: string
                          enum:
                            - 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:
                          type: string
                          enum:
                            - UNKNOWN
                            - ALLOWED
                            - BLOCKED
                          description: Current asset status
                        deleted:
                          type: boolean
                          description: >-
                            The asset was deleted. It sends no more emails but
                            still counts toward `limit` until unfollowed.
                        followedAt:
                          type: string
                          description: When this person started following the asset
                        takedown:
                          type: object
                          nullable: true
                          properties:
                            id:
                              type: integer
                            status:
                              type: string
                              enum:
                                - TODO
                                - IN_PROGRESS
                                - COMPLETED
                                - CANCELLED
                                - PENDING_RETRACTION
                                - RETRACTION_SENT
                                - RETRACTED
                                - PENDING_INPUT
                                - PENDING_EVIDENCE
                          required:
                            - id
                            - status
                          description: >-
                            This organization's takedown for the asset, or null
                            if there is none
                      required:
                        - assetId
                        - content
                        - type
                        - status
                        - deleted
                        - followedAt
                        - takedown
                  followCount:
                    type: integer
                    description: How many assets this person follows in this organization
                  limit:
                    type: integer
                    description: The most assets one person may follow
                  warnThreshold:
                    type: integer
                    description: The count from which `warning` is set
                  canFollowMore:
                    type: boolean
                    description: >-
                      False once `followCount` reaches `limit`; following more
                      is refused
                  warning:
                    type: string
                    nullable: true
                    description: >-
                      Set from `warnThreshold` upward, asking the caller to
                      unfollow assets
                required:
                  - follows
                  - followCount
                  - limit
                  - warnThreshold
                  - canFollowMore
                  - warning
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      security:
        - ApiKey: []
components:
  schemas:
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.NOT_FOUND:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Not found
        code:
          type: string
          description: The error code
          example: NOT_FOUND
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Not found error (404)
      description: The error information
      example:
        code: NOT_FOUND
        message: Not found
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-KEY
      description: >-
        Your API key. This is required by most endpoints to access our API
        programatically. Reach out to us at
        [support@chainpatrol.io](mailto:support@chainpatrol.io?subject=Re:%20API%20Key%20for%20SDK&body=Company:%20%0AName:%20%0APurpose:%20)
        to get an API key for your use.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.