11 networks, one API key, every plan

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.

analytics.sh
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.

  • Instagram
  • TikTok
  • YouTube
  • LinkedIn
  • X
  • Facebook
  • Threads
  • Pinterest
  • Reddit
  • Bluesky
  • Google Business Profile

Which endpoint answers which question

Seven endpoints, one per question a dashboard or an agent usually asks.

QuestionEndpointWhat 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 postsGET /api/uploadposts/post-analytics/cachedPaginated replay of results already fetched.
Who follows the account and when are they online?GET /api/uploadposts/audience?platform=tiktokTikTok: demographics, active hours, daily follower gains and losses, profile actions, category benchmark.
Which metrics does each network report?GET /api/uploadposts/platform-metricsThe 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_demographics and engaged_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.
200 OK (shortened)
{
  "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.

NetworkAccount metricsExtras
Instagramfollowers, reach, views, profileViews (accounts engaged), likes, comments, shares, savesFollower and engaged-audience demographics by age, gender, country and city
YouTubefollowers (subscribers), views, likes, comments, sharesWatch time in minutes and average view duration
TikTokviews as the primary metricAudience insights: demographics, hours online, follower gains and losses, profile actions, category benchmark
Facebook Pagesreach as the primary metricDaily impressions for any window from 1 to 365 days, fetched live from Meta
LinkedIn company pagesreach (unique impressions)Pick the page by URN when an account manages several
Ximpressions
Threadsviews
PinterestimpressionsPin clicks and outbound clicks
Redditpost score, used as a proxy for impressions
Blueskyengagement: 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.

NetworkMetric usedWhy
InstagramreachInstagram renamed impressions to views; both fields are returned
FacebookreachUnique account reach
LinkedInreachUnique impressions
TikTokviewsVideo view counts
YouTubeviewsVideo view counts
XimpressionsPost impression counts
ThreadsviewsContent view counts
PinterestimpressionsPin impression counts
RedditscorePost 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.

report.py
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.