Analytics
Retrieve performance metrics for your uploads, profiles, and connected platforms.
All analytics endpoints require authentication via session cookie or Authorization: Apikey YOUR_API_KEY header.
GET /api/analytics/overview, /youtube-stats, /activity, and /:upload_id are available on all plans. The remaining endpoints (/views, /platforms, /top-posts, /platform-performance, /profile/:profile_name) require a paid plan with analytics enabled. A 403 is returned otherwise.
Get Overview
GET https://api.indreelforge.com/api/analytics/overview
Returns aggregate upload counts and account stats for the authenticated user. Available on all plans.
Query Parameters
| Parameter | Default | Description |
|---|---|---|
range | 30d | Time range for period_uploads and trend. Any integer followed by d (e.g. 7d, 90d). |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/analytics/overview?range=30d'
Response
{
"total_uploads": 120,
"period_uploads": 47,
"completed": 115,
"failed": 3,
"trend": 12.5,
"profiles": 4,
"api_keys": 2,
"range": "30d"
}
| Field | Description |
|---|---|
total_uploads | All-time upload count for the account |
period_uploads | Uploads created within the requested range |
completed | All-time completed uploads |
failed | All-time failed uploads |
trend | Percentage change in uploads vs. the previous equivalent period (e.g. +12.5 means 12.5 % more uploads this period than last) |
profiles | Number of profiles on the account |
api_keys | Number of API keys on the account |
range | Echo of the range query param used |
Get Daily Upload Counts
GET https://api.indreelforge.com/api/analytics/views
Returns a day-by-day upload count series. Missing days are filled with 0. Requires a paid plan.
Alias: GET /api/analytics/views-over-time — identical behaviour.
Query Parameters
| Parameter | Default | Description |
|---|---|---|
range | 30d | Number of days to include, or all (capped at 365 days) |
profile | — | Filter to a single profile by name |
platform | — | Filter to uploads that targeted a specific platform (e.g. instagram) |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/analytics/views?range=7d&platform=instagram'
Response
{
"data": [
{ "date": "2026-04-11", "count": 3 },
{ "date": "2026-04-12", "count": 0 },
{ "date": "2026-04-13", "count": 5 }
],
"range": "7d"
}
Get Platform Breakdown
GET https://api.indreelforge.com/api/analytics/platforms
Returns total upload count per platform for the authenticated user, sorted by count descending. Requires a paid plan.
Alias: GET /api/analytics/uploads-by-platform — identical behaviour.
Query Parameters
| Parameter | Default | Description |
|---|---|---|
range | 30d | Time range (integer days or all) |
profile | — | Filter to a single profile by name |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/analytics/platforms?range=30d'
Response
{
"platforms": [
{ "platform": "instagram", "count": 32, "percentage": 45.1 },
{ "platform": "youtube", "count": 18, "percentage": 25.4 },
{ "platform": "tiktok", "count": 14, "percentage": 19.7 },
{ "platform": "x", "count": 4, "percentage": 5.6 },
{ "platform": "linkedin", "count": 3, "percentage": 4.2 }
],
"total": 71
}
percentage is each platform's share of the total upload count across all platforms within the selected range.
Get Top Posts
GET https://api.indreelforge.com/api/analytics/top-posts
Returns the 10 most recent completed uploads, optionally filtered by profile and platform. Requires a paid plan.
Query Parameters
| Parameter | Default | Description |
|---|---|---|
range | 30d | Time range (integer days or all) |
profile | — | Filter to a single profile by name |
platform | — | Filter to uploads that targeted a specific platform |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/analytics/top-posts?range=30d'
Response
{
"posts": [
{
"id": "upl_abc123",
"title": "Summer campaign reel",
"upload_type": "video",
"platforms": ["instagram", "tiktok"],
"platform_statuses": {
"instagram": "completed",
"tiktok": "completed"
},
"status": "completed",
"created_at": "2026-04-10T14:32:00.000Z"
}
]
}
Get Platform Performance
GET https://api.indreelforge.com/api/analytics/platform-performance
Returns per-platform upload counts for the current period with a percentage trend vs. the previous equivalent period. Requires a paid plan.
Query Parameters
| Parameter | Default | Description |
|---|---|---|
range | 30 | Number of days (integer only — no d suffix) |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/analytics/platform-performance?range=30'
Response
{
"platforms": [
{ "name": "instagram", "views": "32", "trend": "+14%" },
{ "name": "youtube", "views": "18", "trend": "+0%" },
{ "name": "tiktok", "views": "14", "trend": "-7%" }
]
}
views is the upload count for that platform in the selected period (formatted as "1K" for values ≥ 1000). trend is the percentage change vs. the prior period, e.g. "+14%".
Get YouTube Channel Stats
GET https://api.indreelforge.com/api/analytics/youtube-stats
Fetches live channel statistics from the YouTube Data API for every YouTube profile connected to the account. Available on all plans.
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/analytics/youtube-stats'
Response
{
"profiles": [
{
"profile": "my-brand",
"channel_name": "My Brand Official",
"channel_id": "UCxxxxxxxxxxxxxxxxxxxxxx",
"thumbnail": "https://yt3.ggpht.com/...",
"subscribers": 48200,
"total_views": 1820000,
"video_count": 142,
"hidden_subscribers": false
}
]
}
If a channel cannot be fetched (e.g. token expired), that entry will include an error field instead of the stats fields:
{ "profile": "my-brand", "error": "No channel found" }
Get Activity Feed
GET https://api.indreelforge.com/api/analytics/activity
Returns a unified activity feed of recent uploads, profiles created, and API keys generated, sorted by timestamp descending. Returns up to 20 events. Available on all plans.
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/analytics/activity'
Response
{
"activities": [
{
"type": "upload",
"message": "video uploaded to instagram, tiktok",
"title": "Summer campaign reel",
"status": "completed",
"timestamp": "2026-04-17T09:14:00.000Z"
},
{
"type": "profile",
"message": "Profile 'my-brand' created",
"timestamp": "2026-04-15T11:00:00.000Z"
},
{
"type": "api_key",
"message": "API key 'production' generated",
"timestamp": "2026-04-14T08:22:00.000Z"
}
]
}
type value | Fields present |
|---|---|
upload | type, message, title, status, timestamp |
profile | type, message, timestamp |
api_key | type, message, timestamp |
Get Profile Analytics
GET https://api.indreelforge.com/api/analytics/profile/:profile_name
Returns aggregate upload stats for a single profile. Requires a paid plan.
Path Parameters
| Parameter | Description |
|---|---|
profile_name | The name of the profile (must belong to the authenticated user) |
Query Parameters
| Parameter | Default | Description |
|---|---|---|
range | 30d | Time range (integer days or all). Also accepted as period. |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/analytics/profile/my-brand?range=30d'
Response
{
"profile": "my-brand",
"period": "30d",
"total_uploads": 120,
"period_uploads": 47,
"completed": 115,
"failed": 3,
"top_platform": "instagram",
"growth_rate": "+12.5%",
"uploads_by_platform": {
"instagram": 32,
"tiktok": 14,
"youtube": 1
}
}
| Field | Description |
|---|---|
total_uploads | All-time upload count for this profile |
period_uploads | Uploads in the requested range |
completed / failed | All-time completed / failed counts |
top_platform | Platform with the most uploads in the period, or null |
growth_rate | Percentage change vs. prior equivalent period (e.g. "+12.5%") |
uploads_by_platform | Upload count per platform within the period |
Returns 404 if the profile does not exist or does not belong to the authenticated user.
Get Upload Detail
GET https://api.indreelforge.com/api/analytics/:upload_id
Returns the status and platform-level details for a specific upload. Available on all plans.
IndReelForge stores post IDs at publish time. Live engagement metrics (views, likes, comments) are not stored locally — retrieve them directly from each platform's API using the post_id values returned here.
Path Parameters
| Parameter | Description |
|---|---|
upload_id | The ID of the upload |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
https://api.indreelforge.com/api/analytics/upl_abc123
Response
{
"upload_id": "upl_abc123",
"title": "Summer campaign reel",
"type": "video",
"status": "completed",
"created_at": "2026-04-10T14:32:00.000Z",
"completed_at": "2026-04-10T14:34:12.000Z",
"platforms": {
"instagram": {
"status": "completed",
"post_id": "17846368219001234"
},
"tiktok": {
"status": "completed",
"post_id": "7012345678901234567"
}
},
"post_urls": {
"instagram": "https://www.instagram.com/p/Cxxxxxxxx/",
"tiktok": "https://www.tiktok.com/@handle/video/7012345678901234567"
}
}
| Field | Description |
|---|---|
upload_id | Upload identifier |
title | Upload title |
type | Upload type (video, photos, text, etc.) |
status | Overall upload status (completed, failed, queued, etc.) |
created_at | ISO 8601 timestamp when the upload was created |
completed_at | ISO 8601 timestamp when the upload finished, or null |
platforms | Map of platform name → { status, post_id } |
post_urls | Map of platform name → direct post URL, or null if not stored |
Returns 404 if the upload does not exist or does not belong to the authenticated user.