Analytics
Compare a brand against its competitors: totals per brand and follower history over time. Every endpoint takes the same brand, platform and date window.
Compare Brand Performance
/api/v1/analytics/brand_comparison/analytics.brand_comparisonReturns one row of totals per brand: the top-level brand named by brand_id first, then each of its competitor sub-brands by title. Theme sub-brands are not competitors and are left out. The statistics block has the same shape as content.statistics, so the same parsing works for both. It counts the same window, and it leaves out mentions that appear only in a comment, which content.statistics includes.
brand_id must name a top-level brand. A sub-brand is refused with the id of the parent to use instead.
Parameters
brand_id Type: stringRequiredThe top-level brand to analyse, as returned by brands.list. A sub-brand is refused with the id of the parent to use instead.
brand_id Type: stringRequiredThe top-level brand to analyse, as returned by brands.list. A sub-brand is refused with the id of the parent to use instead.
platformType: enum[]unique items truePlatforms to include, comma-separated. Defaults to all of them.
Show values
platformType: enum[]unique items truePlatforms to include, comma-separated. Defaults to all of them.
- unique items
- true
instagramtiktokyoutubeposted_after Type: string(date-time)Start of the window (UTC, ISO 8601). Supplying more than one start is accepted and only one applies: this one wins over posted_within_hours, which wins over posted_within_days.
posted_after Type: string(date-time)Start of the window (UTC, ISO 8601). Supplying more than one start is accepted and only one applies: this one wins over posted_within_hours, which wins over posted_within_days.
posted_before Type: string(date-time)End of the window (UTC, ISO 8601). Defaults to the current time, and a relative start is counted back from it.
posted_before Type: string(date-time)End of the window (UTC, ISO 8601). Defaults to the current time, and a relative start is counted back from it.
posted_within_hours Type: integerminimum 1 · maximum 8760Start of the window, counted back from posted_before or the current time, in hours (1-8760). posted_after wins over it; it wins over posted_within_days.
posted_within_hours Type: integerminimum 1 · maximum 8760Start of the window, counted back from posted_before or the current time, in hours (1-8760). posted_after wins over it; it wins over posted_within_days.
- minimum
- 1
- maximum
- 8760
posted_within_days Type: integerminimum 1 · maximum 365Start of the window, counted back from posted_before or the current time, in days (1-365). Defaults to 7 when no date parameter is supplied, and loses to posted_after and posted_within_hours.
posted_within_days Type: integerminimum 1 · maximum 365Start of the window, counted back from posted_before or the current time, in days (1-365). Defaults to 7 when no date parameter is supplied, and loses to posted_after and posted_within_hours.
- minimum
- 1
- maximum
- 365
Returns BrandComparison
brandType: AnalyticsBrandThe brand this row covers.
Show child attributes
brandType: AnalyticsBrandThe brand this row covers.
brand.idType: stringread-onlyUnique identifier for the brand.
brand.idType: stringread-onlyUnique identifier for the brand.
brand.titleType: stringor nullDisplay name of the brand.
brand.titleType: stringor nullDisplay name of the brand.
brand.is_primary Type: booleantrue for the brand the request named, false for a sub-brand.
brand.is_primary Type: booleantrue for the brand the request named, false for a sub-brand.
brand.sub_brand_type Type: stringor nullread-onlyCOMPETITIVE or THEME for a sub-brand; null for the top-level brand the request named.
brand.sub_brand_type Type: stringor nullread-onlyCOMPETITIVE or THEME for a sub-brand; null for the top-level brand the request named.
statisticsType: BrandStatisticsTotals over the window.
Show child attributes
statisticsType: BrandStatisticsTotals over the window.
statistics.post_count Type: integerNumber of posts matched to the brand.
statistics.post_count Type: integerNumber of posts matched to the brand.
statistics.total_views Type: integerTotal views across those posts.
statistics.total_views Type: integerTotal views across those posts.
statistics.total_likes Type: integerTotal likes across those posts.
statistics.total_likes Type: integerTotal likes across those posts.
statistics.total_comments Type: integerTotal comments across those posts.
statistics.total_comments Type: integerTotal comments across those posts.
statistics.total_engagement Type: integerLikes, comments and shares across those posts.
statistics.total_engagement Type: integerLikes, comments and shares across those posts.
statistics.total_earned_media_value_cents Type: integerEstimated marketing value across those posts, in US cents.
statistics.total_earned_media_value_cents Type: integerEstimated marketing value across those posts, in US cents.
statistics.engagement_rate Type: number(double)or nullTotal engagement divided by total views. Null when the set has no recorded views.
statistics.engagement_rate Type: number(double)or nullTotal engagement divided by total views. Null when the set has no recorded views.
statistics.unique_creator_count Type: integerNumber of distinct creators who posted.
statistics.unique_creator_count Type: integerNumber of distinct creators who posted.
statistics.total_positive_nps Type: integerEngagement on positive posts.
statistics.total_positive_nps Type: integerEngagement on positive posts.
statistics.total_neutral_nps Type: integerEngagement on neutral posts.
statistics.total_neutral_nps Type: integerEngagement on neutral posts.
statistics.total_negative_nps Type: integerEngagement on negative posts.
statistics.total_negative_nps Type: integerEngagement on negative posts.
followersType: BrandFollowersFollower counts as they stand now, not over the window.
Show child attributes
followersType: BrandFollowersFollower counts as they stand now, not over the window.
followers.totalType: integerFollowers across every owned handle.
followers.totalType: integerFollowers across every owned handle.
followers.accountsType: FollowerAccount[]Per handle counts that add up to total.
Show child attributes
followers.accountsType: FollowerAccount[]Per handle counts that add up to total.
followers.accounts[].platformType: stringThe platform the handle is on.
followers.accounts[].platformType: stringThe platform the handle is on.
followers.accounts[].usernameType: stringThe handle.
followers.accounts[].usernameType: stringThe handle.
followers.accounts[].followersType: integerFollower count for this handle.
followers.accounts[].followersType: integerFollower count for this handle.
Responses
BrandComparison
brandType: AnalyticsBrandThe brand this row covers.
Show child attributes
brandType: AnalyticsBrandThe brand this row covers.
brand.idType: stringread-onlyUnique identifier for the brand.
brand.idType: stringread-onlyUnique identifier for the brand.
brand.titleType: stringor nullDisplay name of the brand.
brand.titleType: stringor nullDisplay name of the brand.
brand.is_primary Type: booleantrue for the brand the request named, false for a sub-brand.
brand.is_primary Type: booleantrue for the brand the request named, false for a sub-brand.
brand.sub_brand_type Type: stringor nullread-onlyCOMPETITIVE or THEME for a sub-brand; null for the top-level brand the request named.
brand.sub_brand_type Type: stringor nullread-onlyCOMPETITIVE or THEME for a sub-brand; null for the top-level brand the request named.
statisticsType: BrandStatisticsTotals over the window.
Show child attributes
statisticsType: BrandStatisticsTotals over the window.
statistics.post_count Type: integerNumber of posts matched to the brand.
statistics.post_count Type: integerNumber of posts matched to the brand.
statistics.total_views Type: integerTotal views across those posts.
statistics.total_views Type: integerTotal views across those posts.
statistics.total_likes Type: integerTotal likes across those posts.
statistics.total_likes Type: integerTotal likes across those posts.
statistics.total_comments Type: integerTotal comments across those posts.
statistics.total_comments Type: integerTotal comments across those posts.
statistics.total_engagement Type: integerLikes, comments and shares across those posts.
statistics.total_engagement Type: integerLikes, comments and shares across those posts.
statistics.total_earned_media_value_cents Type: integerEstimated marketing value across those posts, in US cents.
statistics.total_earned_media_value_cents Type: integerEstimated marketing value across those posts, in US cents.
statistics.engagement_rate Type: number(double)or nullTotal engagement divided by total views. Null when the set has no recorded views.
statistics.engagement_rate Type: number(double)or nullTotal engagement divided by total views. Null when the set has no recorded views.
statistics.unique_creator_count Type: integerNumber of distinct creators who posted.
statistics.unique_creator_count Type: integerNumber of distinct creators who posted.
statistics.total_positive_nps Type: integerEngagement on positive posts.
statistics.total_positive_nps Type: integerEngagement on positive posts.
statistics.total_neutral_nps Type: integerEngagement on neutral posts.
statistics.total_neutral_nps Type: integerEngagement on neutral posts.
statistics.total_negative_nps Type: integerEngagement on negative posts.
statistics.total_negative_nps Type: integerEngagement on negative posts.
followersType: BrandFollowersFollower counts as they stand now, not over the window.
Show child attributes
followersType: BrandFollowersFollower counts as they stand now, not over the window.
followers.totalType: integerFollowers across every owned handle.
followers.totalType: integerFollowers across every owned handle.
followers.accountsType: FollowerAccount[]Per handle counts that add up to total.
Show child attributes
followers.accountsType: FollowerAccount[]Per handle counts that add up to total.
followers.accounts[].platformType: stringThe platform the handle is on.
followers.accounts[].platformType: stringThe platform the handle is on.
followers.accounts[].usernameType: stringThe handle.
followers.accounts[].usernameType: stringThe handle.
followers.accounts[].followersType: integerFollower count for this handle.
followers.accounts[].followersType: integerFollower count for this handle.
Get Brand Follower Time Series
/api/v1/analytics/follower_timeseries/analytics.follower_timeseriesReturns follower history for the top-level brand named by brand_id first, then each of its competitor sub-brands by title, bucketed by period. A brand appears only for the periods in which one of its owned handles was measured.
Follower counts carry forward: a handle with no reading in a period keeps the last one recorded before it.
Parameters
brand_id Type: stringRequiredThe top-level brand to analyse, as returned by brands.list. A sub-brand is refused with the id of the parent to use instead.
brand_id Type: stringRequiredThe top-level brand to analyse, as returned by brands.list. A sub-brand is refused with the id of the parent to use instead.
platformType: enum[]unique items truePlatforms to include, comma-separated. Defaults to all of them.
Show values
platformType: enum[]unique items truePlatforms to include, comma-separated. Defaults to all of them.
- unique items
- true
instagramtiktokyoutubeposted_after Type: string(date-time)Start of the window (UTC, ISO 8601). Supplying more than one start is accepted and only one applies: this one wins over posted_within_hours, which wins over posted_within_days.
posted_after Type: string(date-time)Start of the window (UTC, ISO 8601). Supplying more than one start is accepted and only one applies: this one wins over posted_within_hours, which wins over posted_within_days.
posted_before Type: string(date-time)End of the window (UTC, ISO 8601). Defaults to the current time, and a relative start is counted back from it.
posted_before Type: string(date-time)End of the window (UTC, ISO 8601). Defaults to the current time, and a relative start is counted back from it.
posted_within_hours Type: integerminimum 1 · maximum 8760Start of the window, counted back from posted_before or the current time, in hours (1-8760). posted_after wins over it; it wins over posted_within_days.
posted_within_hours Type: integerminimum 1 · maximum 8760Start of the window, counted back from posted_before or the current time, in hours (1-8760). posted_after wins over it; it wins over posted_within_days.
- minimum
- 1
- maximum
- 8760
posted_within_days Type: integerminimum 1 · maximum 365Start of the window, counted back from posted_before or the current time, in days (1-365). Defaults to 7 when no date parameter is supplied, and loses to posted_after and posted_within_hours.
posted_within_days Type: integerminimum 1 · maximum 365Start of the window, counted back from posted_before or the current time, in days (1-365). Defaults to 7 when no date parameter is supplied, and loses to posted_after and posted_within_hours.
- minimum
- 1
- maximum
- 365
periodType: enumSize of each bucket in the series. Defaults to day.
Show values
periodType: enumSize of each bucket in the series. Defaults to day.
dayweekmonthyearReturns FollowerTimeseries
brandType: AnalyticsBrandThe brand this row covers.
Show child attributes
brandType: AnalyticsBrandThe brand this row covers.
brand.idType: stringread-onlyUnique identifier for the brand.
brand.idType: stringread-onlyUnique identifier for the brand.
brand.titleType: stringor nullDisplay name of the brand.
brand.titleType: stringor nullDisplay name of the brand.
brand.is_primary Type: booleantrue for the brand the request named, false for a sub-brand.
brand.is_primary Type: booleantrue for the brand the request named, false for a sub-brand.
brand.sub_brand_type Type: stringor nullread-onlyCOMPETITIVE or THEME for a sub-brand; null for the top-level brand the request named.
brand.sub_brand_type Type: stringor nullread-onlyCOMPETITIVE or THEME for a sub-brand; null for the top-level brand the request named.
periodsType: FollowerPeriod[]One entry per period, oldest first.
Show child attributes
periodsType: FollowerPeriod[]One entry per period, oldest first.
periods[].followersType: integerFollowers across every owned handle.
periods[].followersType: integerFollowers across every owned handle.
periods[].start_date Type: string(date)First day of the period.
periods[].start_date Type: string(date)First day of the period.
periods[].end_date Type: string(date)Last day of the period.
periods[].end_date Type: string(date)Last day of the period.
periods[].accountsType: FollowerAccount[]Per handle counts that add up to followers.
Show child attributes
periods[].accountsType: FollowerAccount[]Per handle counts that add up to followers.
periods[].accounts[].platformType: stringThe platform the handle is on.
periods[].accounts[].platformType: stringThe platform the handle is on.
periods[].accounts[].usernameType: stringThe handle.
periods[].accounts[].usernameType: stringThe handle.
periods[].accounts[].followersType: integerFollower count for this handle.
periods[].accounts[].followersType: integerFollower count for this handle.
Responses
FollowerTimeseries
brandType: AnalyticsBrandThe brand this row covers.
Show child attributes
brandType: AnalyticsBrandThe brand this row covers.
brand.idType: stringread-onlyUnique identifier for the brand.
brand.idType: stringread-onlyUnique identifier for the brand.
brand.titleType: stringor nullDisplay name of the brand.
brand.titleType: stringor nullDisplay name of the brand.
brand.is_primary Type: booleantrue for the brand the request named, false for a sub-brand.
brand.is_primary Type: booleantrue for the brand the request named, false for a sub-brand.
brand.sub_brand_type Type: stringor nullread-onlyCOMPETITIVE or THEME for a sub-brand; null for the top-level brand the request named.
brand.sub_brand_type Type: stringor nullread-onlyCOMPETITIVE or THEME for a sub-brand; null for the top-level brand the request named.
periodsType: FollowerPeriod[]One entry per period, oldest first.
Show child attributes
periodsType: FollowerPeriod[]One entry per period, oldest first.
periods[].followersType: integerFollowers across every owned handle.
periods[].followersType: integerFollowers across every owned handle.
periods[].start_date Type: string(date)First day of the period.
periods[].start_date Type: string(date)First day of the period.
periods[].end_date Type: string(date)Last day of the period.
periods[].end_date Type: string(date)Last day of the period.
periods[].accountsType: FollowerAccount[]Per handle counts that add up to followers.
Show child attributes
periods[].accountsType: FollowerAccount[]Per handle counts that add up to followers.
periods[].accounts[].platformType: stringThe platform the handle is on.
periods[].accounts[].platformType: stringThe platform the handle is on.
periods[].accounts[].usernameType: stringThe handle.
periods[].accounts[].usernameType: stringThe handle.
periods[].accounts[].followersType: integerFollower count for this handle.
periods[].accounts[].followersType: integerFollower count for this handle.