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
DocsPlatform

Changelog

What's new in trackagoat.

PreviousBrandNextSupport

On this page

  • 2026-06-10: Always-accurate plan limits
  • 2026-06-10: Clearer labels across the app
  • 2026-06-10: Security & access-control hardening
  • 2026-06-10: Photo carousels tracked correctly
  • 2026-06-10: Complete post capture — no more permanently-missed videos
  • 2026-06-10: Platform-wide reliability and data-accuracy audit
  • 2026-06-02: Health alerts are now logged and triageable
  • 2026-06-02: v1 API — full write coverage
  • 2026-05-20: System status page
  • 2026-05-20: Goal data advisories
  • 2026-05-19: Goals payouts now evaluate 48 hours after period close
  • 2026-05-16: Re-add a deleted creator by handle
  • 2026-05-16: Video tracking expiry rules
  • 2026-05-16: System-disabled creators visible to org admins
  • 2026-05-16: Edit creator TikTok handle
  • 2026-05-16: Operator email alerts
  • 2026-05-13: Sentiment Radar
  • 2026-05-13: Video Comments tab
  • 2026-04-30: Analytics section
  • 2026-04-19: Internal & public docs
  • 2026-04-17: Admin Control Plane
  • 2026-04-11: Multi-org support
  • 2026-04-11: API keys v2
  • 2026-04-10: Limits & plan tiers
  • 2026-04-08: Initial launch

2026-06-10: Always-accurate plan limits

The Limits & plan tiers page now reads tier values straight from the live plan configuration instead of a hand-maintained table, so it can never drift from the limits actually in force. When the team adjusts a tier, the docs update immediately. This pass also surfaced and corrected several stale values the old static table had been showing.

2026-06-10: Clearer labels across the app

A pass over the whole interface to make labels and wording clearer and more consistent. Notable renames you'll see:

  • The Tracking section (was "Primitives") groups Campaigns, Creators, and Videos.
  • Payouts (was "Payment Management") in the sidebar.
  • Tracking Gaps (was "Video Parity") in Program Health, with plain-language explanations.
  • Auto-Disabled (was "System Disabled") for creators we automatically pause after repeated failed updates.
  • Update Now / Data Freshness / Update Failures (was "Scrape …") and Find New Videos (was "Discover New Videos").
  • The creators list now shows Tracked Posts (posts in your program), and the dashboard shows Total Followers.

No functionality changed — only wording.

2026-06-10: Security & access-control hardening

Several access-control fixes following a full security review:

  • Closed a permission gap that could have let a signed-in user grant themselves access to an organization or project they weren't a member of.
  • API keys now strictly honor their scope: a read-only key can no longer create, edit, or delete payout configuration (it receives a clear "write scope required" error).
  • Locked down internal database functions and tightened tenant scoping on analytics so data can never be read across organizations.
  • Account impersonation (used only by platform support) is now verified on every request and cannot be spoofed.

2026-06-10: Photo carousels tracked correctly

Fixed a class of bugs affecting TikTok photo (carousel) posts. A regression had caused photo posts discovered since early June to be stored as regular videos, which put them on the wrong (too-frequent) scrape schedule and mislabeled them throughout the app. 411 affected posts were corrected, and the underlying causes were fixed: photo posts are now reliably classified, always get a valid /photo/ link, are no longer dropped during fallback discovery, and can't record a corrupted zero-view reading from a partial page load. Photo posts now also scrape on their intended (cost-efficient) cadence.

2026-06-10: Complete post capture — no more permanently-missed videos

Discovery now guarantees every reachable post is eventually captured, closing a class of permanent gaps.

Previously, routine discovery stopped scanning a creator's history as soon as it reached a video it already knew about. That meant if a post was ever missed — during a posting burst, a TikTok block, or before a creator's tracking start date was backdated — it became a permanent hole that no amount of waiting would fill.

