API Documentation

Integrate QPost directly into your applications, scripts, and workflows.

1 Authentication

All API requests must be authenticated using an API Key. You can pass the key in the request headers.

Header Name Value Description
x-api-key YOUR_API_KEY Preferred method.
Authorization Bearer YOUR_API_KEY Alternative standard bearer token method.

2 Create Post

POST /api/post

Request Body (FormData)

Field Type Description
caption string RequiredThe main text content of your post.
platforms JSON string RequiredArray of target platforms. See structure below.
video File Video file to upload. (Required if no images)
images File[] One or more image files. (Required if no video)
title string Optional title (used for YouTube).
scheduledFor ISO Date Optional. If provided, post will be scheduled.
timezone string Timezone for scheduling (default: "UTC").

Platforms Object Structure

The platforms field expects a JSON stringified array of objects with the following shape:

[
  {
    "platform": "YOUTUBE" | "TIKTOK" | "INSTAGRAM",
    "metadata": { ... } // Platform specific options
  }
]

Platform Metadata Details

YouTube Metadata
titleOverride video title.
descriptionOverride video description.
tagsArray of strings or comma-separated string.
categoryIdYouTube Category ID (default: "22").
privacyStatus"private" | "unlisted" | "public" (default: "private").
publishAtISO datetime for scheduled publishing.
selfDeclaredMadeForKidsboolean (default: false).
TikTok Metadata
privacyLevel"PUBLIC" | "FRIENDS" | "SELF_ONLY" (default: "SELF_ONLY").
allowCommentboolean
allowDuetboolean
allowStitchboolean
commercialContentEnabledboolean
brandOrganicToggleEnabledboolean
thirdPartyContentToggleEnabledboolean
Instagram Metadata
mediaType"IMAGE" | "CAROUSEL" | "REELS" | "STORIES"
mediaProductType"FEED" | "STORIES" | "REELS"
disableCommentsboolean
locationIdInstagram Location ID.
userTagsArray of objects: { username: string, x: number, y: number }
altTextCustom alt text for accessibility.

3 Get Posts

GET /api/post

Query Parameters

Parameter Type Description
status string Filter by status: "DRAFT", "SCHEDULED", "POSTED", "FAILED".
platform string Filter by platform: "YOUTUBE", "TIKTOK", "INSTAGRAM".
API Docs Terms of Service Privacy Policy
v1.0.0
Built for developers