Skip to main content
The public API is read-only. It returns the feed and video history belonging to the authenticated Monitor YT account.

Before you begin

You need:
  • A Monitor YT account with a Pro plan
  • At least one tracked channel
  • A personal API key from Settings
Free accounts can create keys, but authenticated requests return 403 upgrade_required until the account upgrades.
1

Store your API key

Keep the key outside your source code:
export MONITOR_YT_API_KEY="myt_your_api_key"
2

Fetch feed events

curl -H "Authorization: Bearer $MONITOR_YT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":20}' \
  "https://monitoryt.com/api/public/feed"
3

Read the response

A page contains an events array and a nullable nextCursor:
{
  "events": [
    {
      "id": "665f21c09b1d8a4f30aa1234",
      "type": "video_published",
      "createdAt": 1783897200000,
      "channel": {
        "id": "665f21c09b1d8a4f30aa5678",
        "youtubeChannelId": "UCBJycsmduvYEL83R_U4JriQ",
        "title": "Example Channel",
        "thumbnailUrl": "https://yt3.ggpht.com/example"
      },
      "video": {
        "youtubeVideoId": "aqz-KE-bpKQ",
        "currentTitle": "Our biggest video yet",
        "currentThumbnailUrl": "https://i.ytimg.com/vi/aqz-KE-bpKQ/hqdefault.jpg",
        "publishedAt": 1783893600000,
        "isMembersOnly": false,
        "viewCount": 12345,
        "likeCount": 678,
        "commentCount": 90
      }
    }
  ],
  "nextCursor": "665f21c09b1d8a4f30aa1234"
}
All timestamps are Unix epoch milliseconds. Counter fields can be null when YouTube does not expose a value or Monitor YT has not collected one yet.
4

Request the next page

Pass nextCursor unchanged in the next request body. Stop when it is null.
{
  "cursor": "665f21c09b1d8a4f30aa1234",
  "limit": 20
}

Add filters

{
  "limit": 20,
  "types": ["video_published", "title_changed"],
  "channelIds": ["665f21c09b1d8a4f30aa5678"]
}
channelIds uses the Monitor YT channel.id returned in events, not the YouTube youtubeChannelId. Omit a filter array to include every value on that dimension.

Continue building