Social media analytics API Instagram, TikTok, YouTube and 8 more
A social media analytics API returns followers, impressions, reach and per-post metrics from several networks through one endpoint, so you do not integrate Instagram’s, TikTok’s and YouTube’s own analytics APIs one by one. Upload-Post’s covers 11 networks with one API key, includes Instagram audience demographics, and comes with every plan, the Free plan too.
curl "https://api.upload-post.com/api/analytics/my-brand\
?platforms=instagram,tiktok,youtube" \
-H "Authorization: Apikey YOUR_API_KEY" Networks covered by the analytics API
The same call shape for every one of them; add a network by adding it to the platforms list.
- TikTok
- YouTube
- X
- Threads
- Bluesky
- Google Business Profile
Which endpoint answers which question
Seven endpoints, one per question a dashboard or an agent usually asks.
| Question | Endpoint | What you get |
|---|---|---|
| How is this account doing? | GET /api/analytics/{profile}?platforms=… | Account metrics for several networks in one call, with 30 days of daily reach or views. Instagram also returns audience demographics. |
| How many impressions in total? | GET /api/uploadposts/total-impressions/{profile} | One impressions figure across networks, with optional per-platform and per-day breakdown, or the metrics you pick. |
| How did this post do everywhere? | GET /api/uploadposts/post-analytics/{request_id} | Every network a post went to, for posts published through Upload-Post. |
| How did any post do, organic ones included? | GET /api/uploadposts/post-analytics?platform_post_id=…&platform=…&user=… | Live metrics by the network’s own post ID. |
| Metrics for thousands of posts | GET /api/uploadposts/post-analytics/cached | Paginated replay of results already fetched. |
| Who follows the account and when are they online? | GET /api/uploadposts/audience?platform=tiktok | TikTok: demographics, active hours, daily follower gains and losses, profile actions, category benchmark. |
| Which metrics does each network report? | GET /api/uploadposts/platform-metrics | The metric configuration per network: available metrics, labels and the primary impressions field. |
Full parameters and responses: Analytics API and Audience Insights.
What the response looks like
One key per network you asked for, the same field names everywhere, and a metric_type that tells you what the daily series counts on that network (reach, views, impressions or score), so you never add up two different things by mistake.
reach_timeseries: the last 30 days, one value per day, ready for a chart.follower_demographicsandengaged_audience_demographics: Instagram audience by age, gender, country and city.- Errors are plain HTTP: 400 for a bad platforms list, 401 for a bad key, 404 for an unknown profile.
{
"instagram": {
"followers": 4712,
"reach": 12500,
"views": 34000,
"profileViews": 890,
"likes": 1200,
"comments": 150,
"shares": 80,
"saves": 220,
"reach_timeseries": [
{ "date": "2026-10-20", "value": 420 },
{ "date": "2026-10-21", "value": 515 }
],
"follower_demographics": {
"age": { "25-34": 1900, "35-44": 1300 },
"gender": { "F": 2800, "M": 1700 },
"country": { "US": 2100, "GB": 600 },
"city": { "New York, New York": 310 }
},
"metric_type": "reach"
}
} Metrics by network
What each network reports at account level, and the extras only some of them have.
| Network | Account metrics | Extras |
|---|---|---|
| followers, reach, views, profileViews (accounts engaged), likes, comments, shares, saves | Follower and engaged-audience demographics by age, gender, country and city | |
| YouTube | followers (subscribers), views, likes, comments, shares | Watch time in minutes and average view duration |
| TikTok | views as the primary metric | Audience insights: demographics, hours online, follower gains and losses, profile actions, category benchmark |
| Facebook Pages | reach as the primary metric | Daily impressions for any window from 1 to 365 days, fetched live from Meta |
| LinkedIn company pages | reach (unique impressions) | Pick the page by URN when an account manages several |
| X | impressions | |
| Threads | views | |
| impressions | Pin clicks and outbound clicks | |
| post score, used as a proxy for impressions | ||
| Bluesky | engagement: likes, reposts, replies and quotes on the last 30 days of posts |
Per-post metrics (likes, comments, shares, saves, views) come from the post-analytics endpoints. Google Business Profile is covered too; its fields are in the docs.
How impressions are compared across networks
Each network counts differently. The total-impressions endpoint uses the closest metric each one reports.
| Network | Metric used | Why |
|---|---|---|
reach | Instagram renamed impressions to views; both fields are returned | |
reach | Unique account reach | |
reach | Unique impressions | |
| TikTok | views | Video view counts |
| YouTube | views | Video view counts |
| X | impressions | Post impression counts |
| Threads | views | Content view counts |
impressions | Pin impression counts | |
score | Post score, used as a proxy for impressions |
Live data or snapshots?
“Real-time” means different things per endpoint. This is exactly where each number comes from.
Account analytics
The current figures plus 30 days of daily values. For Facebook you choose a window of 1 to 365 days and it is fetched live from Meta.
Post analytics by post ID
Fetched live from the network, one post per call.
Total impressions
Built from daily snapshots of each account, so a date range can be charted day by day.
Cached post analytics
Results already fetched, paginated, for reports over thousands of posts.
Instagram demographics follow Meta’s thresholds: 100 or more followers for follower demographics, and roughly 100 engaged accounts, about 48 hours later, for engaged-audience demographics.
Pull cross-network analytics in Python
Two calls cover most reports: total impressions for a period with a per-platform breakdown, and live metrics for a single post by its ID on the network.
Prefer no code? The same data is in the Upload-Post dashboard, and AI assistants connected through the MCP server can read it for you.
import requests
API = "https://api.upload-post.com/api/uploadposts"
HEADERS = {"Authorization": "Apikey YOUR_API_KEY"}
# Impressions across every connected network, last month, per platform and day
r = requests.get(
f"{API}/total-impressions/my-brand",
params={"period": "last_month", "breakdown": "true"},
headers=HEADERS,
)
print(r.json())
# Live metrics for one post, by the network's own post ID
r = requests.get(
f"{API}/post-analytics",
params={
"platform_post_id": "17912345678901234",
"platform": "instagram",
"user": "my-brand",
},
headers=HEADERS,
)
print(r.json()) Native analytics APIs or a unified one?
Every network has its own analytics: the Instagram Graph API insights, the TikTok API, the YouTube Analytics API, LinkedIn’s Community Management API for company pages. Each needs its own app, permissions, review and token refresh, and each names its metrics differently.
A unified API is the better fit when you report on several networks, run a dashboard for clients or let an agent answer questions about performance. If you only need one network and want every raw field it exposes, its native API is the direct route; our Instagram, TikTok, YouTube and LinkedIn API guides cover them.
Social media analytics API: frequently asked questions
Is there one API for Instagram, TikTok and YouTube analytics?
Yes. A unified analytics API returns metrics from several networks through one endpoint and one API key. Upload-Post’s covers Instagram, TikTok, YouTube, LinkedIn, X, Facebook, Threads, Pinterest, Reddit, Bluesky and Google Business Profile, so you do not integrate each network’s own analytics API separately.
What metrics does the social media analytics API return?
Account metrics such as followers, reach, views and impressions, engagement such as likes, comments, shares and saves, and network-specific extras: Instagram audience demographics, YouTube watch time, Pinterest pin and outbound clicks. The platform-metrics endpoint lists exactly which metrics each network provides.
Can I get audience demographics?
Yes, for Instagram and TikTok. Instagram account analytics include follower and engaged-audience demographics by age, gender, country and city. The TikTok audience endpoint adds the hours followers are online, daily follower gains and losses and a category benchmark.
Why are my Instagram demographics empty?
Meta only returns follower demographics for accounts with 100 or more followers, and engaged-audience demographics once roughly 100 accounts have engaged, with a lag of about 48 hours. Below those thresholds the API returns empty objects instead of an error.
Is the analytics API real-time?
Post analytics by post ID are fetched live from the network when you call them, and Facebook account insights are fetched live for the window you choose. Total impressions are built from daily snapshots so ranges can be charted day by day, and the cached endpoint replays results already fetched for bulk reports.
Is analytics included in the free plan?
Yes. Analytics is included in every Upload-Post plan, the Free plan too, with the same API key you use to publish.
Can I get analytics for posts I did not publish through the API?
Yes. Pass the network’s own post ID, the platform and your profile to the post-analytics endpoint and it fetches live metrics for that post, organic posts included.
Can an AI assistant read my analytics?
Yes. The same metrics are tools in the Upload-Post MCP server, so Claude, ChatGPT or Cursor can answer “which of my posts did best this month?” from your real numbers.
Publish and measure with the same key
The API key that reads your analytics also publishes and schedules to 22 networks. Free plan, no card.