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/platformsAuthentication: 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)
| Field | Type | Description |
|---|---|---|
platform | string | Platform enum value, e.g. "INSTAGRAM" |
name | string | Human-readable display name |
maxTextLength | number | Maximum character count for post content |
maxImages | number | Maximum images per post |
maxVideoLength | number | Maximum video length in seconds |
supportsThreads | boolean | Whether multi-post threads are supported |
supportsCarousels | boolean | Whether multi-image/video carousel posts are supported |
supportsStories | boolean | Whether ephemeral Story-format posts are supported |
supportsReels | boolean | Whether short-form Reel/vertical video posts are supported |
supportsScheduling | boolean | Whether the platform supports native scheduling (informational — VoxBurst schedules all platforms itself regardless of this value) |
supportsFirstComment | boolean | Whether an automatic first comment can be posted alongside the main post |
supportsComments | boolean | Whether inbox comment sync and replies are available for this platform |
supportsAnalytics | boolean | Whether real (non-placeholder) analytics data is available |
supportsOptimalTimes | boolean | Whether AI-driven optimal posting time suggestions are available |
mediaTypes | string[] | Accepted MIME types for media uploads |
rateLimit | object | { postsPerDay, postsPerHour } — VoxBurst’s own outbound rate limiting for this platform, not the platform’s API limits |
videoConstraints | object | omitted | Present only for platforms with additional video requirements — see below |
Video Constraints (when present)
Some platforms (e.g. Instagram) return an additional videoConstraints object:
| Field | Type | Description |
|---|---|---|
maxDurationSecs | number | Maximum video duration in seconds |
minDurationSecs | number | omitted | Minimum video duration in seconds |
maxFileSizeMb | number | Maximum file size in megabytes |
supportedCodecs | string[] | Accepted video codecs, e.g. ["h264"] |
maxResolutionWidth / maxResolutionHeight | number | omitted | Maximum resolution |
minResolutionWidth / minResolutionHeight | number | omitted | Minimum resolution |
aspectRatios | string[] | omitted | Accepted 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
| Status | Code | Cause |
|---|---|---|
404 | NOT_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
| Status | Code | Cause |
|---|---|---|
404 | NOT_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)
| Field | Type | Description |
|---|---|---|
available | boolean | Whether one-click connect is available for this platform |
displayName | string | omitted | Display name of the managed OAuth app or workspace-level platform config |
scopes | string[] | omitted | OAuth scopes the managed app or config requests |
source | string | 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
| Status | Code | Cause |
|---|---|---|
404 | NOT_FOUND | :platform does not match a known platform |
500 | INTERNAL_ERROR | Failed to check managed OAuth status |