API and agents
Run your program with Claude Code, Codex or another coding agent.
The data model, the API, the MCP server and the docs were built with agents in mind. Creators, videos, campaigns, goals, payouts and Insights are all in the REST API and the hosted MCP server, so your agent can do the day-to-day work with you. Org setup (members, invites and API keys) stays in the app.
An agent calls trackagoat’s MCP tools and answers from the same data you see in the dashboard.
Make a key, call the API, and retry without worrying.
You: Make an API key for our backend.
Agent: I can’t make API keys. An org admin makes them in trackagoat under Org settings → API keys, and each key is shown once. I’m connected to Wyndy and can see Content Creator Program, so paste the key into your backend’s .env and I’ll set up the calls.Behind the scenes · 1 MCP call
Behind the scenes
Tool call: list_projects
Listed the projects this connection can see in your organization.
{}
Make a key. Pick its scopes and the teammate it acts as. A key covers every project in your organization and can never do more than that teammate can.
Call an endpoint. Send the key as a Bearer token. Lists return 50 items by default and up to 100, with a cursor for the next page.
Retry without duplicates. Send an Idempotency-Key with a write. A retry within 24 hours gets the first response back instead of running twice.
A hosted MCP server for Claude and other agents.
- Same permissions as the person. A connection acts as one teammate and can never do more than they can in the app. Read-only access changes nothing.
- Destructive tools are marked. Tools that delete or void data are flagged so your client can ask you first. Members, invites and API keys are managed in the app.
- You decide about money. An agent can send a payout only after an org admin turns on agent payments, and only within the per-payout and 24-hour limits you set.
A Markdown document on every record.
- One for each teammate. A personal document says who they are and how they want help. Their agent gets it at the start of every session and can help write it.
- Nothing gets overwritten. Agents add a dated section by default. Replacing a document fails if someone changed it since the agent read it.
- Everyone can read them. Every document is visible to everyone in the org and their agents, so keep private things out.
You: Help me write my trackagoat personalization document.
Agent: Sure. I read the Wyndy README first, so I’ll only ask about you. What’s your role, and how should I help?Behind the scenes · 2 MCP calls
Behind the scenes
Tool call: trackagoat · 1. get_my_profile
Checked who it’s connected as in trackagoat, their role, and whether they have a personalization document yet.
{}
Tool call: trackagoat · 2. get_notes
Read the organization’s README in full, the document your team keeps for people and agents.
{ "entity_type": "organization", "entity_id": "…" }
You: I’m the partnerships lead and I run our TikTok creator program. Start with Program Health and keep it short. Never record payments or remove creators without asking.
Agent: Here’s a draft with three parts: About me, How to help me and Never without asking. Everyone in the organization can read it, so I left out anything private. Save it?
You: Looks good. Save it.
Agent: Saved. Every session starts with it now, so I’ll open with Program Health and ask before recording any payment.Behind the scenes · 1 MCP call
Behind the scenes
Tool call: trackagoat · update_my_readme
Saved the approved draft as your personalization document (My README in trackagoat), which agents read at the start of every session.
{ "readme": "## About me Partnerships lead at Wyndy. I run our TikTok creator program. ## How to help me Start with Program Health. Five bullet points, then the details. ## Never without asking - Recording or sending payments - Removing creators", "expected_readme_version": "e3b0c44298fc1c14" }
Connect Claude.ai with OAuth.
- Never admin. OAuth connections can only get read and write access, never admin.
- Shared quota. Connected apps don’t use up an API key, but their calls count toward your daily request limit.
You: Are you connected to trackagoat? What can you see?
Agent: Yes, through the connection you approved for Wyndy, with View data and Make changes turned on. I can see Content Creator Program, with 105 creators and 108 accounts. You don’t have a personalization document yet. Want to write one together, so I know how you like to work?Behind the scenes · 2 MCP calls
Behind the scenes
Tool call: trackagoat · 1. list_projects
Listed the projects this connection can see in your organization.
{}
Tool call: trackagoat · 2. get_my_profile
Checked who it’s connected as in trackagoat, their role, and whether they have a personalization document yet.
{}
Writes are scoped and safe to retry.
- Clear errors. Errors use the same envelope with a code, such as insufficient_scope, limit_reached or rate_limit_exceeded.
- Rate limits. 60 requests a minute per key plus a daily limit by plan. A 429 includes Retry-After.
The 125 MCP tools.
Each tool call counts as one API request, except get_changelog. The data model is also available to agents as a resource.
list_projectsreadProjects in the organizationlist_creatorsreadCreators with their accounts and totalsget_creatorreadOne creator, with notes and per-account statslist_videosreadTracked videos with current countslist_top_videosreadA project’s top videos by views, likes and moreget_video_statsreadOne video’s latest stats and tracking statusget_analyticsreadTime series for a video, creator or campaignget_goal_compliancereadGoal target, actual and status per creatorlist_campaignsreadCampaigns with their notesget_campaign_statsreadCampaign totals for a date rangelist_payout_accrualsreadEarned, paid or voided payout amountslist_payout_structuresreadPayout rules and their current settingsget_program_healthreadHealth verdict, headline numbers and alertsget_schemareadThe data modellist_accountsreadPlatform accounts with counts and tracking modeget_accountreadOne platform account in fullget_account_statsreadAn account’s follower historylist_content_groupsreadThe same content linked across platformsget_content_groupreadOne content group and its videosget_content_group_statsreadCombined views and likes for a content groupget_share_linkreadA creator’s shareable page settingsget_goal_compliance_summaryreadGoals on track, at risk and missedget_campaign_progressreadEach campaign’s views against its targetget_campaign_trendsreadViews, posts and creators posting over timeget_member_overlapreadCreators or videos in more than one campaignlist_top_creatorsreadCreators ranked by views in a date rangelist_top_accountsreadAccounts ranked by views in a date rangelist_outlier_videosreadVideos far above their creator’s medianget_creator_scatterreadFollower growth against engagement per creatorget_posting_heatmapreadPosts and views by weekday and hourget_posting_consistencyreadPosts per creator per dayget_over_posting_risksreadDays with videos held back from trackingget_view_distributionreadHow views spread across a project’s videoslist_annotationsreadDated notes on a chartlist_conversion_eventsreadKinds of conversion a project recordsget_conversion_eventreadOne conversion eventlist_conversionsreadRecorded signups, sales and other conversionsget_conversionreadOne recorded conversionget_conversion_summaryreadConversion count and value in a date rangelist_top_convertersreadCreators ranked by conversion valueget_conversion_timeseriesreadConversions per dayget_payout_structurereadOne payout rule with its version historylist_payout_assignmentsreadCreators on a payout structureget_payout_accrualreadOne earned amount and how it was calculatedlist_payout_methodsreadHow the organization pays creatorsget_payout_methodreadOne payout methodlist_payout_paymentsreadRecorded payments to creatorsget_payout_paymentreadOne payment and the amounts it settledget_payouts_trackerreadEarned, paid and owed for each creatorlist_payout_supplementalsreadExtra amounts owed on top of a paid periodget_payout_accountreadWhether a creator can be paid from trackagoatget_metric_totalsreadHeadline totals for a project or campaignlist_commentsreadComments on tracked videos, with sentimentlist_video_commentsreadEverything collected in one video’s commentsget_comment_signals_summaryreadComment Insights numbers for a periodget_comment_flagsreadAd questions and risky words in recent commentsget_comment_settingsreadComment Insights settings and brand termslist_notesreadEvery document in the organization, with previewsget_notesreadOne document in full, from the org to a videoget_my_profilereadWho the agent is helping, and their documentlist_membersreadTeammates, and who has a personalization documentexport_csvreadAny CSV the app exports, as a file to saveget_changelogreadWhat’s new in trackagoatadd_creatorwriteTrack a creator with one or more accountsadd_video_by_urlwriteTrack 1 to 50 TikTok or Instagram videos by URLcreate_goalwriteA posts, views, engagement or followers goaladd_to_campaignwriteAdd a creator, video or sub-campaigntrigger_scrapewriteRefresh an account, a creator or a video nowset_cpm_view_lifetimewriteHow long a video keeps earning on a CPM payoutupdate_noteswriteAppend to or replace any document or notesupdate_my_readmewriteSave the personalization document you wrote togetheradd_creatorswriteTrack up to 50 creators in one calladd_accountwriteAdd another platform account to a creatorupdate_creatorwriteRename a creator or change their metadataupdate_accountwriteChange a handle, tracking mode or hashtagsreenable_creatorswriteTurn tracking back on for disabled creatorsremove_creatorwriteStop tracking a creatorbulk_remove_creatorswriteStop tracking up to 100 creatorsremove_accountwriteStop tracking one of a creator’s accountsupdate_videowriteChange a video’s title or tracking statusreview_inboxwriteInclude or exclude videos waiting for reviewset_video_trackingwriteStop or resume tracking one videobulk_set_video_trackingwriteStop or resume tracking up to 200 videoscreate_campaignwriteCreate a campaignupdate_campaignwriteRename a campaign or set its view targetremove_from_campaignwriteTake a creator, video or sub-campaign outdelete_campaignwriteDelete a campaignupdate_goalwriteChange or pause a goaldelete_goalwriteDelete a goalcreate_content_groupwriteLink the same content across platformsupdate_content_groupwriteAdd or remove videos in a content groupdelete_content_groupwriteDelete a content groupcreate_share_linkwriteA PIN-protected page for a creatorupdate_share_linkwriteTurn a share page off, or change its PINbulk_create_share_linkswriteShare pages for up to 200 creatorsdelete_share_linkwriteDelete a creator’s share pagecreate_annotationwriteAdd a dated note to a chartupdate_annotationwriteChange a chart notedelete_annotationwriteDelete a chart notecreate_conversion_eventwriteDefine a kind of conversionupdate_conversion_eventwriteChange or deactivate a conversion eventrecord_conversionswriteRecord up to 500 conversionsvoid_conversionwriteVoid a refunded or invalid conversioncreate_payout_structurewriteA flat, goal, CPM, bonus or conversion payoutupdate_payout_rulewriteChange how a payout structure paysupdate_payout_structurewriteRename or un-archive a payout structurearchive_payout_structurewriteStop a payout structuredelete_payout_structurewriteDelete an unused payout structureassign_payout_structurewritePut creators on a payout structureunassign_payout_structurewriteTake creators off a payout structureset_accrual_statuswriteReject or void an earned amountcreate_payout_methodwriteAdd a payout methodupdate_payout_methodwriteRename or disable a payout methoddelete_payout_methodwriteDelete a payout methodrecord_payout_paymentwriteRecord a payment and mark amounts paidsend_payoutwritePay a creator from trackagoat, if an admin allows itcreate_payout_supplementalwriteAdd an amount owed on top of a paid periodvoid_payout_supplementalwriteVoid an extra amount added by mistakeupdate_payout_paymentwriteChange a payment’s notesvoid_payout_paymentwriteVoid a payment so its amounts are owed againupload_receiptwriteAttach a receipt file to a paymentget_receipt_upload_urlwriteA signed URL for a receipt up to 5 MBupload_payout_method_iconwriteSet a payout method’s iconget_payout_method_icon_upload_urlwriteA signed URL for a payout method iconupdate_comment_settingswriteChange brand and competitor terms for comments
Set up with your coding agent.
Paste this prompt into Claude Code, Codex or Cursor. It walks you through sign-up, connects the MCP server with OAuth and checks the connection. It never asks you to paste a password or an API key into the chat.
Everything in the API
Every plan includes the REST API and the MCP server, Free too.
- REST APIJSON over HTTPS at /api/v2, with { data, error, meta } on every response.
- OpenAPI specA public spec at /api/v2/openapi.json, and the data model at /api/v2/schema.
- Read and writeCreators, accounts, videos, campaigns, goals, payout structures, payments, conversions and share links.
- Markdown documentsA README on every record and for every teammate, which agents read before they act and add to.
- Cursor paginationUp to 100 items per page, with nextCursor and hasMore.
- Scoped API keysread, write and admin scopes. Keys are shown once and stored as a hash.
- Idempotency keysSafe retries for writes for 24 hours. Required when recording payments.
- Rate limits60 requests a minute per key, plus a daily limit set by your plan.
- Hosted MCP serverStreamable HTTP at /api/mcp, with 63 read tools and 62 write tools.
- OAuth for connectorsClaude.ai and other clients sign in with OAuth and can be revoked in Settings.
- Conversions APISend sign-ups or purchases from your backend, up to 500 per request, for conversion payouts.
- Agent setup promptA copy-paste prompt that connects a coding agent to trackagoat.
- Docs as MarkdownEvery docs page at /docs/<page>.md, plus /llms.txt and /llms-full.txt.
- Guide for agentsWorkflows and the data model, written for agents.
API limits by plan
Each key is also limited to 60 requests a minute. MCP tool calls count as API requests.
| Limit | Free | Starter | Ultra |
|---|---|---|---|
| API keys | 1 | 1 | 5 |
| Requests per day | 200 | 1,000 | 50,000 |
API and agent questions
For anything else, email support@trackagoat.com
Start tracking your creators for free.
Free covers 5 accounts and 10 tracked videos, with the API and MCP server included. Add a handle or profile link and their posts start coming in. No card needed.





