Skip to main content

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.

ParameterTypeRequiredDescription
profilestringYesProfile 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​

StatusDescription
404Facebook is not connected for the given profile
400Facebook 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.

ParameterTypeRequiredDescription
profilestringYesProfile 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​

StatusDescription
404LinkedIn 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.

ParameterTypeRequiredDescription
profilestringYesProfile 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​

StatusDescription
404Pinterest is not connected for the given profile
400Pinterest 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.

ParameterTypeRequiredDescription
profilestringYesProfile 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​

StatusDescription
404Google Business is not connected for the given profile
400Google 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.

ParameterTypeRequiredDescription
profile_usernamestringYesProfile 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​

StatusDescription
400profile_username query param is missing
404Reddit 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.

ParameterTypeRequiredDescription
profilestringYesProfile username
platformstringNoFilter 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​

StatusDescription
400profile query param is missing
404Profile 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.