antworkDOCS

Performance

How your published posts did: lifetime metrics per post and totals per platform.

GEThttps://antwork.io/api/v1/analytics/performanceScoperead

Request

curl "https://antwork.io/api/v1/analytics/performance?days=30&platform=linkedin" \
  -H "Authorization: Bearer $ANTWORK_API_KEY"

The same numbers as the Antwork analytics page and the MCP get_performance tool. Choose the window with days (1 to 730, default 30) or from and to as YYYY-MM-DD. Narrow with platform or accountId; compare=true adds previous, the totals over the window before. At most 500 rows, set with limit. Needs the read scope.

Response

200 OK
{
  "object": "performance",
  "workspaceId": "ws_...",
  "window": { "from": "2026-09-23T00:00:00.000Z", "to": "2026-10-22T12:00:00.000Z" },
  "platforms": [
    {
      "platform": "linkedin",
      "postCount": 12,
      "totals": { "likes": 340, "comments": 41, "shares": 9, "impressions": 18200 },
      "engagement": 390,
      "rate": 0.0214,
      "skipped": 0,
      "syncedAt": "2026-10-22T06:00:00.000Z",
      "oldestAsOf": "2026-10-22T06:00:00.000Z"
    }
  ],
  "rows": [
    {
      "postId": "pQ7x...",
      "platform": "linkedin",
      "text": "Shipped the API today.",
      "publishedAt": "2026-10-01T09:00:04.000Z",
      "metrics": {
        "likes": { "value": 52, "state": "measured", "asOf": "2026-10-22T06:00:00.000Z" },
        "impressions": { "value": 2400, "state": "measured", "basis": "impressions" }
      },
      "engagement": 61,
      "rate": 0.0254,
      "degraded": []
    }
  ],
  "rowCount": 12,
  "degradedRows": 0
}

Each metric is a cell, not a bare number. state: "measured" carries a value. unsupported means the platform cannot supply that counter at all (Pinterest has no likes). unreadable is a value carried forward from an earlier read, with asOf saying how old it is. An unknown is never reported as 0.

Metrics refresh every six hours. syncedAt on a platform is when its numbers were last read.