Social Media Analytics API

One insights endpoint for likes, impressions, reach, shares, and engagement across platforms. Build dashboards and reports without stitching vendor APIs.

InstagramFacebookTikTokYouTubeXThreadsLinkedInReddit+ more

No credit card required

Get Post Analytics (cURL)
curl "https://api.onepostly.com/v1/posts/POST_ID/insights" \
-H "x-api-key: op_YOUR_KEY"
 
# Response:
# {
# "platform": "x",
# "metrics": {
# "likes": 342,
# "impressions": 12450
# }
# }

Supported Platforms

Key Features

Everything you need to pull normalized post performance into your product without owning each platform analytics SDK.

Engagement Metrics

Likes, comments, shares, and saves in a shared shape so every destination is easy to compare.

Impressions & Reach

Track how many people see your content. Fields stay null when a platform does not expose the metric.

Compare Performance

One response covers every destination on a post, so you can compare platforms without merging APIs.

Analytics API

Pull insights programmatically with GET /v1/posts/:id/insights and build custom dashboards or reports.

Normalized Metrics

Platform-specific fields map into a consistent metrics object across X, Instagram, Facebook, and Threads.

Simple API Key Auth

Authenticate with x-api-key. Scope reads to a destination with destinationId when you need a single network.

Cached Snapshots

Insights are fetched from platform APIs and returned in a stable response so your product can render fast.

Multiple Destinations

Publish once to many connections, then read per-destination status and metrics from the same post ID.

How it works

Pull analytics in 3 steps

Connect accounts, publish, and pull normalized insights.

1

Connect an account

Complete OAuth for each destination. Onepostly stores and refreshes tokens so insights calls only need connection context.

2

Publish posts

Publish through POST /v1/posts. Once a destination is live, platform metrics become available for that post.

3

Pull insights

Call GET /v1/posts/:id/insights for normalized metrics across destinations, or pass destinationId for a single network.

Why developers choose Onepostly

One metrics contract

Stop mapping X, Instagram, Facebook, and Threads responses yourself. Onepostly returns a shared metrics shape.

Built for production reads

Per-destination status tells you when metrics are ready, pending, unsupported, or failed so dashboards stay honest.

Scales with your workspace

Start on Free, then move to Growth or Scale as you connect more accounts. Your insights integration stays the same.

Great developer experience

REST docs, OpenAPI, and copy-paste cURL examples. Pull likes, impressions, and engagement without stitching vendor SDKs.

Transparent pricing

Simple plan limits for connected accounts. Insights are part of the API. X reads debit a prepaid wallet at X list prices.

Platform changes handled for you

When social analytics APIs change, Onepostly updates the adapters. Your insights calls keep the same shape.

Code Examples

Get Post Analytics
curl "https://api.onepostly.com/v1/posts/POST_ID/insights" \
-H "x-api-key: op_YOUR_KEY"
 
# Response:
# {
# "platform": "x",
# "metrics": {
# "likes": 342,
# "impressions": 12450
# }
# }
Filter by Destination
curl "https://api.onepostly.com/v1/posts/POST_ID/insights?destinationId=DEST_ID" \
-H "x-api-key: op_YOUR_KEY"
 
# Response:
# {
# "platform": "instagram",
# "metrics": {
# "likes": 128,
# "impressions": 4200
# }
# }

Frequently asked questions

Metrics, destination filters, and how to pull normalized insights into dashboards and reports.

It is a programmatic way to pull engagement metrics such as likes, impressions, reach, shares, and saves. Onepostly returns a normalized shape across supported platforms from one insights endpoint.

Normalized fields include likes, comments, shares, saves, impressions, reach, plays, and engagement when the platform exposes them. Missing values stay null instead of fake zeros.

Call GET /v1/posts/:id/insights with your x-api-key. Optionally pass destinationId to scope the response to a single connected account.

One Onepostly post can target multiple destinations. Without destinationId you get metrics for every destination on that post. With destinationId you filter to one network or account.

Insights are part of the API on every plan. Account limits follow your plan. Some X insight reads debit the prepaid wallet at X list prices.

Yes. The insights response is JSON-ready for custom dashboards, client reports, and automation. Use webhooks or polling only if you need status beyond a single pull.

Ship once. Post everywhere.