analytics
Analytics API Endpoint: Get real-time analytical data for posts and social accounts, such as clicks, likes, shares, followers, and impressions.
POST Analytics on a Post
POST
https://app.ayrshare.com/api/analytics/post
Get real-time analytics such as likes, impressions, retweets, etc for a given post that originated via Ayrshare. Will only return the analytics of networks where the post was sent.
For analytics on posts originating outside of Ayrshare see Analytics by Social ID.
Notes
⮕ Facebook Pages, Instagram, Twitter, LinkedIn, Pinterest, Reddit, TikTok, and YouTube are currently supported.
⮕ You might need to unlink and re-link Facebook and Instagram in the Dashboard's Social Accounts Page to grant the new Analytics permissions.
⮕ Twitter Threads returns as an Array of objects, with each object corresponding to a Tweet in the Thread.
⮕ YouTube can take up to 24 hours to process analytics for videos with fewer views.
⮕ TikTok account owners need to first publish at least one video, then tap the "Turn On" button on the Analytics page of their mobile TikTok app. You will receive more insights about your viewers and the content they've engaged with once you have 100 followers.
⮕ If the TikTok fields reach
, fullVideoWatchedRate
, totalTimeWatched
, averageTimeWatched
, impressionSources
, and audienceCountries
are unavailable, the reason is that the video has not had activity on it (comments, likes, views) for more than 7 days. To retrieve the data for these fields, you can view, like, comment, or share the inactive video and retry after 24 ~ 48h. If a video is not returned in the response, the reason is likely to be that the video has been filtered out due to violations, such as music copyright violation.
⮕ LinkedIn limits the analytics on posts to personal pages. LinkedIn Personal Pages only return like, comment, and reaction counts if available.
⮕ Instagram Story insights are only available for 24 hours, even if the stories are archived or highlighted. Story media metrics with values less than 5
return as 0
. For Stories created by users in Europe and Japan, the replies
metric return a value of 0
.
⮕ Facebook Story analytics are not available. Premium or Business Plan required.
Headers
Request Body
{
// Note: If the FB page has fewer than 100 likes then not all analytics data available.
"facebook": {
"id": "1397547544885713_2159201585286968", // Facebook Social ID
"postUrl": "https://www.facebook.com/1397547544885713_2159201585286968",
"analytics": {
"blueReelsPlayCount": 136, // Reels: The number of times your reel starts to play after an impression is already counted. This is defined as reels sessions with 1ms or more of playback and excludes replays.
"commentCount": 1, // Count of comment for the post
"impressions": 23, // The number of times your Page's post entered a person's screen. Posts include statuses, photos, links, videos and more.
"impressionsFanPaidUnique": 3, // The number of people who have like your Page and saw your Page post in an Ad or Sponsored Story.
"impressionsFanUnique": 1, // The number of people who have like your Page who saw your Page post.
"impressionsOrganicUnique": 4, // The number of people who had your Page's post enter their screen through unpaid distribution.
"impressionsPaidUnique": 2, // The number of people who had your Page's post enter their screen through paid distribution such as an ad.
"impressionsUnique": 12, // The number of people who had your Page's post enter their screen. Posts include statuses, photos, links, videos and more.
"likeCount": 23, // Count of likes for the post
"likedBy": [ // Users who liked the post
{
"id": "7101149746568432",
"name": "John Smith"
}
],
"mediaUrls": [
{
"media": {
"image": {
"height": 405,
"src": "https://scontent-lga3-1.xx.fbcdn.net/v/t",
"width": 720
},
"source": "https://video-lga3-2.xx.fbcdn.net/o1/v/t2/f2/m69/AQN"
},
"mediaType": "video",
"type": "story"
}
],
"postImpressionsUnique": 126, // Reels: The number of people who saw your reel at least once, whether or not your reel was played. People reached is different from impressions, which may include multiple views of your reel by the same people
"postVideoAvgTimeWatched": 4470, // Reels: The average time (in ms) your reel was played, including any time spent replaying the reel during a single instance of it playing. Because this metric includes replays, this number could be greater than the total length of the reel
"postVideoSocialActions": { // Reels: The number of comments, shares, and reactions on your reel
"share": 1
},
"postVideoViewTime": 608011, // Reels: Total time (in ms) your reel was played, including any time spent replaying your reel.
"reactions": {
"like": 1, // Like reactions - The "like" reaction counts include both "like" and "care" reactions.
"love": 1, // Love reactions
"anger": 1, // Anger reactions
"haha": 1, // Haha reactions
"wow": 1, // Wow reactions
"sorry": 1, // Sorry reactions
"total": 6 // Total number of reactions
},
"reactionsByType": 6, // The total types of reactions
"sharesCount": 34, // Total number of times post shared
/** The following fields are available for videos */
"totalVideo10SViews": 621, // Total number of times your video was viewed for 10 seconds or viewed to the end, whichever came first.
"totalVideo10SViewsAutoPlayed": 564, // Number of times people clicked to play your video and viewed it for 10 seconds or viewed it to the end, whichever came first.
"totalVideo10SViewsClickedToPlay": 46, // Number of times your video started automatically playing and people viewed it for 10 seconds, or viewed it to the end, whichever came first.
"totalVideo10SViewsOrganic": 621, // Number of times your video was viewed for 10 seconds or viewed to the end, whichever came first, without a paid promotion.
"totalVideo10SViewsPaid": 0, // Number of times your video was viewed for 10 seconds or viewed to the end, whichever came first, after a paid promotion.
"totalVideo10SViewsSoundOn": 380, // Number of times your video sound was turned on and was viewed for 10 seconds or viewed to the end, whichever came first.
"totalVideo10SViewsUnique": 621, // Number of unique people who viewed your video for 10 seconds or viewed to the end, whichever came first.
"totalVideo15SViews": 525, // Total number of times your video was viewed for at least 15 seconds.
"totalVideo60SExcludesShorterViews": 0, // Total number of times your video was viewed for 60 seconds only if the video is 60 seconds or longer.
"totalVideoAvgTimeWatched": 8494, // Lifetime: Average time video viewed
"totalVideoCompleteViews": 430, // Total number of times your video was watched at 95% of its length, including watches that skipped to this point.
"totalVideoCompleteViewsAutoPlayed": 374, // Number of times your video started automatically playing and people watched it at 95% of its length, including watches that skipped to this point.
"totalVideoCompleteViewsClickedToPlay": 56, // Number of times people clicked to play your video and watched it at 95% of its length, including watches that skipped to this point.
"totalVideoCompleteViewsOrganic": 430, // Number of times your video was watches at 95% of its length without any paid promotion, including watches that skipped to this point.
"totalVideoCompleteViewsOrganicUnique": 430, // The number of unique people who watched your video at 95% of its length without any paid promotion, including people that skipped to this point
"totalVideoCompleteViewsPaid": 0, // Number of times your video was watched at 95% of its length after paid promotion, including watches that skipped to this point.
"totalVideoCompleteViewsPaidUnique": 0, // The number of unique people who watched your video at 95% of its length after paid promotion, including people that skipped to this point.
"totalVideoCompleteViewsUnique": 430, // Total number of unique people who watched your video at 95% of its length or more, including people that skipped to this point.
"totalVideoImpressions": 3163, // The number of impressions of the video.
"totalVideoImpressionsFan": 0, // Number of impressions of your Page Video to people who have liked your Page.
"totalVideoImpressionsFanPaid": 0, // Number of paid impressions of your Page Video Asset to people who have liked your Page.
"totalVideoImpressionsFanPaidUnique": 0, // Number of people who like your Page and who saw your Page Video in an ad or sponsored story.
"totalVideoImpressionsFanUnique": 0, // Number of people who saw your Page video because they've liked your Page
"totalVideoImpressionsOrganic": 3163, // The number of impressions of your Video in Feed or ticker or on your Page's Timeline
"totalVideoImpressionsOrganicUnique": 3131, // Number of people who saw your Page Video in Feed or ticker, or on your Page's timeline.
"totalVideoImpressionsPaid": 0, // Number of impressions of your Page Video in an Ad or Sponsored Story.
"totalVideoImpressionsPaidUnique": 0, // Number of people your advertised Page Video was served to.
"totalVideoImpressionsUnique": 3131, // The total number of people your video was served to.
"totalVideoImpressionsViral": 0, // The number of impressions of your Page Video in a story generated by a friend.
"totalVideoImpressionsViralUnique": 0, // Number of people who saw your Page Video in a story from a friend.
"totalVideoReactionsByTypeTotal": { // The total number of reactions to your post by type.
"like": 13,
"haha": 2
},
"totalVideoStoriesByActionType": { // Number of stories created about your Page Video, by action type.
"like": 15
},
"totalVideoViewTimeByAgeBucketAndGender": { // Video view time (in ms) by age bucket and gender.
"f1317": 23521,
"m1317": 184052,
"u1824": 2774,
"f1824": 118193,
"m1824": 1340281,
"u2534": 11975,
"f2534": 407006,
"m2534": 3960750,
"u3544": 27054,
"f3544": 332576,
"m3544": 5477331,
"u4554": 41804,
"f4554": 375449,
"m4554": 3794202,
"u5564": 35717,
"f5564": 159041,
"m5564": 3582574,
"u65+": 8245,
"f65+": 423739,
"m65+": 2866201
},
"totalVideoViewTimeByDistributionType": { // Video view time (in ms) by distribution type. On asset level, there are three possible distribution types: (page_owned/shared/crossposted)
"pageOwned": 23172485
},
"totalVideoViewTimeByRegionId": { // Video view time (in ms) by region ID.
"californiaUnitedStates": 791788,
"texasUnitedStates": 480891,
"karnatakaIndia": 390297,
"uttarPradeshIndia": 368698,
"tamilNaduIndia": 359103,
"queenslandAustralia": 295491,
"newSouthWalesAustralia": 284222,
"newYorkUnitedStates": 250035,
"maharashtraIndia": 248465,
"washingtonUnitedStates": 237430,
...
},
"totalVideoViewTotalTime": 23172485, // Total time (in ms) video has been viewed.
"totalVideoViewTotalTimeOrganic": 23172485, // Total time (in ms) video has been viewed in Feed or ticker or on your Page's Timeline.
"totalVideoViewTotalTimePaid": 0, // Total time (in ms) video has been viewed after paid promotion.
"totalVideoViews": 1283,
"totalVideoViewsAutoplayed": 1237, // Number of times your video started automatically playing and people viewed it for 3 seconds or viewed it to the end, whichever came first.
"totalVideoViewsByDistributionType": { // Video views by distribution type. On asset level, there are three possible distribution types: (page_owned/shared/crossposted)
"pageOwned": 1283
},
"totalVideoViewsClickedToPlay": 46, // Number of times people clicked to play your video and viewed it for 3 seconds or viewed it to the end, whichever came first.
"totalVideoViewsOrganic": 1283, // Number of times your video was viewed for 3 seconds or viewed to the end, whichever came first, without any paid promotion.
"totalVideoViewsOrganicUnique": 1283, // Number unique viewers who viewed for 3 seconds or viewed to the end, whichever came first, without any paid promotion.
"totalVideoViewsPaid": 0, // Number of times your video was viewed for 3 seconds or viewed to the end, whichever came first, after paid promotion.
"totalVideoViewsPaidUnique": 0, // Number of unique viewers who viewed for 3 seconds or viewed to the end, whichever came first, after paid promotion.
"totalVideoViewsSoundOn": 743, // Number of times your video sound was turned on and was viewed for 3 seconds or viewed to the end, whichever came first.
"totalVideoViewsUnique": 1283,
"videoViews": 3, // Times your videos played for at least 3 seconds, or for nearly their total length if they're shorter than 3 seconds. During a single instance of a video playing, we'll exclude any time spent replaying the video. This includes live views.
"videoViewsUnique": 2, // Unique times your videos played for at least 3 seconds, or for nearly their total length if they're shorter than 3 seconds. During a single instance of a video playing, we'll exclude any time spent replaying the video. This includes live views.
},
"lastUpdated": "2022-04-23T18:44:29.778Z",
"nextUpdate": "2022-04-23T19:19:29.778Z"
},
"instagram": {
"id": "17856916804532520", // Instagram Social ID
"postUrl": "https://www.instagram.com/p/ChALNdaOT3G/",
"analytics": {
// FEED Data
"caption": "It always seems impossible until it’s done. - Nelson Mandela",
"commentsCount": 1 // Comments total
"created": "2022-09-07T22:39:06Z", // Time post was created
"engagementCount": 3, // Likes, comments, and saves
"impressionsCount": 73, // Times the post has been seen
"likeCount": 1, // Likes total - organic likes, promoted post likes not included
"mediaProductType": "FEED", // Type of IG Share: AD, FEED, STORY or REELS
"mediaType": "IMAGE", // Media type: CAROUSEL_ALBUM, IMAGE, or VIDEO
"reachCount": 71, // Unique accounts that have seen the post
"savedCount": 1, // Unique accounts have saved the post
"videoViews": 23, // Times the video has been seen id mediaType VIDEO
"username": "jackthegiant"
// REELS Data
"caption": "Gorgeous gifts for new Mum & Bub \n\n@mikimoocreations @romperandco @obdesigns @salusbody @enaproducts",
"commentsCount": 1, // Comments total
"created": "2022-09-15T06:58:55Z",
"igReelsAvgWatchTimeCount": 23, // The average amount of time spent playing the reel. This is calculated by the watch time divided by the number of plays.
"igReelsVideoViewTotalTimeCount": 21, // The total amount of time the reel was played, including any time spent replaying the reel.
"likeCount": 21, // Likes total on the reel
"mediaProductType": "REELS", // Type of IG Share: AD, FEED, STORY or REELS
"mediaType": "VIDEO", // Always "VIDEO"
"playsCount": 680, // Number of times the reels starts to play after an impression is already counted. This is defined as video sessions with 1 ms or more of playback and excludes replays
"reachCount": 689, // Number of unique accounts that have seen the reel at least once. Reach is different from impressions, which can include multiple views of a reel by the same account.
"savedCount": 0, // Number of saves of the reel.
"sharesCount": 2, // Number of shares of the reel.
"totalInteractionsCount": 27, // Number of likes, saves, comments, and shares on the reel, minus the number of unlikes, unsaves, and deleted comments.
"username": "mordiallocflorist"
// STORY Data - Fewer than 5 insights will not show metric data.
"commentsCount": 2,
"created": "2024-09-16T08:37:57Z",
"engagementCount": 10,
"followsCount": 0,
"impressionsCount": 10,
"likeCount": 3,
"mediaProductType": "STORY",
"mediaType": "IMAGE",
"notEnoughViews": true, // True if fewer than 5 insights. If fewer than 5 insights metric data not available.
"navigationCount": 15, // Total nav interactions of taps and swipes
"profileActivityCount": 3,
"profileVisitsCount": 1,
"reachCount": 10,
"repliesCount": 3,
"sharesCount": 2,
"swipeForwardCount": 1, // Swipes "Next Story" on the native interface.
"tapBackCount": 2, // Taps "Back" on the native interface.
"tapForwardCount": 9, // Taps "Forward" on the native interface.
"tapExitCount": 3, // Taps "Exit" on the native interface.
"username": "ayrshare"
},
"lastUpdated": "2022-04-23T18:44:29.778Z",
"nextUpdate": "2022-04-23T19:19:29.778Z"
},
// Corporate LinkedIn Account Example. Past 12 months, using a rolling 12-month window.
"linkedin": {
"id": "6783586276949000192", // LinkedIn Social ID
"postUrl": "https://www.linkedin.com/feed/update/urn:li:share:6783586276949000192",
"type": "corporate", // corporate or personal. Please see notes on personal analytics
"analytics": {
"clickCount": 0, // Clicks on a post - company only
"commentCount": 0, // Comments count
"comments": [ // Comment IDs - can be used to look up comments
"urn:li:comment:(urn:li:activity:7226002855806021632,7226004971362627585)"
],
"commentsState": "OPEN", // Comments allowed or not
"engagement": 0, // Organic clicks, likes, comments, and shares over impressions - company only
"impressionCount": 0, // Impressions on a post - company only
"likeBy": [
"urn:li:person:Z_yXaxh_AB" // Look up the user with the brands endpoint
],
"likeCount": 1, // Likes on a count
"reactions": { // Get reactions on a LinkedIn share
"like": 1, // "Like in the UI
"praise": 2, // "Celebrate" in the UI
"maybe": 3, // "Curious" in the UI
"empathy": 3, // "Love" in the UI
"interest": 2 // "Insightful" in the UI
"appreciation": 5 // "Support" in the UI
},
"shareCount": 0, // Shares on a post - company only
"totalFirstLevelComments": 1, // COunt of the firt level comments
"uniqueImpressionsCount": 0, // Unique impressions for a post - company only
"videoViews": 1 // Number of times video viewed - company only
},
"lastUpdated": "2022-04-23T18:44:29.778Z",
"nextUpdate": "2022-04-23T19:19:29.778Z"
},
// Personal LinkedIn Account Example. Past 12 months, using a rolling 12-month window.
"linkedin": {
"id": "urn:li:share:7221186087895920444",
"type": "personal",
"analytics": {
"commentCount": 1,
"comments": [
"urn:li:comment:(urn:li:activity:7221186088390799360,7224469537784479744)"
],
"commentsState": "OPEN",
"likeBy": [
{
"from": {
"name": "John Smith",
"id": "qDyUWJx2s",
"url": "https://www.linkedin.com/in/js",
"description": "Business Analyst at Ayrshare"
},
"media": {
"id": "urn:li:image:C4D03AQG_8MpwM6tDzw",
"mediaExpiresSeconds": 1728518400000,
"url": "https://media.licdn.com/dms/image/C4D03AQG_8MpwM6tDzw"
},
"platform": "linkedin",
"profileImageUrl": "https://media.licdn.com/dms/image/C4D03AQG_8MpwM",
"userName": "js",
"originalUrn": "urn:li:like:(urn:li:person:qDyUWJxqIO,urn:li:activity:722118608839074444)",
"type": "like"
}
],
"likeCount": 1,
"reactions": {
"like": 1,
"praise": 0,
"maybe": 0,
"empathy": 0,
"interest": 0,
"appreciation": 0
},
"share": "urn:li:activity:7221186088390794444",
"totalFirstLevelComments": 1
},
"lastUpdated": "2024-08-04T22:46:15.660Z",
"nextUpdate": "2024-08-04T22:57:15.660Z"
},
"pinterest": {
"id": "718464946813167315", // Pinterest Social ID
"postUrl": "https://www.pinterest.com/pin/718464946813167315/",
"analytics": {
"impression": 34,
"save": 3,
"pinClick": 123,
"outboundClick": 2,
"videoMrcView": 5,
"videoAvgWatchTime": 12,
"videoV50WatchTime": 1,
"quartile95PercentView": 30
},
"lastUpdated": "2022-04-23T18:44:29.778Z",
"nextUpdate": "2022-04-23T19:19:29.778Z"
},
"reddit": {
"id": "182zitr",
"postUrl": "https://www.reddit.com/r/test/comments/182zitr/reddit_post_title/",
"analytics": {
"author": "ayrshare",
"created": "2023-11-24T19:10:06.000Z",
"permalink": "/r/test/comments/182zitr/reddit_post_title/",
"subreddit": "test",
"title": "Reddit Post Title",
"ups": 2,
"upvoteRatio": 1,
"url": "https://www.reddit.com/r/test/comments/182zitr/reddit_post_title/"
},
"lastUpdated": "2023-11-24T19:10:41.635Z",
"nextUpdate": "2023-11-24T19:21:41.635Z"
},
"tiktok": {
"id": "7034682002927550598", // TikTok Social ID
"postUrl": "https://www.tiktok.com/@borneild/video/7034682002927550598?utm_campaign=tt4d_open_api&utm_source=awawnhyictaos7o",
"analytics": {
"audienceCountries": [ // Available 24-48 hours after posting. Country distribution of video viewers for the top 10 countries. Must be an active post. See endpoint details.
{
"country": "BM",
"percentage": 0.0036
},
{
"country": "MX",
"percentage": 0.0072
},
{
"country": "PH",
"percentage": 0.0036
},
{
"country": "US",
"percentage": 0.9819
},
{
"country": "VN",
"percentage": 0.0036
}
],
"averageTimeWatched": 5.6679, // Available 24-48 hours after posting.
"caption": "Scramble up ur name & I’ll try to guess it😍❤️ #foryoupage #petsoftiktok #aesthetic",
"comments": 23,
"created": "2022-08-09T15:08:22Z",
"embedUrl": "https://www.tiktok.com/embed/v2/7129893524253756713",
"fullVideoWatchedRate": 0.0866, // Percentage of views that completed watching the full video. Available 24-48 hours after posting.
"impressionSources": [ // Different sources for the impressions, ranked from the largest contribution to the smallest. Available 24-48 hours after posting.
{
"impression_source": "Search",
"percentage": 0.0217
},
{
"impression_source": "Sound",
"percentage": 0
},
{
"impression_source": "Follow",
"percentage": 0
},
{
"impression_source": "For You",
"percentage": 0.917
},
{
"impression_source": "Hashtag",
"percentage": 0
},
{
"impression_source": "Personal Profile",
"percentage": 0
}
],
"likes": 22,
"mediaType": "video",
"musicTitle": "♬ original sound - tiff", // If available
"musicUrl": "https://www.tiktok.com/music/original-sound-6689804660171082501?refer=embed", // if available
"name": "Mackly",
"postUrl": "https://www.tiktok.com/@tiktoktime/video/7129893524253756713?utm_campaign=tt4d_open_api&utm_source=awawnhyictaos7o7",
"reach": 252, // Total number of unique users who viewed the video. Available 24-48 hours after posting.
"shares": 0,
"shareUrl": "https://www.tiktok.com/@tiktoktime/video/7129893524253756713?utm_campaign=tt4d_open_api&utm_source=awawnhyictaos7o7", // Deprecated, user postUrl
"tags": [ // Tags included in the description
{
"tag": "#foryoupage",
"url": "https://www.tiktok.com/tag/foryoupage"
},
{
"tag": "#petsoftiktok",
"url": "https://www.tiktok.com/tag/petsoftiktok"
},
{
"tag": "#aesthetic",
"url": "https://www.tiktok.com/tag/aesthetic"
}
],
"thumbnailHeight": 576,
"thumbnailUrl": "https://p16-sign.tiktokcdn-us.com/obj/tos-useast5-p-0068-tx",
"thumbnailWidth": 1006,
"url": "https://www.tiktok.com/@tiktoktime",
"videoDuration": 13.984,
"videoViews": 34
},
"lastUpdated": "2022-04-23T18:44:29.778Z",
"nextUpdate": "2022-04-23T19:19:29.778Z"
},
// Note: if the post was sent as a Twitter Thread, the return will be an array, "twitter": []
"twitter": {
"id": "1313589441919827982", // Twitter Social ID
"postUrl": "https://www.twitter.com/myaccount/1313589441919827982",
"analytics": {
"created": "2022-09-07T22:12:10.000Z",
"media": [
{
"width": 1920,
"durationMs": 28240,
"height": 1080,
"mediaKey": "7_1739849636389814272",
"previewImageUrl": "https://pbs.twimg.com/ext_tw_video_thumb/1739849636389814272/pu/img/bCkAdkD0R00-ZlkY.jpg",
"type": "video",
"mediaUrls": [ // available for videos and gifs
{
"bitRate": 256000,
"contentType": "video/mp4",
"mediaUrl": "https://video.twimg.com/ext_tw_video/1739849636389814272/pu/vid/avc1/480x270/4RoZCqynednVMFgy.mp4?tag=12"
},
{
"bitRate": 832000,
"contentType": "video/mp4",
"mediaUrl": "https://video.twimg.com/ext_tw_video/1739849636389814272/pu/vid/avc1/640x360/RYy5iHTIxu7_iyZm.mp4?tag=12"
},
{
"bitRate": 2176000,
"contentType": "video/mp4",
"mediaUrl": "https://video.twimg.com/ext_tw_video/1739849636389814272/pu/vid/avc1/1280x720/9UpR90ekFA-9Ucxo.mp4?tag=12"
},
{
"contentType": "application/x-mpegURL",
"mediaUrl": "https://video.twimg.com/ext_tw_video/1739849636389814272/pu/pl/0AVy2xIOLQcsrEZG.m3u8?tag=12&container=fmp4"
}
]
}
],
"name": "Wonder World",
"post": "Today is a great day!",
"publicMetrics": { // Organic and paid metrics available publicly. Use this to measure Tweet engagement.
"retweetCount": 0, // Retweets count
"quoteCount": 0, // Times the Tweet was quoted count
"likeCount": 0, // Likes for the Tweet count
"replyCount": 0 // Replies count
},
"nonPublicMetrics": { // Organic and paid metrics not available publicly. Not available for Tweets older than 30 days. Use this to determine the total number of impressions generated for the Tweet.
"userProfileClicks": 1, // User profile clicks
"impressionCount": 5, // How many times the Tweet has been viewed (not unique by user). A view is counted if any part of the Tweet is visible on the screen.
"video": { // Users who played through to each quartile in a video. This reflects the number of quartile views across all Tweets in which the given video has been posted.
"playback25Count": 4,
"playback50Count": 2,
"playback75Count": 1,
"playback0Count": 4,
"playback100Count": 1
}
},
"organicMetrics": { // Non-paid metrics. Not available for Tweets older than 30 days. Use this to measure organic engagement for the Tweet.
"likeCount": 0, // Tweet likes
"impressionCount": 5, // How many times the Tweet has been viewed (not unique by user). A view is counted if any part of the Tweet is visible on the screen.
"replyCount": 0, // Replies count
"retweetCount": 0, // R countetweets
"userProfileClicks": 1, // User profile clicks
"video": { // Users who played through to each quartile in a video. This reflects the number of quartile views across all Tweets in which the given video has been posted.
"playback25Count": 4,
"playback0Count": 4,
"playback100Count": 1,
"viewCount": 4,
"playback50Count": 2,
"playback75Count": 1
}
},
"poll": { // Present if Tweet has a poll
"durationMinutes": 5, // Duration in minutes
"endDatetime": "2023-05-29T17:28:05.000Z",
"votingStatus": "open", // "open" or "closed"
"id": "1663234520718371960",
"options": [
{
"position": 1,
"label": "yes",
"votes": 3
},
{
"position": 2,
"label": "maybe",
"votes": 1
},
{
"position": 3,
"label": "no",
"votes": 0
}
]
},
"urls": [ // Available for long Tweets only
{
"start": 866,
"end": 889,
"url": "https://t.co/3r6xz4hBnM",
"expandedUrl": "https://www.cnn.com",
"displayUrl": "cnn.com"
}
],
"username": "wondrous"
},
"lastUpdated": "2022-04-23T18:44:29.778Z",
"nextUpdate": "2022-04-23T19:19:29.778Z"
},
"youtube": {
"id": "RWJMpOUGicU", // YouTube Social ID
"postUrl": "https://youtu.be/RWJMpOUGicU",
"analytics": {
"averageViewDuration": 6, // The average length, in seconds, of video playbacks.
"averageViewPercentage": 92.01, // The average percentage of a video watched during a video playback.
"channelTitle": "youtubeHandle",
"comments": 22,
"created": "2022-08-15T19:14:44Z",
"description": "Doubt is not a pleasant condition, but certainty is absurd. - Voltaire",
"dislikes": 3,
"estimatedMinutesWatched": 23, // The number of minutes that users watched videos for the specified channel, content owner, video, or playlist.
"likes": 54,
"liveBoardcastDetails": {. // Only present if liveBroadcast is "live" or "upcoming"
"activeLiveChatId": "Cg0KC3Ez" // The ID of the currently active live chat attached to this video. Not present if broadcast complete and chat no longer live
"actualStartTime": "2023-05-04T10:14:56Z", // The time that the broadcast actually started.
"actualEndTime": "2023-05-04T10:15:15Z", // The time that the broadcast actually ended.
"concurrentViewers": 384343, // The number of viewers currently watching the broadcast. Not present if the broadcast has ended.
"scheduledEndTime": "2023-05-04T10:15:00Z", // The time that the broadcast is scheduled to end if a scheduled end time was set.
"scheduledStartTime": "2023-05-04T10:15:00Z" // The time that the broadcast is scheduled to begin.
},
"liveBroadcast": "live", // Values: "none", "live", "upcoming"
"madeForKids": false,
"privacyStatus": "public",
"publishedAt": "2023-05-08T12:30:26Z",
"subscribersGained": 23, // The number of times that users subscribed to a channel.
"subscribersLost": 1, // The number of times that users unsubscribed from a channel.
"tags": ["sweet", "sour"], // Tags assigned to video
"thumbnailUrl": "https://i.ytimg.com/vi/RWJMpOUGicU/default.jpg",
"title": "Yo time",
"videosAddedToPlaylists": 2, // The number of times that videos were added to any YouTube playlists. The videos could have been added to the video owner's playlist or to other channels' playlists.
"views": 153
},
"lastUpdated": "2022-04-23T18:44:29.778Z",
"nextUpdate": "2022-04-23T19:19:29.778Z"
},
"status": "success",
"code": 200,
"id": "IHvCLacgPc6hMU9IQ6oK"
}
// Often if manually deleted at social network
{
"status": "error",
"code": 116,
"id": "N7GAZeJSAYcdCpHSm3xQ", // Ayrshare Post ID
"facebook": {
"action": "post",
"status": "error",
"code": 186,
"message": "Post ID not found. Please verify the top level ID returned from the /post endpoint is being sent and the post at the social network has not been deleted.",
"id": "104619420979033_588326339980968" // Facebook Platform ID
},
"instagram": {
"action": "post",
"status": "error",
"code": 186,
"message": "Post ID not found. Please verify the top level ID returned from the /post endpoint is being sent and the post at the social network has not been deleted.",
"id": "18349092271045074" // Instagram Platform ID
},
"linkedin": {
"action": "post",
"status": "error",
"code": 186,
"message": "Post ID not found. Please verify the top level ID returned from the /post endpoint is being sent and the post at the social network has not been deleted.",
"id": "urn:li:share:7038277251594878976" // LinkedIn Platform ID
},
"pinterest": {
"action": "post",
"status": "error",
"code": 186,
"message": "Post ID not found. Please verify the top level ID returned from the /post endpoint is being sent and the post at the social network has not been deleted. Pin not found."
},
"twitter": {
"action": "post",
"status": "error",
"code": 186,
"message": "Could not find tweet with id: [1632511562660433929].",
"id": "1632511562660433929" // Twitter Platform ID
},
"youtube": {
"action": "post",
"status": "error",
"code": 186,
"message": "Post ID not found. Please verify the top level ID returned from the /post endpoint is being sent and the post at the social network has not been deleted.",
"id": "rAMFoqZeOGg" // YouTube Platform ID
},
"lastUpdated": "2023-03-06T21:59:06.064Z",
"nextUpdate": "2023-03-06T22:10:06.064Z"
}
{
"action": "analytics",
"status": "error",
"code": 186,
"message": "Post ID not found.",
"id": "7aVBe0jw27DNwFq92KZ"
}
Request Examples
curl \
-H "Authorization: Bearer API_KEY" \
-H 'Content-Type: application/json' \
-d '{"id": "Post ID", "platforms": ["facebook", "instagram", "twitter", "youtube", "tiktok", "linkedin", "pinterest"]}' \
-X POST https://app.ayrshare.com/api/analytics/post
const API_KEY = "API_KEY";
fetch("https://app.ayrshare.com/api/analytics/post", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${API_KEY}`
},
body: JSON.stringify({
id: "Post ID", // required
platforms: ["facebook", "instagram", "twitter", "youtube", "tiktok", "linkedin", "pinterest"], // optional
}),
})
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
payload = {'id': 'Post ID',
'platforms': ['facebook', 'instagram', 'twitter', 'youtube', 'tiktok', 'linkedin', 'pinterest']}
headers = {'Content-Type': 'application/json',
'Authorization': 'Bearer API_KEY'}
r = requests.post('https://app.ayrshare.com/api/analytics/post',
json=payload,
headers=headers)
print(r.json())
<?php
$apiUrl = 'https://app.ayrshare.com/api/analytics/post';
$apiKey = 'API_KEY'; // Replace 'API_KEY' with your actual API key
$headers = [
'Content-Type: application/json',
'Authorization: Bearer ' . $apiKey,
];
$data = json_encode([
'id' => 'Post ID', // Replace with your actual Post ID
'platforms' => ['facebook', 'instagram', 'twitter', 'youtube', 'tiktok', 'linkedin', 'pinterest'] // optional
]);
$curl = curl_init($apiUrl);
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $data
]);
$response = curl_exec($curl);
if ($response === false) {
echo 'Curl error: ' . curl_error($curl);
} else {
echo json_encode(json_decode($response), JSON_PRETTY_PRINT);
}
curl_close($curl);
package main
import (
"bytes"
"encoding/json"
"log"
"net/http"
)
func main() {
message := map[string]interface{}{
"id": "Post ID",
"platforms": []string{"facebook", "instagram", "twitter", "youtube", "tiktok, "linkedin", "pinterest"},
}
bytesRepresentation, err := json.Marshal(message)
if err != nil {
log.Fatalln(err)
}
req, _ := http.NewRequest("POST", "https://app.ayrshare.com/api/analytics/post",
bytes.NewBuffer(bytesRepresentation))
req.Header.Add("Content-Type", "application/json; charset=UTF-8")
req.Header.Add("Authorization", "Bearer API_KEY")
res, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal("Error:", err)
}
res.Body.Close()
}
using System;
using System.Net;
using System.IO;
namespace PostAnalyticsPOSTRequest_charp
{
class PostAnalytics
{
static void Main(string[] args)
{
string API_KEY = "API_KEY";
string url = "https://app.ayrshare.com/api/analytics/analytics/post";
var httpWebRequest = WebRequest.CreateHttp(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add("Authorization", "Bearer " + API_KEY);
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"id\" : \"Post ID\","
+ "\"platforms\" : [ \"facebook\", \"instagram\", \"twitter\", \"youtube\", \"tiktok\", \"linkedin\", \"pinterest\" ]";
streamWriter.Write(json);
streamWriter.Flush();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var response = streamReader.ReadToEnd();
Console.WriteLine(response);
}
}
}
}
POST Analytics on a Social Network
POST
https://app.ayrshare.com/api/analytics/social
Get analytics and demographics on a user's social profile, such as impressions, views, and followers.
Currently available for Facebook Pages, Instagram Accounts, Twitter handles, LinkedIn Company Pages, YouTube Channels, Google My Business accounts, TikTok accounts, Reddit, and Pinterest Users.
⮕ Facebook Page analytics is generally only available on Pages with 100 or more likes, such as demographics. Facebook typically updates their metrics once every 24 hours.
⮕ Instagram may take up to 48 hours to calculate the analytics data. Follower count analytics is not available with fewer than 100 followers. Demographic metrics only return the top 45 performers, only viewers for whom we have demographic data are used in demographic metric calculations, and demographic data is not returned if the Instagram User has fewer than 100 engagements during the last 30 days.
⮕ LinkedIn only supports Company Page analytics. LinkedIn count
totals are eventually consistent, but not immediately consistent, and can take up to 24-48 hours in some cases.
⮕ Please see the post analytics endpoint for additional info.
Headers
Request Body
{
"status": "success",
"facebook": {
// See specific time ranges - Lifetime unless otherwise noted
"analytics": {
"about": "Te best site to watch movies.",
"birthday": "11/20/1985", // Applicable to Pages representing people
"caterory": "Movie", // The Page's category. e.g. Product/Service, Computers/Technology.
"emails": ["support@ayrshare.com"],
"engagement": { // If available, otherwise use fanCount
"count": 587, // Page like count, same as fanCount
"socialSentence": "587 people like this."
},
"fanCount": 587,
"followersCount": 587,
"id": "102619320979033",
"instagramBusinessAccount": {
"id": "17841452212707498" // Present if an Instagram account is linked with the Facebook page
},
"isPublished": true, // If the FB Page is publicly visable.
"link": "https://www.facebook.com/102619320979033",
"location": { // If a location is set
"street": "142 W 57th St",
"zip": "10019"
}
"name": "theGoodone",
"pageFansAdds": 23, // The number of new people who have liked your Page.
"pageFanAddsUnique": 0,
"pageFanRemoves": 1, // Unlikes of your Page.
"pageFanRemovesUnique": 0,
"pageFans": 556, // The total number of people who have liked your Page.
"pageFansCity": { // Aggregated Facebook location data, sorted by city (top 50), about the people who like your Page. (Unique Users)
"Seattle, United States of America": 1,
"Ras al-Khaimah, United Arab Emirates": 1,
"Mexico City, Mexica": 1,
...
},
"pageFansCountry": { // Aggregated Facebook location data, sorted by country (top 50), about the people who like your Page. (Unique Users)
"BD": 1,
"EG": 1,
...
},
"pageFansLocale": { // Aggregated language data about the people who like your Page based on the default language setting selected when accessing Facebook. (Unique Users)
"bn_IN": 3,
"es_LA": 6,
"pa_IN": 1,
...
},
"pageImpressions": 160, // The number of times any content from your Page or about your Page entered a person's screen. This includes posts, stories, ads, as well other content or information on your Page.
"pageImpressionsPaidUnique": 0, // The number of times any post or story content from your Page or about your Page entered a person's screen through paid distribution such as an ad.
"pageImpressionsUnique": 0, // Unique number of impressions.
"pageImpressionsViral": 1, // The number of times any content from your Page or about your Page entered a person's screen with social information attached. Social information displays when a person's friend interacted with your Page, post or story. This includes when someone's friend likes or follows your Page, engages with a post, shares a photo of your Page and checks into your Page.
"pageImpressionsViralUnique": 1, // Unique viral impressions
"pageImpressionsPaid": 23, // The number of times any post or story content from your Page or about your Page entered a person's screen through paid distribution such as an ad.
"pagePostEngagements": 20, // The number of times people have engaged with your posts through reactions, comments, shares and more.
"pagePostsImpressions": 124, // The number of times your Page's posts entered a person's screen. Posts include statuses, photos, links, videos and more.
"pagePostsImpressionsNonviral": 559, // Post impressions that were not from viral posts.
"pagePostsImpressionsNonviralUnique": 422, // Unqiue post impressions that were not from viral posts.
"pagePostsImpressionsOrganicUnique": 423, // Unique post impressions that were from organic (non-paid) posts.
"pagePostsImpressionsPaid": 34, // The number of times your Page's posts entered a person's screen through paid distribution such as an ad.
"pagePostsImpressionsPaidUnique": // The number of unqiue paid post impressions
"pagePostsImpressionsUnique": 23, // The number of unique impressions.
"pagePostsImpressionsViral": 1, // The number of times your Page's posts entered a person's screen with social information attached. Social information displays when a person's friend interacted with you Page or post. This includes when someone's friend likes or follows your Page, engages with a post, shares a photo of your Page and checks into your Page.
"pagePostsImpressionsViralUnique": 1, // The number of people who had any of your Page's posts enter their screen with social information attached. As a form of organic distribution, social information displays when a person's friend interacted with you Page or post. This includes when someone's friend likes or follows your Page, engages with a post, shares a photo of your Page and checks into your Page.
"pagePostsServedImpressionsOrganicUnique": 1, // The number of people who were served your Page's posts in their Feed whether it entered their screen or not. Posts include statuses, photos, links, videos and more.
// --- Page Video Data ---
"pageVideoCompleteViews30s": 32, // The number of times your Page's videos played for at least 30 seconds, or for nearly their total length if they're shorter than 30 seconds. During a single instance of a video playing, we'll exclude any time spent replaying the video.
"pageVideoCompleteViews30sAutoplayed": 19, // Autoplayed 30s complete.
"pageVideoCompleteViews30sClickToPlay": 5, // Click to play 30s complete.
"pageVideoCompleteViews30sOrganic": 23, // Organic 30s complete.
"pageVideoCompleteViews30sPaid": 2, // Paid 30s complete.
"pageVideoCompleteViews30sRepeatViews": 3, // Repeat 30s complete.
"pageVideoCompleteViews30sUnique": 3, // Unique 30s complete.
"pageVideoRepeatViews": 4, // The number times of repeat views.
"pageVideoViewTime": 10232, // The total time, in milliseconds, people viewed your Page's video.
"pageVideoViews": 31, // The number of times your Page's videos played for at least 3 seconds, or for nearly their total length if they're shorter than 3 seconds. During a single instance of a video playing, we'll exclude any time spent replaying the video.
"pageVideoViews10S": 55, // Please see above for description of views for X seconds
"pageVideoViews10SAutoplayed": 42,
"pageVideoViews10SClickToPlay": 13,
"pageVideoViews10SOrganic": 55,
"pageVideoViews10SPaid": 0,
"pageVideoViews10SRepeat": 13,
"pageVideoViews10SUnique": 42,
"pageVideoViewsAutoplayed": 115, // Number of views that autoplayed on a user's screen
"pageVideoViewsOrganic": 32, // The number of organic video views.
"pageVideoViewsPaid": 6, // The number of times your Page's promoted videos played for at least 3 seconds, or for nearly their total length if they're shorter than 3 seconds. For each impression of a video, we'll count video views separately and exclude any time spent replaying the video.
"pageVideoViewsByPaidNonPaid": { // Breakdown of view views by paid and non-paid
"total": 32,
"unpaid": 5,
"paid": 27
},
"pageVideoViewsByUploadedHosted": { // Daily video views on a page-level broken down by all variants of page-uploaded and page-hosted variants.
"pageUploaded": 147,
"pageUploadedFromCrossposts": 0,
"pageUploadedFromShares": 3,
"pageHostedCrosspost": 0,
"pageHostedShare": 0,
"pageOwned": 144
},
"pageVideoViewsClickToPlay": 32, // The number of times your Page's videos played for at least 3 seconds, or for nearly their total length if they're shorter than 3 seconds, after people clicked play. During a single instance of a video playing, we'll exclude any time spent replaying the video.
"pageVideoViewsOrganic": 147, // The number of times your Page's videos played for at least 3 seconds, or for nearly their total length if they're shorter than 3 seconds, by organic reach. During a single instance of a video playing, we'll exclude any time spent replaying the video.
"pageVideoViewsPaid": 0, // The number of times your Page's promoted videos played for at least 3 seconds, or for nearly their total length if they're shorter than 3 seconds. For each impression of a video, we'll count video views separately and exclude any time spent replaying the video.
"pageVideoViewsUnique": 113, // The number of people who viewed your Page's videos for at least 3 seconds, or for nearly their total length if they're shorter than 3 seconds. During a single instance of a video playing, we'll exclude any time spent replaying the video.
"reactions": { // Total over past 180 days
"like": 1, // Like reactions - The "like" reaction counts include both "like" and "care" reactions.
"love": 1, // Love reactions
"anger": 1, // Anger reactions
"haha": 1, // Haha reactions
"wow": 1, // Wow reactions
"sorry": 1, // Sorry reactions
"total": 6 // Total number of reactions
},
"unreadMessageCount": 12, // Total unread FB Messages - if applicable
"username": "ayrshare",
"verified": true, // verified Facebook Page
"website": "https://www.theGoodone.com"
},
"quarters": 4,
"lastUpdated": "2024-04-25T21:28:10.877Z",
"nextUpdate": "2024-04-25T21:39:10.877Z"
},
// See deprecated fields https://docs.ayrshare.com/additional-info/upcoming-api-changes#changes-in-effect-february-17-2023
"gmb": {
"analytics":
{