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

# Fetch video data

> Retrieve current metadata, creative events, and public stat samples for tracked videos.

`POST /api/public/videos` returns detailed history for up to 20 YouTube videos.
Each video must belong to a channel the authenticated Pro account currently tracks.

## Request body

```json theme={null}
{
  "videoIds": ["aqz-KE-bpKQ", "jNQXAC9IVRw"]
}
```

`videoIds` must contain 1–20 unique YouTube video IDs. Pass the video ID itself,
not a full YouTube URL.

## Response

```json theme={null}
{
  "videos": [
    {
      "video": {
        "youtubeVideoId": "aqz-KE-bpKQ",
        "currentTitle": "Example title",
        "currentThumbnailUrl": "https://i.ytimg.com/vi/aqz-KE-bpKQ/hqdefault.jpg",
        "publishedAt": 1783893600000,
        "isMembersOnly": false,
        "viewCount": 12345,
        "likeCount": 678,
        "commentCount": 90,
        "channel": {
          "id": "665f21c09b1d8a4f30aa5678",
          "youtubeChannelId": "UCBJycsmduvYEL83R_U4JriQ",
          "title": "Example Channel",
          "thumbnailUrl": null
        }
      },
      "firstSeenAt": 1783897200000,
      "historyWindowDays": 60,
      "isGraphLocked": false,
      "events": [],
      "statSamples": [
        {
          "viewCount": 12345,
          "likeCount": 678,
          "commentCount": 90,
          "createdAt": 1783897200000
        }
      ]
    }
  ],
  "missingVideoIds": ["jNQXAC9IVRw"]
}
```

## Field semantics

| Field               | Meaning                                                                                                               |
| ------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `publishedAt`       | YouTube's public video publish time, in Unix epoch milliseconds.                                                      |
| `firstSeenAt`       | When Monitor YT first began recording the video.                                                                      |
| `historyWindowDays` | Number of history days available to the caller.                                                                       |
| `isGraphLocked`     | Whether stat samples are withheld by the plan. Authenticated public API callers are Pro, so this is normally `false`. |
| `events`            | Creative and visibility events inside the history window, newest first.                                               |
| `statSamples`       | Public view, like, and comment observations, oldest first.                                                            |

Counter values can be `null`. Samples are discrete observations and may have
uneven spacing as the collection cadence slows with video age.

## Missing videos

Unknown IDs and videos outside the account's tracked channels are omitted from
`videos` and returned in `missingVideoIds`. The API intentionally does not reveal
which of those two cases applied.

The endpoint is batched rather than paginated. Split larger input sets into groups
of at most 20 and respect [rate limits](/errors-and-rate-limits).