Now a cost-bounded reconcile runs continuously in the background: each creator periodically gets a deep, full-history re-scan that fills any gap it finds, prioritizing creators whose captured post count is furthest below their TikTok profile count. The existing backlog of missed posts drains automatically over the first cycle. This adds only a small, capped amount of scraping work — each creator is deep-reconciled at most once per ~30 days, and creators with detected gaps jump the queue.

2026-06-10: Platform-wide reliability and data-accuracy audit

A holistic audit pass across the entire platform, focused on data completeness, accuracy, and security:

  • Scrape accuracy — failed video scrapes are no longer recorded as zero stats (previously a TikTok timeout could zero out comment/share/save counts and write a false dip into stats history). Stats history is now fully idempotent under retries.
  • Metadata no longer disappears — captions, posting dates, and thumbnails are no longer wiped when a creator's scrape falls back to the secondary data source; posting dates are also derived from the video ID when TikTok omits them.
  • Photo carousels can be added directly — /photo/ URLs now work in add-video (previously rejected).
  • Creator protection — large scrape batches are chunked so healthy creators at the tail of a batch can no longer be miscounted as failing (and eventually auto-disabled); videos of disabled creators stop consuming scrape budget.
  • Fixed dead UI — campaign Top Videos / Top Creators widgets, the Disabled Creators page, and the dashboard refresh countdown were silently showing empty states for all users.
  • Payout exports — CSV exports no longer drop the final day of the selected range.
  • Security hardening — tightened database-level access controls across more than 100 internal functions, partition tables, and event feeds, plus several authorization fixes in the API layer.

2026-06-02: Health alerts are now logged and triageable

Warning alerts from the daily and hourly health checks are now persisted to the health_alerts database table instead of existing only in email. Each alert type gets one open row that re-fires bump (with an occurrence count), and alerts auto-resolve when the underlying issue clears. A new Claude Code skill (/health-alerts) provides end-to-end triage: list open warnings, investigate root causes by type, and resolve with a note once fixed.


2026-06-02: v1 API — full write coverage

The trackagoat API now supports writes across every resource, not just payouts and annotations.

New write endpoints (all require Authorization: Bearer tga_<key> with the write scope):

  • Creators — add (single or bulk up to 50), update, soft-delete, trigger scrape, bulk re-enable/remove
  • Videos — add (single or bulk up to 50), update, hard-delete, trigger scrape, toggle tracking, bulk tracking operations
  • Campaigns — create, update, delete, add/remove items
  • Projects — create, update, inbox approve/exclude
  • Goals — create, update, delete
  • Organizations — create org, manage members and invitations, issue/revoke API keys
  • Payouts — receipt upload URL (structure/method/payment/accrual CRUD was already available)
  • Admin — platform-admin endpoints for creator management, limit overrides, plan tiers, user bans, scrape jobs (require admin scope)

New safeguards on all write calls:

  • Scopes — keys now have explicit read, write, and admin scopes (existing keys grandfathered to read + write)
  • Idempotency — send Idempotency-Key on POSTs; replays return the cached response for 24 h
  • Audit log — every write is recorded in api_audit_log, visible to org admins

OpenAPI spec: GET /api/v1/openapi.json — import into Postman, Insomnia, or any OpenAPI-compatible tool.


2026-05-20: System status page

trackagoat now has a public status page at trackagoat.com/status. It shows live operational status for four core subsystems — Database, Scraping Pipeline, Background Queue, and Scraper Worker — and links out to the status pages of external dependencies (Supabase, Vercel, Apify, Google Cloud). The page auto-refreshes every 60 seconds. A live status pill also appears in the site footer.


2026-05-20: Goal data advisories

Goals now show a small amber caution icon when the displayed progress may not be final. Hover it to see an explanation. Four situations trigger the advisory:

  • Period in progress — the week or month hasn't ended yet; actual counts will likely grow.
  • Period recently closed — the period ended within the last 48 hours; late-period posts may still be processing.
  • Stats may be stale — the creator hasn't been scraped recently; views, engagement, or follower counts may undercount.
  • Goal not yet started — the goal's start date is still in the future.

