Skip to content

Content groups

Link the same logical content across platforms and read its combined, cross-platform stats.

Updated Oct 10, 2026 · 3 min read

A content group links the same logical piece of content across platforms (for example, the same video posted to both TikTok and Instagram) so its combined performance can be viewed together. A video can belong to at most one content group.

Content group fields#

FieldTypeDescription
iduuidContent group ID
project_iduuidProject this group belongs to
org_iduuidOwning organization ID
titlestringGroup title
notesstring | nullFreeform notes
created_byuuid | nullUser who created the group
video_idsarray of uuidVideos that are members of the group
created_atISO 8601When the group was created
updated_atISO 8601Last update

GET/api/v2/content-groups#

List content groups in your organization.

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

Query parameters#

ParameterTypeDefaultDescription
project_iduuidNoneFilter to a specific project
limitnumber50Items per page (max 100)
cursorstringNonePagination cursor

Returns a paginated array of content group objects.


POST/api/v2/content-groups#

Create a content group. Requires the write scope. Optionally seed it with member videos.

bash
curl -X POST \
  -H "Authorization: Bearer tga_<key>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "project_id": "<uuid>",
    "title": "Launch teaser",
    "notes": "Same clip on TikTok + Reels",
    "video_ids": ["<videoUuid1>", "<videoUuid2>"]
  }' \
  "https://www.trackagoat.com/api/v2/content-groups"

Body#

FieldTypeDefaultDescription
project_iduuidrequiredProject to create the group in.
titlestringrequiredGroup title (1 to 200 chars).
notesstring | nullNoneFreeform notes.
video_idsarray of uuid[]Videos to add (up to 200). Must belong to the same project.

Returns 201 with the created group, or 404 if the project isn't found.


GET/api/v2/content-groups/#

Get a single content group.

bash
curl -H "Authorization: Bearer tga_<key>" \
  https://www.trackagoat.com/api/v2/content-groups/<uuid>

Returns a content group object. 404 if not found.


PATCH/api/v2/content-groups/#

Rename, edit notes, or add/remove member videos. 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 '{
    "title": "Launch teaser (final)",
    "add_video_ids": ["<videoUuid3>"],
    "remove_video_ids": ["<videoUuid1>"]
  }' \
  https://www.trackagoat.com/api/v2/content-groups/<uuid>

Body#

FieldTypeDescription
titlestringRename the group (1 to 200 chars).
notesstring | nullEdit notes. Pass null to clear.
add_video_idsarray of uuidVideos to add to the group (up to 200).
remove_video_idsarray of uuidVideos to remove from the group (up to 200).

Returns the updated content group object. 404 if not found.


DELETE/api/v2/content-groups/#

Delete a content group. The member videos themselves are not deleted; they are simply unlinked. Requires the write scope.

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

Returns { "deleted": true }.


GET/api/v2/content-groups//stats#

Get combined stats for a content group: current metrics summed across every member video, plus a per-platform breakdown.

bash
curl -H "Authorization: Bearer tga_<key>" \
  https://www.trackagoat.com/api/v2/content-groups/<uuid>/stats

Response#

JSON
{
  "data": {
    "video_count": 3,
    "totals": {
      "view_count": 1250000,
      "like_count": 84000,
      "comment_count": 3100,
      "share_count": 900
    },
    "by_platform": {
      "tiktok": { "video_count": 2, "view_count": 1000000, "like_count": 70000, "comment_count": 2500, "share_count": 800 },
      "instagram": { "video_count": 1, "view_count": 250000, "like_count": 14000, "comment_count": 600, "share_count": 100 }
    }
  },
  "error": null,
  "meta": null
}

Response fields#

FieldTypeDescription
video_countnumberNumber of videos in the group
totalsobjectSummed view_count, like_count, comment_count, share_count across the group
by_platformobjectKeyed by platform; each value carries video_count plus the same four metric totals for that platform

A group with no member videos returns video_count: 0, zeroed totals, and an empty by_platform.