Endpoints
| Method | Path | Purpose |
|---|---|---|
GET | /analytics | Workspace-wide metrics |
GET | /analytics/post/:uploadId | Per-post breakdown |
GET | /analytics/platform-metrics | Metric schema for each platform |
POST | /analytics/sync | Trigger 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 param | Description |
|---|---|
from / to | ISO date range |
platform | Filter by platform |
granularity | day / 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 } }