Platforms
List platform schemas and integration possibilities
get/api/v1/platforms
Request
- Base URL: https://www.poster.ly
- URL: https://www.poster.ly/api/v1/platforms
- Auth: HTTP bearer
Query parameters
platformstring
Return a single platform schema.
include_plannedboolean
Include planned integrations from the provider expansion backlog.
Response
Platforms fetched successfully
Example response
{
"platforms": [
{
"id": "instagram",
"aliases": [
"instagram-standalone"
],
"label": "Instagram",
"status": "supported",
"summary": "Publish feed posts, reels, stories, story series, polls, comment prompts, tagged posts, and collaborator content.",
"content_limit": 2200,
"media": {
"min": 1,
"max": 10
},
"post_types": [
"image",
"carousel",
"reel",
"story",
"story_series"
],
"analytics_supported": true,
"settings_schema": {
"fields": [
{
"key": "__type",
"type": "string",
"enum": [
"instagram",
"instagram-standalone"
],
"description": "Instagram account type hint."
},
{
"key": "post_type",
"type": "string",
"enum": [
"post",
"feed",
"story",
"reel",
"carousel"
],
"description": "Instagram publishing format."
},
{
"key": "is_trial_reel",
"type": "boolean",
"aliases": [
"trial_reel"
],
"description": "Request an Instagram Trial Reel when the account supports it."
},
{
"key": "graduation_strategy",
"type": "string",
"enum": [
"MANUAL",
"SS_PERFORMANCE"
],
"description": "Trial Reel graduation strategy."
},
{
"key": "collaborators",
"type": "array",
"description": "Native co-author invitations. Meta-linked Instagram accounts only; feed images, Reels, and carousels; maximum 3; not Stories."
},
{
"key": "user_tags",
"type": "array",
"description": "Native clickable media tags, not caption @mentions. Supported by eligible direct Instagram and Meta-linked connections; feed images, Reels/video, and Stories. Tags apply to each carousel child and the first Story in a Story Series."
},
{
"key": "first_comment",
"type": "string",
"description": "First comment to publish after the post."
},
{
"key": "reel_cover_url",
"type": "string",
"aliases": [
"cover_url"
],
"description": "Custom Reel cover image URL."
},
{
"key": "reel_thumb_offset",
"type": "number",
"aliases": [
"thumb_offset"
],
"description": "Video timestamp, in milliseconds, for a generated Reel thumbnail."
},
{
"key": "is_ai_generated",
"type": "boolean",
"aliases": [
"instagram_is_ai_generated",
"ai_generated"
],
"description": "Label the parent media container as AI-generated (is_ai_generated). For carousels, set this on the parent only, never on child slides."
},
{
"key": "audio_id",
"type": "string",
"aliases": [
"instagram_audio_id"
],
"description": "Licensed Instagram audio ID for Reels (audio_configuration.audio_id). Meta-linked Facebook Login accounts only; hidden for Instagram Login."
},
{
"key": "caption_addon",
"type": "object",
"aliases": [
"instagram_caption_addon"
],
"description": "Optional caption add-on. type is none, poll, or comment_prompt. A poll needs 2 to 4 options (1 to 25 characters each; an emoji counts as one) and the caption is the question. A comment prompt uses the caption as the prompt. Facebook Login only. Not Stories. Carousel parent only. At most one add-on. Pass null or type none to clear."
},
{
"key": "poll_attachment",
"type": "object",
"aliases": [
"instagram_poll_attachment"
],
"description": "Poll choices: option_a and option_b required, option_c and option_d optional, option_d requires option_c. Serialised JSON must be 200 characters or fewer. Mutually exclusive with is_comment_prompt_used. The caption is the question."
},
{
"key": "is_comment_prompt_used",
"type": "boolean",
"aliases": [
"instagram_is_comment_prompt_used"
],
"description": "Attach a comment prompt. The caption is the prompt. Mutually exclusive with poll_attachment. Facebook Login only. Not Stories."
},
{
"key": "is_poll_duration_extended",
"type": "boolean",
"aliases": [
"instagram_is_poll_duration_extended"
],
"description": "Request the longer poll duration. Only valid together with a poll."
},
{
"key": "media_alt_texts",
"type": "object",
"aliases": [
"alt_texts"
],
"description": "Legacy map of source media URLs to alt text. Still accepted for backwards compatibility."
},
{
"key": "media_accessibility",
"type": "array",
"description": "Ordered media accessibility entries: { index, asset_id?, source_url?, alt_text }. Preferred because identity survives platform media preparation."
}
],
"example": {
"__type": "instagram",
"post_type": "reel",
"first_comment": "Full details in the caption.",
"is_ai_generated": true
}
},
"helper_tools": [],
"native_features": [
"Native caption polls (2 to 4 options, Meta connection required)",
"Comment prompts (Meta connection required)",
"User tags on feed photos, Reels, Stories, and carousel slides",
"Up to 3 collaborator invites on feed posts, Reels, and carousels (Meta connection required)",
"Story series publishing",
"Optional companion Story posting",
"AI or uploaded reel cover",
"First comment publishing",
"Trial Reels on eligible accounts",
"Licensed Reel audio (Meta connection required)"
]
},
{
"id": "facebook",
"aliases": [],
"label": "Facebook",
"status": "supported",
"summary": "Publish text posts, images, videos, reels, stories, cover photos, and styled text posts.",
"content_limit": 63206,
"media": {
"min": 0,
"max": 10
},
"post_types": [
"text",
"image",
"video",
"carousel",
"reel",
"story",
"cover_photo"
],
"analytics_supported": true,
"settings_schema": {
"fields": [
{
"key": "post_type",
"type": "string",
"enum": [
"post",
"feed",
"story",
"reel",
"cover_photo"
],
"description": "Facebook publishing format. Reel uses the Graph Reels API and must be 90 seconds or shorter; use video for longer clips. A 90.0 second Reel is allowed."
},
{
"key": "text_format_preset_id",
"type": "string",
"aliases": [
"background_preset_id"
],
"description": "Styled text post background preset."
},
{
"key": "reel_cover_url",
"type": "string",
"aliases": [
"cover_url"
],
"description": "Custom Reel cover image URL."
},
{
"key": "media_alt_texts",
"type": "object",
"aliases": [
"alt_texts"
],
"description": "Legacy map of source media URLs to alt text. Still accepted for backwards compatibility."
},
{
"key": "media_accessibility",
"type": "array",
"description": "Ordered media accessibility entries: { index, asset_id?, source_url?, alt_text }. Preferred because identity survives platform media preparation."
}
],
"example": {
"post_type": "reel",
"reel_cover_url": "https://example.com/cover.jpg"
}
},
"helper_tools": [],
"native_features": [
"Styled text backgrounds",
"Cover photo publishing",
"Story series publishing",
"Story publishing support",
"Reel cover support",
"First comment on supported feed posts and videos"
]
},
{
"id": "tiktok",
"aliases": [],
"label": "TikTok",
"status": "supported",
"summary": "Publish videos and photo posts with privacy settings, interaction controls, and branded content options.",
"content_limit": 2200,
"media": {
"min": 1,
"max": 35,
"images_max": 35,
"videos_max": 1
},
"post_types": [
"video",
"image",
"carousel"
],
"analytics_supported": false,
"settings_schema": {
"fields": [
{
"key": "privacy_level",
"type": "string",
"description": "TikTok direct-post privacy level from the creator info helper."
},
{
"key": "allow_comment",
"type": "boolean",
"description": "Allow comments when direct posting."
},
{
"key": "allow_duet",
"type": "boolean",
"description": "Allow duets when direct posting."
},
{
"key": "allow_stitch",
"type": "boolean",
"description": "Allow stitches when direct posting."
},
{
"key": "title",
"type": "string",
"description": "For a video, the title is the first line of the caption when the title and the caption both fit within 2,200 characters. For a photo post, it is a 90-character title."
},
{
"key": "media_type",
"type": "string",
"enum": [
"PHOTO"
],
"description": "Set to PHOTO for TikTok photo posts or multi-photo slideshows."
},
{
"key": "photo_cover_index",
"type": "number",
"description": "Zero-based cover image index for TikTok photo posts."
},
{
"key": "video_cover_timestamp_ms",
"type": "number",
"aliases": [
"cover_timestamp_ms"
],
"description": "Millisecond timestamp of the video frame to use as the cover (direct post only)."
},
{
"key": "auto_add_music",
"type": "boolean",
"description": "Ask TikTok to add recommended music to photo posts when direct posting."
},
{
"key": "is_commercial_content",
"type": "boolean",
"description": "TikTok commercial content disclosure."
},
{
"key": "is_your_brand",
"type": "boolean",
"description": "TikTok branded content: your own brand."
},
{
"key": "is_branded_content",
"type": "boolean",
"description": "TikTok branded content: third-party brand."
},
{
"key": "ai_generated",
"type": "boolean",
"aliases": [
"ai_disclosure"
],
"description": "Label the post as AI-generated (TikTok is_aigc)."
}
],
"example": {
"privacy_level": "PUBLIC_TO_EVERYONE",
"media_type": "PHOTO",
"photo_cover_index": 0,
"auto_add_music": true,
"allow_comment": true,
"allow_duet": false,
"allow_stitch": false,
"video_cover_timestamp_ms": 1500
}
},
"helper_tools": [
{
"name": "tiktok.creator_info",
"status": "available",
"description": "Fetch TikTok creator posting status and direct-post privacy options.",
"requires_account": true,
"input_schema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}
],
"native_features": [
"Privacy settings",
"Comments / duet / stitch toggles",
"Branded content disclosure",
"TikTok title field",
"Draft fallback when direct posting is unavailable",
"Video cover frame selection (direct post)",
"Photo slideshow cover selection",
"AI-generated content label"
]
}
]
}Changes
No recorded changes to this operation across all 1 revision of this API.