The advisory is also available in the API: the advisory object is included on every goal compliance result, and a with_advisories count is added to the aggregate goal-compliance endpoint. A new GET /api/v1/projects/:id/goal-compliance endpoint returns per-goal results with full advisory data for each creator.


2026-05-19: Goals payouts now evaluate 48 hours after period close

Goal-based payout accruals are now computed roughly 48 hours after the period ends, rather than as soon as scrapers finish. This gives TikTok's index time to surface posts made in the final hours of a period so they're counted correctly.

If you previously saw goal payouts appear on Monday morning for a Sunday-night period close, expect them to appear Tuesday morning instead. The timing is automatic — no action needed on your end.


2026-05-16: Re-add a deleted creator by handle

Deleting a creator and then re-adding the same TikTok handle now reactivates the existing record (preserving history) instead of requiring manual intervention. A "Creator reactivated" confirmation appears so you know prior data was kept. Any prior auto-disable state is also cleared so scraping resumes immediately.


2026-05-16: Video tracking expiry rules

Org admins can now set an age-based rule that automatically stops tracking videos once they reach a certain age, freeing up tracked-video limit slots for newer content.

  • Org Admin → Video Expiry: new settings tab to enable the rule, set the threshold (days/weeks/months), and preview exactly how many existing videos would be expired before saving.
  • "Apply to existing videos now" toggle: expire matching videos immediately on save, or only apply the rule going forward.
  • Tracking Disabled badge (red): appears on every expired video in the project list, video detail page, and creator videos tab. Hover for a full explanation of why tracking stopped (age rule or manual action) plus admin actions.
  • Expires in Xd badge (amber): videos within 7 days of their expiry threshold show a pre-warning badge so admins can exempt important videos before they go.
  • Exempt badge (green): admins can manually re-enable any expired video and permanently exempt it from rules. The exemption can be removed at any time.
  • Bulk actions: select multiple videos in the project list to disable tracking or re-enable & exempt in one step.
  • Limit count fix: tracked-video limits now correctly exclude expired videos and non-tracked statuses (excluded, pending review). This may free up capacity you didn't know you had.

2026-05-16: System-disabled creators visible to org admins

When trackagoat auto-pauses scraping for a creator (after 5 consecutive failures), org admins can now see, understand, and act on it: without waiting for platform admin intervention.

  • "Auto-Disabled" badge appears on the creator list, creator detail header, and in Program Health: hoverable with a full explanation of why updates stopped.
  • Three reason buckets distinguish Account Deleted, Account Private, and Unreachable with tailored copy and guidance.
  • Re-enable action is available to org admins from the badge tooltip, the row actions menu, and the new Tools → Auto-Disabled dedicated page. A 24-hour per-creator cooldown prevents spam.
  • Program Health shows a new dismissible alert and a Auto-Disabled watchlist widget.
  • In-app notification goes to all org admins the moment a creator is auto-disabled.
  • Creator changelog records both the auto-disable event and every re-enable (org admin or platform admin).
  • Bulk actions: select multiple disabled creators to re-enable or remove them in one step.

2026-05-16: Edit creator TikTok handle

You can now rename a creator's TikTok handle when they re-brand or change accounts. Open any creator → Info tab → TikTok Handle card, enter the new handle, and confirm.

  • Profile data (display name, avatar, follower count, bio) is cleared and a fresh scrape is queued automatically.
  • Tracked videos, past payouts, campaign memberships, notes, and README remain attached to the same creator.
  • The rename is logged in the creator's History tab.
  • Also available via the public API: PATCH /api/v1/creators/{id} now accepts tiktok_handle.

2026-05-16: Operator email alerts

