Platform Helpers
Helper endpoints for fetching platform-specific resources — such as Facebook pages, LinkedIn organization pages, Pinterest boards, Google Business locations, and recent media — that you need when constructing upload requests.
All endpoints require API key authentication unless noted.
Authorization: Apikey YOUR_API_KEY
List Facebook Pages
GET https://api.indreelforge.com/api/platforms/facebook/pages
Returns all Facebook Pages connected to the authenticated user's account for the given profile. The id returned here is the Facebook Page ID required when targeting a specific page in an upload request.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/platforms/facebook/pages?profile=my-profile'
Response
{
"pages": [
{
"id": "123456789012345",
"name": "My Brand Page",
"picture": "https://example.com/picture.jpg"
}
],
"profile": "my-profile"
}
Error Responses
| Status | Description |
|---|---|
404 | Facebook is not connected for the given profile |
400 | Facebook Graph API returned an error (e.g. expired token) |
List LinkedIn Organization Pages
GET https://api.indreelforge.com/api/platforms/linkedin/pages
Returns LinkedIn organization pages for which the authenticated user has administrator access. The id field is the numeric LinkedIn organization ID used when posting on behalf of an organization.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/platforms/linkedin/pages?profile=my-profile'
Response
{
"pages": [
{
"urn": "urn:li:organization:98765432",
"name": "My Company",
"id": "98765432"
}
],
"profile": "my-profile"
}
If the connected LinkedIn account has no organization pages or lacks administrator permissions, pages will be an empty array and a message field will explain the reason.
{
"pages": [],
"profile": "my-profile",
"message": "No organization pages found or insufficient permissions"
}
Error Responses
| Status | Description |
|---|---|
404 | LinkedIn is not connected for the given profile |
List Pinterest Boards
GET https://api.indreelforge.com/api/platforms/pinterest/boards
Returns all Pinterest boards belonging to the connected account. The id returned here is the board ID required in the board_id field of a Pinterest upload request.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/platforms/pinterest/boards?profile=my-profile'
Response
{
"boards": [
{
"id": "814893702703375551",
"name": "Travel Inspiration",
"description": "Places I want to visit",
"privacy": "PUBLIC",
"pin_count": 142
}
],
"profile": "my-profile",
"pinterest_account_used": "myusername"
}
Error Responses
| Status | Description |
|---|---|
404 | Pinterest is not connected for the given profile |
400 | Pinterest API returned an error |
List Google Business Locations
GET https://api.indreelforge.com/api/platforms/google-business/locations
Returns all Google Business Profile locations accessible to the connected account. Iterates through every Google Business account the user administers and collects all locations. The name field is the resource path used when posting to a specific location.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/platforms/google-business/locations?profile=my-profile'
Response
{
"locations": [
{
"name": "accounts/123456789/locations/987654321",
"title": "My Coffee Shop – Downtown",
"account_id": "accounts/123456789"
},
{
"name": "accounts/123456789/locations/987654322",
"title": "My Coffee Shop – Uptown",
"account_id": "accounts/123456789"
}
],
"profile": "my-profile"
}
Error Responses
| Status | Description |
|---|---|
404 | Google Business is not connected for the given profile |
400 | Google Business API returned an error |
List Reddit Detailed Posts
GET https://api.indreelforge.com/api/platforms/reddit/detailed-posts
Returns up to 100 recent posts submitted by the connected Reddit account, with engagement data and media metadata.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile_username | string | Yes | Profile username |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/platforms/reddit/detailed-posts?profile_username=my-profile'
Response
{
"posts": [
{
"id": "abc123",
"title": "Check out this video",
"subreddit": "videography",
"url": "https://i.redd.it/abc123.mp4",
"permalink": "https://reddit.com/r/videography/comments/abc123/check_out_this_video/",
"score": 452,
"num_comments": 17,
"created_utc": 1717200000,
"thumbnail": "https://b.thumbs.redditmedia.com/abc.jpg",
"is_video": true,
"media": null
}
],
"profile": "my-profile"
}
Error Responses
| Status | Description |
|---|---|
400 | profile_username query param is missing |
404 | Reddit is not connected for the given profile |
List Recent Media
GET https://api.indreelforge.com/api/platforms/media
Returns up to 100 recent completed uploads for a profile, with platform-specific post IDs. Optionally filter by a single platform. Useful for building a cross-platform media library view.
| Parameter | Type | Required | Description |
|---|---|---|---|
profile | string | Yes | Profile username |
platform | string | No | Filter results to a single platform (e.g. instagram, youtube) |
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
'https://api.indreelforge.com/api/platforms/media?profile=my-profile&platform=instagram'
Response
{
"media": [
{
"upload_id": 1042,
"platform": "instagram",
"post_id": "17854360229135492",
"caption": "Summer campaign reel",
"media_type": "video",
"timestamp": "2025-06-01T10:23:00.000Z"
},
{
"upload_id": 1038,
"platform": "instagram",
"post_id": "17854360229135401",
"caption": "Product launch photo",
"media_type": "photo",
"timestamp": "2025-05-30T08:11:00.000Z"
}
],
"profile": "my-profile",
"count": 2
}
Error Responses
| Status | Description |
|---|---|
400 | profile query param is missing |
404 | Profile not found |
Get Available Metrics Per Platform
GET https://api.indreelforge.com/api/platforms/metrics
Returns the list of analytics metrics available for each platform, and whether that platform supports time-series data. This endpoint is public — no authentication required.
curl https://api.indreelforge.com/api/platforms/metrics
Response
{
"platforms": {
"instagram": {
"metrics": ["followers", "reach", "impressions", "profile_views", "likes", "comments", "saves", "shares"],
"supports_timeseries": true
},
"youtube": {
"metrics": ["subscribers", "views", "watch_time", "likes", "comments", "shares"],
"supports_timeseries": true
},
"facebook": {
"metrics": ["page_fans", "page_impressions", "page_views", "post_reactions", "post_comments", "post_shares"],
"supports_timeseries": true
},
"tiktok": {
"metrics": ["followers", "views", "likes", "comments", "shares"],
"supports_timeseries": true
},
"x": {
"metrics": ["followers", "impressions", "likes", "retweets", "replies", "profile_visits"],
"supports_timeseries": false
},
"linkedin": {
"metrics": ["connections", "impressions", "unique_impressions", "clicks", "reactions", "comments", "shares"],
"supports_timeseries": true
},
"threads": {
"metrics": ["followers", "views", "likes", "replies", "reposts", "quotes"],
"supports_timeseries": false
},
"pinterest": {
"metrics": ["followers", "impressions", "pin_clicks", "outbound_clicks", "saves", "total_audience"],
"supports_timeseries": true
},
"reddit": {
"metrics": ["karma", "post_score", "comments"],
"supports_timeseries": false
},
"bluesky": {
"metrics": ["followers", "posts", "likes"],
"supports_timeseries": false
},
"google_business": {
"metrics": ["views", "searches", "actions", "direction_requests", "calls", "website_clicks"],
"supports_timeseries": true
}
}
}
Get Platform Upload Limits
GET https://api.indreelforge.com/api/platform-limits
Returns per-platform daily and hourly upload usage for the authenticated account, along with the enforced limits and maximum file sizes. Limits reflect the upstream platform API quotas that IndReelForge enforces.
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
https://api.indreelforge.com/api/platform-limits
Response
{
"platform_limits": {
"instagram": {
"daily": { "used": 3, "limit": 50, "remaining": 47 },
"hourly": { "used": 1, "limit": 25, "remaining": 24 },
"note": "Graph API limit: 50 posts/day, 25/hour",
"max_file_size_mb": 100
},
"youtube": {
"daily": { "used": 1, "limit": 6, "remaining": 5 },
"note": "Data API v3 default quota: ~6 uploads/day (10K units, 1600/upload)",
"max_file_size_mb": 256000
},
"facebook": {
"daily": { "used": 0, "limit": 50, "remaining": 50 },
"hourly": { "used": 0, "limit": 25, "remaining": 25 },
"note": "Graph API limit: 50 posts/page/day",
"max_file_size_mb": 1024
},
"tiktok": {
"daily": { "used": 2, "limit": 20, "remaining": 18 },
"note": "Content Posting API: ~20 posts/day (production)",
"max_file_size_mb": 287
},
"x": {
"daily": { "used": 5, "limit": 17, "remaining": 12 },
"note": "Pay-per-use X API; posting beyond 1 free post/month requires the X add-on",
"max_file_size_mb": 512
},
"linkedin": {
"daily": { "used": 0, "limit": 150, "remaining": 150 },
"note": "Share API: 150 posts/member/day",
"max_file_size_mb": 5120
},
"threads": {
"daily": { "used": 1, "limit": 250, "remaining": 249 },
"hourly": { "used": 1, "limit": 83, "remaining": 82 },
"note": "Threads API: 250 posts/day, 83/hour",
"max_file_size_mb": null
},
"pinterest": {
"daily": { "used": 0, "limit": 50, "remaining": 50 },
"hourly": { "used": 0, "limit": 20, "remaining": 20 },
"note": "API: 50 pins/day, ~20/hour",
"max_file_size_mb": 32
},
"reddit": {
"daily": { "used": 0, "limit": 100, "remaining": 100 },
"hourly": { "used": 0, "limit": 10, "remaining": 10 },
"note": "API: ~10 posts/hour, karma-dependent",
"max_file_size_mb": null
},
"bluesky": {
"daily": { "used": 0, "limit": 555, "remaining": 555 },
"note": "AT Protocol: ~555 posts/day (1667 points, 3pts/post)",
"max_file_size_mb": null
},
"google_business": {
"daily": { "used": 0, "limit": 10, "remaining": 10 },
"note": "Business Profile API: ~10 posts/location/day",
"max_file_size_mb": null
}
}
}
Platforms without an hourly key do not have an enforced per-hour limit. max_file_size_mb is null when IndReelForge does not impose a specific cap for that platform.