Skip to content

Endpoints

MethodPathPurpose
GET/analyticsWorkspace-wide metrics
GET/analytics/post/:uploadIdPer-post breakdown
GET/analytics/platform-metricsMetric schema for each platform
POST/analytics/syncTrigger a fresh pull

GET /analytics

bash
curl "https://api.socifyr.com/api/analytics?from=2026-01-01&to=2026-04-01&platform=instagram&granularity=day"
Query paramDescription
from / toISO date range
platformFilter by platform
granularityday / week / month

Response:

json
{
  "success": true,
  "data": {
    "summary": {
      "totalPublished": 47,
      "totalSucceeded": 45,
      "totalFailed": 2,
      "successRate": 95.74,
      "totalLikes": 12540,
      "totalComments": 891,
      "totalShares": 230,
      "totalImpressions": 245120
    },
    "snapshots": [
      {
        "date": "2026-01-01",
        "published": 2,
        "likes": 240,
        "comments": 18,
        "impressions": 3500
      }
    ]
  }
}

GET /analytics/post/:uploadId

bash
curl "https://api.socifyr.com/api/analytics/post/6a05032a84584482ace13d5f"

Accepts either the MongoDB ObjectId or the UUID requestId.

Response:

json
{
  "success": true,
  "data": {
    "uploadId": "...",
    "requestId": "...",
    "title": null,
    "status": "completed",
    "scheduledAt": null,
    "createdAt": "...",
    "platforms": [
      {
        "platform": "instagram",
        "status": "success",
        "postId": "...",
        "postUrl": "...",
        "publishedAt": "...",
        "targetName": "@mybrand",
        "error": null,
        "engagement": {
          "likes": 240,
          "comments": 18,
          "shares": 5,
          "impressions": 3500,
          "clicks": 0,
          "saves": 12
        }
      }
    ]
  }
}

GET /analytics/platform-metrics

json
{
  "success": true,
  "data": [
    {
      "platform": "tiktok",
      "primaryImpression": "views",
      "metrics": ["likes", "comments", "shares", "impressions"],
      "labels": { "impressions": "Video views", "likes": "Hearts" }
    }
  ]
}

POST /analytics/sync

No body. Enqueues a background job to refresh metrics across all platforms.

Response:

json
{ "success": true, "data": { "enqueued": 32 } }