Two new automated email notifications are now active for platform operators:

  • Signup notifications: an email fires whenever a new user creates an account, including their name, email, auth provider, and running total user count.
  • Daily scrape anomaly check: runs at 08:15 UTC and emails when longer-window issues are detected: per-creator stats gaps (>3 days), freshness drift (>25% of creators stale), comment-scraping silence (>48h), stuck payout accruals, or orphaned campaign memberships. Distinct from the existing hourly alert which covers immediate job failures.
  • Daily digest: runs at 14:30 UTC (07:30 PT) and always sends a summary of the past 24h scraping activity, platform totals, and top failing creators: a green-state heartbeat for days when everything is healthy.

2026-05-13: Sentiment Radar

A new Sentiment Radar tool gives you a program-level view of comment sentiment across all your tracked videos.

  • KPI strip: total comments, % positive, % negative, and average sentiment score for the selected date range.
  • Sentiment over time chart: stacked bar chart of positive / neutral / negative volume, bucketed by day (≤14 day range) or week.
  • Top creators leaderboard: creators ranked by average sentiment score (requires ≥20 analyzed comments in range).
  • Negative-vibes alert: dismissible warning when any video has ≥40% negative comments with ≥10 analyzed.
  • Comment stream: infinite-scroll feed of all comments, filterable by sentiment tab (All / Positive / Neutral / Negative) and keyword search.
  • Campaign filter + date range: scope everything to a specific campaign and custom date window. Defaults to the last 30 days.

Find it under Tools → Sentiment Radar in the sidebar.


2026-05-13: Video Comments tab

Each video detail page now has a Comments tab showing the sampled comments for that video (up to 100 per video).

  • Sentiment analysis: every comment is scored using sentiment analysis and labelled positive, neutral, or negative. A summary breakdown appears at the top of the tab.
  • Sort options: sort by top likes, newest, or oldest.
  • Auto-collection: comments are scraped automatically on a 6-hour cycle. New videos will have comments within 6 hours of being discovered.
  • Image and emoji-only comments are excluded from sentiment scoring.

2026-04-30: Analytics section

Added a new project-level Analytics section (available in the sidebar between Tracking and Tools) with three sub-tabs:

  • Video Analytics: top-video leaderboard, posting-time heatmap (DOW × hour), view distribution histogram with percentile markers, and breakout video gallery.
  • Creator Analytics: creator leaderboard (followers, posts/week, engagement, growth), posting consistency punch card, goal compliance roll-up, and follower growth × engagement scatter chart.
  • Campaign Analytics: campaign leaderboard with prior-period delta, multi-campaign comparison overlay (up to 5), and campaign membership overlap matrix.

Nine new aggregate API endpoints at /api/v1/analytics/aggregate/* support these dashboards and are available to API key holders.


2026-04-19: Internal & public docs

Overhauled both the public docs site (/docs) and the internal admin docs (/internal-docs). New three-pane layout, syntax-highlighted code, table of contents, sectioned sidebar navigation, full API reference, feature guides, and agent documentation.


2026-04-17: Admin Control Plane

Launched the platform admin control plane at /admin. Includes Plans tab (live tier limit editing), per-org limit overrides, per-user limit overrides, audit log, creator bans, soft-delete management, and user impersonation.


2026-04-11: Multi-org support

Users can now belong to multiple organizations. Added max_orgs_per_user limit key and the org picker for users with multiple org memberships.


2026-04-11: API keys v2

Added API key visibility rules, SHA-256 hashed key storage, and one-time key reveal flow. Keys now use the tga_ prefix format.


2026-04-10: Limits & plan tiers

Introduced the three-tier plan system (Free, Starter, Ultra) with atomic enforcement via Postgres RPCs, daily usage metering for API requests and manual scrapes, OverLimitBanner, and LimitReachedModal.


2026-04-08: Initial launch

Core platform: organizations, projects, creators, videos, campaigns, goals, inbox, content calendar, BullMQ scraper on Railway, v1 API.