Skip to main content

Profiles

Manage your IndReelForge profiles. A profile is a named container that holds your connected social media accounts.

List Profiles​

GET https://api.indreelforge.com/api/profiles

Returns all profiles belonging to the authenticated user.

curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
https://api.indreelforge.com/api/profiles

Response​

{
"status": "success",
"data": [
{
"id": 1,
"name": "my-brand",
"avatar_url": null,
"created_at": "2025-01-01T00:00:00.000Z",
"connected_platforms": ["instagram", "youtube", "tiktok"]
}
]
}

Create Profile​

POST https://api.indreelforge.com/api/profiles
ParameterTypeRequiredDescription
namestringYesProfile name — lowercase, alphanumeric, hyphens allowed
info

Name restrictions: Reserved words (admin, mod, support, etc.) and NSFW names are blocked. Names must be unique within your account.

curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name": "my-brand"}' \
-X POST https://api.indreelforge.com/api/profiles

Response​

{
"status": "success",
"data": {
"id": 2,
"name": "my-brand"
}
}

Delete Profile​

DELETE https://api.indreelforge.com/api/profiles/:name

Deletes a profile and disconnects all its linked platform accounts.

curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-X DELETE https://api.indreelforge.com/api/profiles/my-brand

Response​

{
"status": "success",
"message": "Profile deleted"
}

Get Single Profile​

GET https://api.indreelforge.com/api/profiles/:name

Returns a single profile with all its platform connection details.

curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
https://api.indreelforge.com/api/profiles/my-brand

Response​

{
"id": 1,
"name": "my-brand",
"avatar_url": null,
"created_at": "2025-01-01T00:00:00.000Z",
"connections": [
{
"platform": "instagram",
"status": "connected",
"platform_username": "@mybrand",
"profile_picture_url": "https://...",
"connected_at": "2025-01-10T12:00:00.000Z"
}
]
}

Connect Platform to Profile​

POST https://api.indreelforge.com/api/profiles/:name/connect/:platform

Initiates OAuth for the specified platform and returns an authorization URL. Redirect the user to oauth_url to complete the connection.

Supported platforms: instagram, youtube, facebook, tiktok, x, linkedin, threads, pinterest, reddit, bluesky, google_business

note

Bluesky uses app-password authentication instead of OAuth. Use the Bluesky app-password endpoint instead.

Discord, Telegram, Slack, Mastodon and WordPress connect with credentials, not a login. Calling this endpoint for them returns 400 with error_code: "USE_CREDENTIALS_CONNECT" — use Connect with Credentials instead.

curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-X POST https://api.indreelforge.com/api/profiles/my-brand/connect/instagram

Response​

{
"success": true,
"oauth_url": "https://www.instagram.com/oauth/authorize?client_id=...&state=...",
"message": "Redirecting to instagram authorization"
}

Connect Bluesky via App Password​

POST https://api.indreelforge.com/api/profiles/:name/connect/bluesky/app-password

Bluesky does not use OAuth — connect using your Bluesky handle and an app password generated in Bluesky settings.

ParameterTypeRequiredDescription
handlestringYesYour Bluesky handle (e.g. yourname.bsky.social)
app_passwordstringYesApp password generated in Bluesky settings
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"handle": "yourname.bsky.social", "app_password": "xxxx-xxxx-xxxx-xxxx"}' \
-X POST https://api.indreelforge.com/api/profiles/my-brand/connect/bluesky/app-password

Response​

{
"success": true,
"message": "Bluesky connected",
"username": "yourname.bsky.social"
}

Connect with Credentials​

POST https://api.indreelforge.com/api/profiles/:name/connect/:platform/credentials

Connects a platform that uses typed credentials instead of OAuth: Discord, Telegram, Slack, Mastodon and WordPress. Send the platform's fields as a JSON body. IndReelForge verifies them live with the platform before anything is saved, and stores them encrypted. Connecting again replaces the stored credentials. Requires the editor team role or higher.

Supported platforms: discord, telegram, slack, mastodon, wordpress

PlatformFields (all required)Guide
discordwebhook_url — the channel webhook URLDiscord
telegrambot_token — token from @BotFather; chat_id — public channel @username or numeric chat IDTelegram
slackwebhook_url — the incoming webhook URLSlack
mastodoninstance_url — e.g. https://mastodon.social; access_token — with write:statuses and write:mediaMastodon
wordpresssite_url — your self-hosted site; username — a user who can publish; app_password — an application passwordWordPress
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"instance_url": "https://mastodon.social", "access_token": "YOUR_MASTODON_TOKEN"}' \
-X POST https://api.indreelforge.com/api/profiles/my-brand/connect/mastodon/credentials

Response​

{
"success": true,
"message": "Connected to Mastodon as @yourname",
"platform_username": "@yourname"
}

Errors​

StatusBodyMeaning
400{ "error": "Webhook URL is required.", "field": "webhook_url" }A field is missing, empty or longer than 2,000 characters
400{ "error": "...", "error_code": "INVALID_CREDENTIALS" }The platform rejected the details (wrong token, unknown channel, missing permission …). The message says what to fix
400{ "error": "X does not connect with credentials." }The platform uses OAuth or an app password — use the endpoints above
404{ "error": "Profile not found" }No profile with that name
502{ "error": "Could not reach Mastodon to check these details. Please try again." }The platform couldn't be reached to verify the details

Disconnect Platform from Profile​

DELETE https://api.indreelforge.com/api/profiles/:name/disconnect/:platform

Removes a platform connection from a profile. The profile itself is not deleted.

curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-X DELETE https://api.indreelforge.com/api/profiles/my-brand/disconnect/instagram

Response​

{
"success": true,
"message": "instagram disconnected from my-brand"
}

POST https://api.indreelforge.com/api/profiles/:name/whitelabel

Generates a branded connect page URL that your end-users can visit to link their own social accounts to your profile. Requires a Professional plan or higher.

ParameterTypeRequiredDescription
pageTitlestringNoCustom page heading (max 200 chars)
pageDescriptionstringNoCustom description text (max 500 chars)
logoUrlstringNohttps:// URL to your logo image
curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"pageTitle": "Connect Your Social Accounts", "logoUrl": "https://yourbrand.com/logo.png"}' \
-X POST https://api.indreelforge.com/api/profiles/my-brand/whitelabel

Response​

{
"url": "https://indreelforge.com/connect/a1b2c3d4e5f6...",
"message": "Whitelabel link generated"
}

Get Connected Accounts​

GET https://api.indreelforge.com/api/profiles/:name/connected-accounts

Returns the list of social platforms connected to a profile.

curl \
-H 'Authorization: Apikey YOUR_API_KEY' \
https://api.indreelforge.com/api/profiles/my-brand/connected-accounts

Response​

{
"status": "success",
"data": {
"instagram": {
"connected": true,
"username": "@mybrand",
"connected_at": "2025-01-10T12:00:00.000Z"
},
"youtube": {
"connected": true,
"username": "My Brand Channel",
"connected_at": "2025-01-11T09:00:00.000Z"
},
"tiktok": {
"connected": false
}
}
}