trackagoat logotrackagoat/Docs

Getting started

  • Welcome
  • Quickstart
  • Core concepts

Guides

  • Creators
  • Videos
  • Campaigns
  • Creator Goals
  • Tracking Inbox
  • Content calendar
  • How scraping works
  • Analytics & metrics
  • Similar creator pools
  • Over-posting & suppression
  • Program Health
  • Sentiment Radar
  • API keys
  • Limits & plan tiers
  • Notifications
  • Payouts

API reference

  • Overview
  • Authentication
  • Errors
  • Projects
  • Creators
  • Videos
  • Campaigns
  • Analytics
  • Aggregate Analytics
  • Goal Compliance
  • Payouts
  • Schema

For agents

  • Agent guide
  • Data model
  • MCP & tooling

Platform

  • Brand
  • Changelog
  • Support
DocsAPI reference

Videos

Add, list, update, and delete tracked videos. Trigger scrapes and manage tracking status.

PreviousCreatorsNextCampaigns

On this page

  • GET /api/v1/videos
  • Request
  • Query parameters
  • Response fields
  • POST /api/v1/projects/{projectId}/videos
  • PATCH /api/v1/videos/{id}
  • Body
  • DELETE /api/v1/videos/{id}
  • POST /api/v1/videos/{id}/scrape
  • POST /api/v1/videos/{id}/tracking-disable
  • POST /api/v1/projects/{projectId}/videos/bulk-tracking-disable
  • Video time-series analytics

GET /api/v1/videos

List tracked videos in your organization. Videos with tracking_status = "excluded" are never returned.

Request

bash
curl -H "Authorization: Bearer tga_<key>" \
  "https://www.trackagoat.com/api/v1/videos?project_id=<uuid>"

Query parameters

ParameterTypeDefaultDescription
project_iduuid:Filter to a specific project
creator_iduuid:Filter to a specific creator
limitnumber50Items per page (max 100)
cursorstring:Pagination cursor

Response fields

FieldTypeDescription
iduuidVideo ID
project_iduuidProject this video belongs to
creator_iduuid | nullCreator this video belongs to (null for direct adds)
tiktok_video_idstringTikTok's internal video ID
urlstringFull TikTok URL
title

POST /api/v1/projects//videos

Add one TikTok video URL or a bulk array (up to 50). Requires the write scope. Dispatches a video-stats scrape automatically.

bash
curl -X POST \
  -H "Authorization: Bearer tga_<key>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"url": "https://www.tiktok.com/@charlidamelio/video/7123456789"}' \
  "https://www.trackagoat.com/api/v1/projects/<projectId>/videos"

Bulk:

bash
-d '{"videos": [{"url": "https://www.tiktok.com/@\u2026/video/111"}, {"url": "https://www.tiktok.com/@\u2026/video/222"}]}'

PATCH /api/v1/videos/

Update a video's metadata. At least one field is required. Requires the write scope.

bash
curl -X PATCH \
  -H "Authorization: Bearer tga_<key>" \
  -H "Content-Type: application/json" \
  -d '{"readme": "Strong performance. Boosted by trending audio.", "tracking_status": "included"}' \
  https://www.trackagoat.com/api/v1/videos/<uuid>

Body

FieldTypeDescription
titlestringOverride the video title.
descriptionstringShort notes (max 5 000 chars).
readmestring | nullMarkdown notes. Pass null to clear.
tracking_statusstringOne of auto_tracked, included, excluded, direct_add.

DELETE /api/v1/videos/

Permanently delete a video. Requires the write scope.

bash
curl -X DELETE \
  -H "Authorization: Bearer tga_<key>" \
  https://www.trackagoat.com/api/v1/videos/<uuid>

POST /api/v1/videos//scrape

Trigger a manual video-stats scrape. Requires the write scope.

bash
curl -X POST \
  -H "Authorization: Bearer tga_<key>" \
  https://www.trackagoat.com/api/v1/videos/<uuid>/scrape

POST /api/v1/videos//tracking-disable

Disable tracking for a video without deleting it. Requires the write scope.

bash
curl -X POST -H "Authorization: Bearer tga_<key>" \
  https://www.trackagoat.com/api/v1/videos/<uuid>/tracking-disable

Use /tracking-enable to re-enable, and /tracking-unexempt to remove the exemption flag.


POST /api/v1/projects//videos/bulk-tracking-disable

Disable tracking for up to 200 videos in one call. Requires the write scope.

bash
curl -X POST \
  -H "Authorization: Bearer tga_<key>" \
  -H "Content-Type: application/json" \
  -d '{"video_ids": ["<uuid1>", "<uuid2>"]}' \
  "https://www.trackagoat.com/api/v1/projects/<projectId>/videos/bulk-tracking-disable"

Use /bulk-tracking-enable to re-enable. Pass "exempt": true to also mark videos as exempt from auto-expiry.


Video time-series analytics

There is no per-video stats endpoint. Use the unified Analytics endpoint with entity=video for view, engagement, and growth time-series.

bash
# Daily new views for a video
curl -H "Authorization: Bearer tga_<key>" \
  "https://www.trackagoat.com/api/v1/analytics?entity=video&entity_id=<uuid>&metric=views&mode=new&granularity=day"
 
# Engagement rate (derived)
curl -H "Authorization: Bearer tga_<key>" \
  "https://www.trackagoat.com/api/v1/analytics?entity=video&entity_id=<uuid>&metric=engagement_rate_by_views&mode=rate"

engagement_rate_by_followers is not supported for video entities — use a creator or campaign entity instead. See the Analytics API reference for the full metric and parameter list.

string | null
Video title (when available from TikTok)
descriptionstring | nullTeam notes / agent context
readmestring | nullMarkdown notes (rendered in the Notes tab)
metadataobjectAgent-writable structured data
thumbnail_urlstring | nullProxied thumbnail URL
view_countnumberCurrent view count (latest snapshot)
like_countnumberCurrent like count
comment_countnumberCurrent comment count
share_countnumberCurrent share count
tracking_statusstringOne of: auto_tracked, pending_review, included, excluded, direct_add
posted_atISO 8601 | nullWhen the video was originally posted on TikTok
last_scraped_atISO 8601 | nullWhen stats were last refreshed
created_atISO 8601When video was added to trackagoat
updated_atISO 8601Last update