Audience
GET /instagram/accounts/{account_id}/audience returns country, age, and gender shares.
Use as_of to read the newest eligible snapshot at or before a timestamp.
Availability is not_tracked, pending, unavailable, or available.
This field is a closed enum.
Shares use basis points. A value of 3420 means 34.20 percent. Reported
buckets can sum to less than 10000. Do not rescale them.
Account insights
GET /instagram/accounts/{account_id}/insights returns daily points. Use since and
until to limit the date range.
Each point contains reach, followers_count, and extra. Metric values can
be null. followers_count is set only on the day we read the account. The
extra object accepts new snake-case keys.
Tracked-media history
GET /instagram/submissions/{submission_id}/stats and
GET /x/submissions/{submission_id}/stats and
GET /youtube/submissions/{submission_id}/stats return one point for each
successful read. They use a sub_ ID and do not accept project_id.
Each point contains the shared metrics, captured_at, watch-time fields, and
extra. The shared views field is the platform’s headline view number.
Bot score
GET /instagram/submissions/{submission_id}/bot-score checks one tracked media item for
signs of bot activity. The bot score is available only for Instagram. It uses a sub_ ID and does not accept project_id.
We calculate the score each time you call the endpoint. It uses the newest 200
reads. The engagement checks use the newest read. The curve checks use every
read that has a view count.
trust_score is a number from 1 to 100. A higher number is more organic.
bot_flagged is true when one or more checks land in an extreme band. The
two fields are independent. A flagged item can have a high trust score.
scored is false until a read reports views. The score fields are then
null and signals is empty.
Each signal has a metric, a band, and a value_bps. A band is
very_low, low, expected, high, or very_high. Only very_low and
very_high flag the item. A signal with evaluated: false does not have
enough data yet. It counts as expected in the trust score.
The score can change after each read. Store your own copy if you need a fixed
result.
Demographics on list results
GET /instagram/submissions and GET /youtube/submissions include
demographics on geo tracked media. basis says whose audience it is.
Instagram: basis: "account"
The block describes the connected account. It does not describe one tracked
media item. It averages available account snapshots from the earliest
collection window.
window_start and window_end report the actual snapshot span.
snapshot_count is the divisor used for each average.
YouTube: basis: "media"
The block describes the audience of the tracked media itself. We read it once
a day. Each read covers the whole life of the tracked media, so the block shows
the newest read. Nothing is averaged.
window_startis the start of the publish day, in UTC.window_endis the time of the read.snapshot_countis 1 when the block has data, else 0.- Each
countriesbucket also hasviews: the views from that country. A share is the country’s part of those views. ageandgenderare shares of signed-in viewers.- Labels are as YouTube reports them:
age18-24,female,male,user_specified,US.
X accounts
X accounts have no audience or insights endpoints. We do not read this data for X. Metric history for X tracked media is available. UseGET /x/submissions/{submission_id}/stats.
YouTube accounts
YouTube accounts have no audience or insights endpoints. For the audience of one tracked media, turn geo on and readdemographics on
GET /youtube/submissions.
Metric history for YouTube tracked media is available. Use
GET /youtube/submissions/{submission_id}/stats.