Skip to Content
API ReferencePlatforms

Platforms

Read-only metadata about the social platforms VoxBurst supports: content limits, media constraints, feature support, and managed OAuth (one-click connect) availability. Use this to drive a content editor’s character counters, media pickers, and platform-specific UI without hard-coding limits.

Base URL

https://api.voxburst.io/v1/platforms

Authentication: All endpoints require a Bearer token (API key or Cognito session) and the platforms:read scope. This is a read-only group — there is no platforms:write scope, and any non-GET request to this group returns 403.


List All Platforms

GET /v1/platforms

Returns capability info for every supported platform.

curl https://api.voxburst.io/v1/platforms \ -H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"

Response

{ "data": [ { "platform": "TWITTER", "name": "Twitter / X", "maxTextLength": 280, "maxImages": 4, "maxVideoLength": 140, "supportsThreads": true, "supportsCarousels": false, "supportsStories": false, "supportsReels": false, "supportsScheduling": false, "supportsFirstComment": true, "supportsComments": true, "supportsAnalytics": true, "supportsOptimalTimes": true, "mediaTypes": ["image/jpeg", "image/png", "image/gif", "video/mp4"], "rateLimit": { "postsPerDay": 2400, "postsPerHour": 100 } } ] }

The platform value is always the uppercase enum form (TWITTER, INSTAGRAM, LINKEDIN, etc.) — not lowercase. This matches the Platform enum used everywhere else in the API (accountIds-resolved platform, platformOverrides keys, webhook payloads).

Response Fields (per platform)

FieldTypeDescription
platformstringPlatform enum value, e.g. "INSTAGRAM"
namestringHuman-readable display name
maxTextLengthnumberMaximum character count for post content
maxImagesnumberMaximum images per post
maxVideoLengthnumberMaximum video length in seconds
supportsThreadsbooleanWhether multi-post threads are supported
supportsCarouselsbooleanWhether multi-image/video carousel posts are supported
supportsStoriesbooleanWhether ephemeral Story-format posts are supported
supportsReelsbooleanWhether short-form Reel/vertical video posts are supported
supportsSchedulingbooleanWhether the platform supports native scheduling (informational — VoxBurst schedules all platforms itself regardless of this value)
supportsFirstCommentbooleanWhether an automatic first comment can be posted alongside the main post
supportsCommentsbooleanWhether inbox comment sync and replies are available for this platform
supportsAnalyticsbooleanWhether real (non-placeholder) analytics data is available
supportsOptimalTimesbooleanWhether AI-driven optimal posting time suggestions are available
mediaTypesstring[]Accepted MIME types for media uploads
rateLimitobject{ postsPerDay, postsPerHour } — VoxBurst’s own outbound rate limiting for this platform, not the platform’s API limits
videoConstraintsobject | omittedPresent only for platforms with additional video requirements — see below

Video Constraints (when present)

Some platforms (e.g. Instagram) return an additional videoConstraints object:

FieldTypeDescription
maxDurationSecsnumberMaximum video duration in seconds
minDurationSecsnumber | omittedMinimum video duration in seconds
maxFileSizeMbnumberMaximum file size in megabytes
supportedCodecsstring[]Accepted video codecs, e.g. ["h264"]
maxResolutionWidth / maxResolutionHeightnumber | omittedMaximum resolution
minResolutionWidth / minResolutionHeightnumber | omittedMinimum resolution
aspectRatiosstring[] | omittedAccepted aspect ratios, e.g. ["9:16"]

Get Content Validation Capabilities

GET /v1/platforms/capabilities

Returns detailed content-limit and validation-rule data for every platform, formatted for building content editors (character limits, media limits, hashtag limits, feature flags).

curl https://api.voxburst.io/v1/platforms/capabilities \ -H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"

This endpoint’s response is generated by the same validation service that enforces content rules on POST /v1/posts and POST /v1/posts/validate. If you build a client-side character counter or media picker, source its limits from here rather than hardcoding them — VoxBurst may tighten or loosen a platform’s limits without a breaking API change.


Get Capabilities for a Specific Platform

GET /v1/platforms/:platform/capabilities

Returns the same validation data as /capabilities, scoped to a single platform.

curl https://api.voxburst.io/v1/platforms/instagram/capabilities \ -H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"

The :platform path parameter is case-insensitive — it is uppercased internally before being matched against the Platform enum.

Error Codes

StatusCodeCause
404NOT_FOUND:platform does not match a known platform

Get a Specific Platform

GET /v1/platforms/:platform

Returns the same object shape as a single entry from GET /v1/platforms, scoped to one platform.

curl https://api.voxburst.io/v1/platforms/linkedin \ -H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"

Error Codes

StatusCodeCause
404NOT_FOUND:platform does not match a known platform

Managed OAuth Availability

GET /v1/platforms/managed-oauth

Returns, for every platform, whether a VoxBurst-managed OAuth app (“one-click connect”) is available, or whether the workspace must supply its own app credentials.

curl https://api.voxburst.io/v1/platforms/managed-oauth \ -H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"

Response

{ "platforms": { "twitter": { "available": true, "displayName": "VoxBurst", "scopes": ["tweet.read", "tweet.write"], "source": "managed-oauth" }, "mastodon": { "available": false } } }

Response Fields (per platform key, lowercase)

FieldTypeDescription
availablebooleanWhether one-click connect is available for this platform
displayNamestring | omittedDisplay name of the managed OAuth app or workspace-level platform config
scopesstring[] | omittedOAuth scopes the managed app or config requests
sourcestring | omitted"managed-oauth" (VoxBurst-operated app) or "platform-config" (workspace-configured credentials)

Managed OAuth Availability — Single Platform

GET /v1/platforms/:platform/managed-oauth

Returns detailed managed-OAuth status for a single platform, including rate limit remaining on the shared managed app (if applicable).

curl https://api.voxburst.io/v1/platforms/twitter/managed-oauth \ -H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"

Response (available)

{ "available": true, "platform": "twitter", "displayName": "VoxBurst", "description": "Connect via VoxBurst's shared Twitter app", "scopes": ["tweet.read", "tweet.write"], "rateLimitTotal": 500, "rateLimitRemaining": 412 }

Response (not available)

{ "available": false, "platform": "mastodon", "message": "Managed OAuth not available for this platform. Connect using your own app credentials." }

Error Codes

StatusCodeCause
404NOT_FOUND:platform does not match a known platform
500INTERNAL_ERRORFailed to check managed OAuth status
Last updated on