Analytics

The Threads post metrics returned by the analytics endpoints and the errors they report.

Read views, likes, replies and shares for any Threads post of a connected profile. The connection needs the threads_manage_insights permission.

Metrics

FieldThreads metricNotes
impressionsviews
reachNoneAlways null
playsviewsSame value as impressions
likeslikes
commentsreplies
sharessharesWhen Threads does not report shares, the sum of reposts and quotes
savesNoneAlways null
engagementCalculatedlikes + comments + shares

A metric Threads does not return for a post is null, not 0.

Read Post Analytics

Pass the Onepostly post id, or the Threads post id plus accountId for a post published outside Onepostly. See Targeting Posts.

import { Configuration, AnalyticsApi } from "@onepostly/sdk";

const analyticsApi = new AnalyticsApi(
  new Configuration({ apiKey: process.env.ONEPOSTLY_API_KEY })
);

const response = await analyticsApi.getAnalytics({
  post: "1699f415-7fb6-43f4-9d2a-c447491f32a8",
  metrics: "views,reach,profile_views",
  period: "day",
});
console.log(response);
{
  "analytics": {
    "post": "1699f415-7fb6-43f4-9d2a-c447491f32a8",
    "status": "ready",
    "fetchedAt": "2026-08-25T10:00:00.000Z",
    "subjects": [
      {
        "scope": "destination",
        "subjectId": "d4e5f6a7-8b9c-4d0e-8f1a-2b3c4d5e6f7a",
        "accountId": "a1b2c3d4-e5f6-4a7b-8c9d-e0f1a2b3c4d5",
        "platform": "threads",
        "externalPostId": "17895695668004550",
        "status": "ready",
        "metrics": {
          "impressions": 1234,
          "reach": null,
          "likes": 123,
          "comments": 12,
          "shares": 4,
          "saves": null,
          "plays": 456,
          "engagement": 0.14
        },
        "fetchedAt": "2026-08-25T10:00:00.000Z",
        "expiresAt": "2026-09-01T10:00:00.000Z",
        "error": null,
        "externalUrl": "https://www.threads.com/@you/post/17895695668004550"
      }
    ]
  }
}

For day-by-day values, use the Daily Timeline.

Analytics Status

A post that has just been published reports pending until Threads returns its first metrics. The meaning of every status is in Analytics Status.

Errors

These codes appear in subjects[].error.code.

CodeCauseFix
NOT_PUBLISHEDThe Threads destination is not published yetRead analytics after post.platform.published
ANALYTICS_PERMISSIONThe connection lacks threads_manage_insightsReconnect the account and approve every permission
ANALYTICS_FAILEDThreads returned an error for this postRead error.message; check that the post still exists on Threads
ANALYTICS_UNAVAILABLEThreads returned no metrics for this postRead analytics again later