---
title: "List all tracked videos"
method: GET
path: "/videos/tracked"
tags: ["Track Individual Videos"]
---

# List all tracked videos

`GET /videos/tracked`

## Request

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

Retrieves paginated organization tracked videos with user details and analytics data.

## 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
- `platforms` string[], nullable: Social media platforms (facebook, instagram, tiktok, youtube, snapchat)
- `search` string
- `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.
- `viewMode` 'internal' | 'competitors' | 'all'

## Response `200`

OK

- object: Paginated response containing tracked videos with user details and analytics metadata
  - `data` object[], required
    - `id` string, required
    - `orgAccountId` string, required
    - `platformVideoId` string, required
    - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', 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
    - `accountDisplayName` string, nullable, required
    - `caption` string, nullable, required: Video caption from analytics; null until the first sync completes.
    - `thumbnailUrl` string, nullable, required
    - `contentType` string, nullable, required
    - `analyticsLatestLoadAt` string, nullable, required
    - `orgAccountMaxVideos` integer, required
    - `platformAccountId` string, required
    - `isCompetitor` boolean, required: Whether the tracked account is marked as a competitor
    - `videoTags` object[]: Tags effective on the video, including suppressed automated assignments (isSuppressed). 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
      - `sourceType` 'manual' | 'account_rule' | 'workflow' | 'ai' | 'creative', required: Where the tag on this video comes from: manual (added to the video), account_rule (a tag on its account or creator), workflow (a tag workflow), ai (an AI tagging rule) or creative (a tag on the creative the video is a copy of, which every copy carries; removing it from one copy opts only that copy out)
      - `isSuppressed` boolean, required
      - `viaCreator` object, nullable
        - `id` string, required: Organization creator ID with orgcre_ prefix
        - `name` string, 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
  - `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)
