Video Automation API
Publish and schedule videos to YouTube, TikTok, Instagram, Facebook, Threads, LinkedIn, Pinterest, X and Bluesky. Two APIs share one key: the REST API v1 and an Upload-Post compatible API (same paths, fields and responses – switch by changing the base URL and key). Hosted in Germany.
Base URL: https://app.my-video-automation.com
Authorization: Bearer <key> | Apikey <key>
Account
GET/v1/meWorkspace, plan and usage of this API key
Responses
200 · 400 · 401 · 429
GET/v1/usageUsage per month
Responses
200 · 400 · 401 · 429
Profiles
GET/v1/profilesList profiles with connected accounts
Responses
200 · 400 · 401 · 429
POST/v1/profilesCreate a profile
Body application/json
| username * | string | |
| display_name | string |
Responses
200 · 400 · 401 · 429
DELETE/v1/profiles/{username}Delete a profile (disconnects its accounts)
Parameters
| username | path |
Responses
200 · 400 · 401 · 429
POST/v1/profiles/{username}/connect-linksHosted connect link for your customer (48 h)
Parameters
| username | path |
Body application/json
| platforms | array | |
| redirect_url | string | |
| logo_url | string | |
| title | string | |
| description | string |
Responses
200 · 400 · 401 · 429
Posts
GET/v1/postsList posts
Parameters
| status | query |
| profile | query |
| from | query |
| to | query |
| limit | query |
| offset | query |
Responses
200 · 400 · 401 · 429
POST/v1/postsCreate (publish now or schedule) a post
Parameters
| Idempotency-Key | header |
Body application/json
| profile * | string | |
| platforms * | array | |
| title | string | |
| description | string | |
| media_urls | array | |
| scheduled_at | string | |
| timezone | string | |
| external_id | string | |
| options | object | Per-platform options, same names as the Upload-Post compatible fields (privacyStatus, privacy_level, pinterest_board_id …) |
Body multipart/form-data
| profile | string | |
| platforms | string | |
| media | string | |
| title | string | |
| scheduled_at | string | |
| options | string | JSON |
Responses
201 · 400 · 401 · 402 · 429
GET/v1/posts/{id}Get a post with per-platform status
Responses
200 · 400 · 401 · 429
PATCH/v1/posts/{id}Change a scheduled post (time, title, description, options)
Responses
200 · 400 · 401 · 429
DELETE/v1/posts/{id}Cancel a scheduled post
Responses
200 · 400 · 401 · 429
Webhooks
GET/v1/webhooksList webhooks
Responses
200 · 400 · 401 · 429
POST/v1/webhooksCreate a webhook (secret returned once). Signature: X-VA-Signature: sha256=HMAC(secret, "<timestamp>.<body>")
Responses
200 · 400 · 401 · 429
DELETE/v1/webhooks/{id}Delete a webhook
Responses
200 · 400 · 401 · 429
Upload-Post compatible
POST/api/uploadUpload a video (sync, async or scheduled – 202 with job_id)
Body multipart/form-data
| user * | string | Profile username |
| platform[] * | array | |
| video | string | Video file or a public https URL |
| title | string | Default caption / YouTube title (required for YouTube and text posts) |
| description | string | |
| scheduled_date | string | ISO-8601; without offset it is local time in `timezone` |
| timezone | string | |
| async_upload | boolean | |
| youtube_title | string | |
| privacyStatus | string · public, unlisted, private | |
| categoryId | string | |
| tags[] | array | |
| selfDeclaredMadeForKids | boolean | |
| containsSyntheticMedia | boolean | |
| thumbnail | string | |
| privacy_level | string · PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY | |
| is_aigc | boolean | |
| disable_comment | boolean | |
| post_mode | string · DIRECT_POST, MEDIA_UPLOAD | |
| media_type | string · REELS, STORIES | |
| share_to_feed | boolean | |
| facebook_page_id | string | |
| facebook_media_type | string · REELS, STORIES, VIDEO | |
| target_linkedin_page_id | string | |
| visibility | string | |
| pinterest_board_id | string | |
| threads_topic_tag | string | |
| bluesky_alt_text | string | |
| is_ai_generated | boolean | |
| external_id | string |
Responses
200 · 400 · 401 · 429
POST/api/upload_photosUpload photos
Body multipart/form-data
| user * | string | Profile username |
| platform[] * | array | |
| photos[] | array | |
| title | string | Default caption / YouTube title (required for YouTube and text posts) |
| description | string | |
| scheduled_date | string | ISO-8601; without offset it is local time in `timezone` |
| timezone | string | |
| async_upload | boolean | |
| youtube_title | string | |
| privacyStatus | string · public, unlisted, private | |
| categoryId | string | |
| tags[] | array | |
| selfDeclaredMadeForKids | boolean | |
| containsSyntheticMedia | boolean | |
| thumbnail | string | |
| privacy_level | string · PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY | |
| is_aigc | boolean | |
| disable_comment | boolean | |
| post_mode | string · DIRECT_POST, MEDIA_UPLOAD | |
| media_type | string · REELS, STORIES | |
| share_to_feed | boolean | |
| facebook_page_id | string | |
| facebook_media_type | string · REELS, STORIES, VIDEO | |
| target_linkedin_page_id | string | |
| visibility | string | |
| pinterest_board_id | string | |
| threads_topic_tag | string | |
| bluesky_alt_text | string | |
| is_ai_generated | boolean | |
| external_id | string |
Responses
200 · 400 · 401 · 429
POST/api/upload_textText post
Body multipart/form-data
| user * | string | Profile username |
| platform[] * | array | |
| title | string | Default caption / YouTube title (required for YouTube and text posts) |
| description | string | |
| scheduled_date | string | ISO-8601; without offset it is local time in `timezone` |
| timezone | string | |
| async_upload | boolean | |
| youtube_title | string | |
| privacyStatus | string · public, unlisted, private | |
| categoryId | string | |
| tags[] | array | |
| selfDeclaredMadeForKids | boolean | |
| containsSyntheticMedia | boolean | |
| thumbnail | string | |
| privacy_level | string · PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY | |
| is_aigc | boolean | |
| disable_comment | boolean | |
| post_mode | string · DIRECT_POST, MEDIA_UPLOAD | |
| media_type | string · REELS, STORIES | |
| share_to_feed | boolean | |
| facebook_page_id | string | |
| facebook_media_type | string · REELS, STORIES, VIDEO | |
| target_linkedin_page_id | string | |
| visibility | string | |
| pinterest_board_id | string | |
| threads_topic_tag | string | |
| bluesky_alt_text | string | |
| is_ai_generated | boolean | |
| external_id | string |
Responses
200 · 400 · 401 · 429
GET/api/uploadposts/statusStatus by request_id or job_id
Parameters
| request_id | query |
| job_id | query |
Responses
200 · 400 · 401 · 429
GET/api/uploadposts/historyUpload history (one row per platform)
Responses
200 · 400 · 401 · 429
GET/api/uploadposts/schedulePending scheduled posts
Responses
200 · 400 · 401 · 429
GET/api/uploadposts/schedule/{job_id}Scheduled post
Responses
200 · 400 · 401 · 429
PATCH/api/uploadposts/schedule/{job_id}Edit scheduled post
Responses
200 · 400 · 401 · 429
DELETE/api/uploadposts/schedule/{job_id}Cancel scheduled post
Responses
200 · 400 · 401 · 429
GET/api/uploadposts/usersProfiles with social_accounts
Responses
200 · 400 · 401 · 429
POST/api/uploadposts/usersCreate profile
Responses
200 · 400 · 401 · 429
DELETE/api/uploadposts/usersDelete profile (JSON body {username})
Responses
200 · 400 · 401 · 429
POST/api/uploadposts/users/generate-jwtConnect link (access_url, 48 h)
Responses
200 · 400 · 401 · 429
DELETE/api/uploadposts/users/socialDisconnect one platform of a profile
Responses
200 · 400 · 401 · 429
GET/api/uploadposts/meKey check
Responses
200 · 400 · 401 · 429
GET/api/uploadposts/facebook/pagesFacebook pages of a profile
Responses
200 · 400 · 401 · 429
GET/api/uploadposts/pinterest/boardsPinterest boards of a profile
Responses
200 · 400 · 401 · 429
GET/api/uploadposts/users/notificationsWebhook settings
Responses
200 · 400 · 401 · 429
POST/api/uploadposts/users/notificationsSet webhook URL + events
Responses
200 · 400 · 401 · 429