Video Automation

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>

openapi.json

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_namestring

Responses

200 · 400 · 401 · 429

DELETE/v1/profiles/{username}Delete a profile (disconnects its accounts)

Parameters

usernamepath

Responses

200 · 400 · 401 · 429

POST/v1/profiles/{username}/connect-linksHosted connect link for your customer (48 h)

Parameters

usernamepath

Body application/json

platformsarray
redirect_urlstring
logo_urlstring
titlestring
descriptionstring

Responses

200 · 400 · 401 · 429

Posts

GET/v1/postsList posts

Parameters

statusquery
profilequery
fromquery
toquery
limitquery
offsetquery

Responses

200 · 400 · 401 · 429

POST/v1/postsCreate (publish now or schedule) a post

Parameters

Idempotency-Keyheader

Body application/json

profile *string
platforms *array
titlestring
descriptionstring
media_urlsarray
scheduled_atstring
timezonestring
external_idstring
optionsobjectPer-platform options, same names as the Upload-Post compatible fields (privacyStatus, privacy_level, pinterest_board_id …)

Body multipart/form-data

profilestring
platformsstring
mediastring
titlestring
scheduled_atstring
optionsstringJSON

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 *stringProfile username
platform[] *array
videostringVideo file or a public https URL
titlestringDefault caption / YouTube title (required for YouTube and text posts)
descriptionstring
scheduled_datestringISO-8601; without offset it is local time in `timezone`
timezonestring
async_uploadboolean
youtube_titlestring
privacyStatusstring · public, unlisted, private
categoryIdstring
tags[]array
selfDeclaredMadeForKidsboolean
containsSyntheticMediaboolean
thumbnailstring
privacy_levelstring · PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY
is_aigcboolean
disable_commentboolean
post_modestring · DIRECT_POST, MEDIA_UPLOAD
media_typestring · REELS, STORIES
share_to_feedboolean
facebook_page_idstring
facebook_media_typestring · REELS, STORIES, VIDEO
target_linkedin_page_idstring
visibilitystring
pinterest_board_idstring
threads_topic_tagstring
bluesky_alt_textstring
is_ai_generatedboolean
external_idstring

Responses

200 · 400 · 401 · 429

POST/api/upload_photosUpload photos

Body multipart/form-data

user *stringProfile username
platform[] *array
photos[]array
titlestringDefault caption / YouTube title (required for YouTube and text posts)
descriptionstring
scheduled_datestringISO-8601; without offset it is local time in `timezone`
timezonestring
async_uploadboolean
youtube_titlestring
privacyStatusstring · public, unlisted, private
categoryIdstring
tags[]array
selfDeclaredMadeForKidsboolean
containsSyntheticMediaboolean
thumbnailstring
privacy_levelstring · PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY
is_aigcboolean
disable_commentboolean
post_modestring · DIRECT_POST, MEDIA_UPLOAD
media_typestring · REELS, STORIES
share_to_feedboolean
facebook_page_idstring
facebook_media_typestring · REELS, STORIES, VIDEO
target_linkedin_page_idstring
visibilitystring
pinterest_board_idstring
threads_topic_tagstring
bluesky_alt_textstring
is_ai_generatedboolean
external_idstring

Responses

200 · 400 · 401 · 429

POST/api/upload_textText post

Body multipart/form-data

user *stringProfile username
platform[] *array
titlestringDefault caption / YouTube title (required for YouTube and text posts)
descriptionstring
scheduled_datestringISO-8601; without offset it is local time in `timezone`
timezonestring
async_uploadboolean
youtube_titlestring
privacyStatusstring · public, unlisted, private
categoryIdstring
tags[]array
selfDeclaredMadeForKidsboolean
containsSyntheticMediaboolean
thumbnailstring
privacy_levelstring · PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY
is_aigcboolean
disable_commentboolean
post_modestring · DIRECT_POST, MEDIA_UPLOAD
media_typestring · REELS, STORIES
share_to_feedboolean
facebook_page_idstring
facebook_media_typestring · REELS, STORIES, VIDEO
target_linkedin_page_idstring
visibilitystring
pinterest_board_idstring
threads_topic_tagstring
bluesky_alt_textstring
is_ai_generatedboolean
external_idstring

Responses

200 · 400 · 401 · 429

GET/api/uploadposts/statusStatus by request_id or job_id

Parameters

request_idquery
job_idquery

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