---
title: "List all tracked accounts"
method: GET
path: "/accounts/tracked"
tags: ["Track Accounts"]
---

# List all tracked accounts

`GET /accounts/tracked`

## Request

- Base URL: `https://viral.app/api/v1`
- URL: `https://viral.app/api/v1/accounts/tracked`
- Auth: API key in header `x-api-key`

Retrieves paginated organization tracked accounts with user details, analytics data, and project associations.

## Query parameters

- `page` number: Page number (1-based index)
- `perPage` number: Number of items per page (1-100)
- `sortCol` string: Sort column
- `sortDir` 'asc' | 'desc': Sort direction
- `search` string: Account username on the platform
- `accounts` string[], nullable: Organization account IDs
- `platforms` string[], nullable: Social media platforms (facebook, instagram, tiktok, youtube, snapchat)
- `projects` string[], nullable: Organization project IDs
- `tags` string[], nullable: Tag IDs. Custom and project tags must all match (intersection); country tags and `continent:<CODE>` values combine into one geographic group satisfied by any of them. `none:<category>` values (custom/project/country/continent) match entities WITHOUT any tag of the category. Ignored when `tagGroups` is provided.
- `tagGroups` object[], nullable: Advanced tag filter: groups combine with AND; within a group `any` matches videos carrying at least one of the tags, `all` requires every tag. `none:<category>` ids match videos without any tag of the category. Takes precedence over `tags` when provided. Also accepts the compact string form `all:orgtag_a,orgtag_b;any:systag_de,continent:EU`.
  - `mode` 'any' | 'all', required: How the group's tags combine: `any` = OR, `all` = intersection.
  - `ids` string[], required: Tag IDs, including `continent:<CODE>` and `none:<category>` values.
- `tagsMatch` 'rules' | 'videos': How the tag filter targets rows: `rules` (default) matches entity-level tag rules only; `videos` matches rows with at least one video satisfying the whole filter.
- `viewMode` 'internal' | 'competitors' | 'all'

## Response `200`

OK

- object: Paginated response containing tracked accounts with user details, project associations, analytics metadata, and maxVideos video tracking limits.
  - `data` object[], required
    - `id` string, required
    - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required
    - `platformAccountId` string, required
    - `initialUsername` string, nullable, required
    - `region` string, nullable, required
    - `maxVideos` union, required
      - unknown
      - unknown
      - unknown
      - unknown
      - unknown
      - unknown
      - unknown
      - unknown
      - unknown
      - unknown
      - unknown
      - unknown
    - `isCompetitor` boolean, required
    - `tiktokAdvancedScrapingEnabled` boolean, required
    - `orgCreatorId` string, nullable, required
    - `pausedAt` string, date-time, nullable, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `actorType` 'user' | 'system' | 'api_token', required
    - `userId` string, required
    - `orgId` string, required
    - `lastErrorAt` string, date-time, nullable, required
    - `lastErrorCode` 'NOT_FOUND' | 'INVALID_DATA' | 'PRIVATE_CONTENT' | 'RESTRICTED' | 'UNSUPPORTED_CONTENT' | 'APPLE_REQUIRED_AGREEMENT' | 'APPLE_INVALID_VENDOR' | 'APPLE_INVALID_CREDENTIALS', nullable, required
    - `username` string, nullable, required
    - `displayName` string, nullable, required
    - `individualVideos` number
    - `analyticsLatestLoadAt` string, nullable, required
    - `hasAnalytics` boolean, required: Whether analytics have ever loaded for this account. Unlike analyticsLatestLoadAt, which stays null for a load older than the account's addition, this is true for any loaded account
    - `latestVideoPublishedAt` string, nullable, required: Timestamp of the account's most recently published video (ISO 8601)
    - `excludedVideosCount` number
    - `totalVideosTracked` number, nullable, required
    - `totalVideosRetained` number, nullable, required
    - `totalVideosPublished` number, nullable, required
    - `user` object, nullable, required
      - `id` string, required
      - `name` string, required
      - `image` string, nullable, required
      - `firstName` string, required
      - `lastName` string, required
      - `role` string, nullable, required
    - `creator` object, nullable, required
      - `id` string, required: Organization creator ID with orgcre_ prefix
      - `user` object, required
        - `id` string, required
        - `name` string, required
        - `image` string, nullable, required
        - `email` string, required
      - `accounts` object[], required
        - `id` string, required
        - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required
        - `platformAccountId` string, required
        - `isCompetitor` boolean
        - `username` string, nullable, required
        - `displayName` string, nullable
        - `analyticsDataRefreshedAt` string, nullable
    - `projects` object[]
      - `id` string, required: Organization project ID with orgproj_ prefix
      - `name` string, required
      - `logo` string, nullable, required
    - `tags` object[]: Account-level tag rules applied to every current and future video of the account. Omitted when the tag lookup fails.
      - `id` string, required
      - `name` string, required
      - `description` string, nullable, required
      - `scope` 'system' | 'org' | 'project', required: Tag scope
      - `color` string, nullable, required: Tag color in hex format
      - `kind` string, nullable, required
      - `refId` string, nullable, required
      - `logo` string, nullable, required
      - `viaCreator` object, nullable
        - `id` string, required: Organization creator ID with orgcre_ prefix
        - `name` string, required
    - `videoTags` object[]: Tags carried by some of the account's videos without an account-level rule, each with the number of videos carrying it. Omitted when the tag lookup fails.
      - `id` string, required
      - `name` string, required
      - `description` string, nullable, required
      - `scope` 'system' | 'org' | 'project', required: Tag scope
      - `color` string, nullable, required: Tag color in hex format
      - `kind` string, nullable, required
      - `refId` string, nullable, required
      - `logo` string, nullable, required
      - `videoCount` integer, required
  - `pageCount` number, required: Total number of pages
  - `totalRows` number, required: Total number of rows

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `404`: 404
- `408`: 408
- `429`: 429
- `500`: 500

---

[API](https://skmtc.dev/viral/apis/viral-app-api.md) · [All operations](https://skmtc.dev/viral/apis/viral-app-api/llms.txt) · [OpenAPI document](https://skmtc.dev/viral/apis/viral-app-api/revisions/31e97fa79ef1?raw)
