API
Endpoint reference
The planned /v1 REST endpoints for posts, profiles, comments, campaigns and trends, built on Sonder's own data model.
Versioned under /v1, JSON over HTTPS, cursor paging (cursor in, next out). The shapes follow the data Sonder already keeps for its own dashboards and MCP server.
Posts
/v1/posts/searchPlannedPublic posts matching q on the platforms you list, between since and until. Takes kind (keyword, hashtag, sound, account, tagged, subreddit) where the platform supports it, sort and cursor.
/v1/posts/{id}PlannedOne post with its latest stats. Also takes a post URL: /v1/posts/lookup?url=….
/v1/posts/{id}/commentsPlannedThe post's public comments and replies, most liked first, paged with cursor.
/v1/posts/{id}/transcriptPlannedWhat is said in the video, where the platform has transcripts.
{
"posts": [
{
"id": "9dda86b0e89c04f35bcbf8e8528fd7d0",
"platform": "tiktok",
"externalId": "7695058711135423766",
"url": "https://www.tiktok.com/@reversecomponents/video/7695058711135423766",
"creator": {
"handle": "reversecomponents",
"name": "Reverse Components",
"followers": 27100
},
"caption": "RED BULL RAMPAGE 2026 is on! 🔥🔥🔥 Clips from the last practice runs of Szymon Godziek ⚔️",
"hashtags": [],
"postedAt": "2026-10-10T15:17:59Z",
"durationSec": 40,
"views": 30900,
"viewsEstimated": false,
"likes": 5936,
"comments": 7,
"shares": 114,
"transcriptExcerpt": null,
"onscreenText": null,
"asOf": "2026-11-02T23:04:08Z"
}
],
"next": "…"
}Profiles
/v1/profiles/{platform}/{handle}PlannedA public account: name, followers and, where shown, bio and verified status.
/v1/profiles/{platform}/{handle}/postsPlannedThe account's recent public posts with their stats.
{
"platform": "tiktok",
"handle": "reversecomponents",
"name": "Reverse Components",
"followers": 27100,
"bio": "…",
"asOf": "2026-11-02T23:04:08Z"
}Comments
{
"postId": "9dda86b0e89c04f35bcbf8e8528fd7d0",
"comments": [
{
"id": "…",
"author": "reversecomponents",
"text": "damn something went wrong here 🤔",
"likes": 1,
"createdAt": "2026-10-11T16:42:07Z",
"parentId": null,
"sentiment": null
}
],
"next": null
}Campaigns
/v1/campaignsPlannedYour campaigns with their headline totals.
/v1/campaignsPlannedStart tracking a launch: a name, a description of what counts, a start date, platforms and your own accounts.
/v1/campaigns/{id}PlannedA campaign's totals: views, earned and owned views, posts, creators, engagements, by platform.
/v1/campaigns/{id}/postsPlannedThe campaign's posts with ownership, status and sentiment, filterable by each.
/v1/campaigns/{id}/creatorsPlannedThe accounts that posted about the campaign, most viewed first.
{
"id": "red-bull-rampage-2026",
"name": "Red Bull Rampage 2026",
"status": "active",
"lastRefreshedAt": "2026-11-02T23:04:08Z",
"ownedAccounts": [
{
"platform": "instagram",
"handle": "redbull"
},
{
"platform": "instagram",
"handle": "redbullbike"
},
{
"platform": "facebook",
"handle": "RedBullBike"
},
"…"
],
"totals": {
"views": "…",
"earnedViews": "…",
"ownedViews": "…",
"posts": "…",
"pending": "…",
"creators": "…"
}
}Trends
/v1/trendsPlannedFormats spreading on TikTok, Instagram Reels and YouTube Shorts, with their stage and example posts.
Fields
The post shape, campaign fields and per-platform meanings are in Concepts and on each platform page.