Create Post
POST /v1/posts endpoint
Endpoint
POST https://api.codivupload.com/v1/postsCommon Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| post_type | enum | Yes | text, image, video, document |
| profile_name | string | Yes | Target profile name |
| platforms | string[] | Yes | Target platforms |
| title | string | No | Post/video title |
| description | string | Conditional | Caption/body text (required for text posts) |
| media_urls | url[] | Conditional | Media URLs (required for image/video/document) |
| scheduled_date | datetime | No | ISO-8601 UTC. Omit for immediate publishing |
| add_to_queue | boolean | No | Auto-schedule to next queue slot |
| first_comment | string | No | Auto-posted comment (Instagram, YouTube) |
| auto_truncate | boolean | No | Trim content exceeding platform limits |
Platform-Specific Parameters
Each platform has optional override fields. See the full list at api.codivupload.com.
Key Overrides
| Platform | Parameter | Description |
|---|---|---|
| YouTube | youtube_type | video or shorts |
| YouTube | youtube_thumbnail_url | Custom thumbnail |
| YouTube | youtube_caption_url | SRT subtitle file |
| TikTok | tiktok_post_mode | DIRECT_POST or MEDIA_UPLOAD (draft) |
| TikTok | tiktok_auto_add_music | Auto music for photo slideshows |
| instagram_media_type | REELS or STORIES | |
| instagram_alt_text | Image accessibility text |
Response
200 — Published immediately 202 — Scheduled for later
{
"message": "Post successfully queued for immediate delivery.",
"post_id": "550e8400-e29b-41d4-a716-446655440000",
"destinations_count": 3,
"received_type": "video",
"is_immediate": true
}Error Responses
| Status | Description |
|---|---|
| 400 | Validation error (character limit, unsupported type, banned hashtag) |
| 401 | Invalid API key |
| 403 | Monthly quota exceeded |
| 404 | Profile not found |
| 429 | Daily platform limit reached |
Date & Timezone
scheduled_date must be in ISO-8601 UTC format. All times are interpreted as UTC — CodivUpload does not perform any timezone conversion.
- Correct:
2026-04-15T13:00:00Z(the trailing Z means UTC) - Incorrect:
2026-04-15T09:00:00(no timezone — rejected) - Incorrect:
2026-04-15T09:00:00-05:00(offset format — not supported)
To schedule for 9am Eastern Time (UTC-4 in summer), convert first: 9am ET = 1pm UTC = 2026-04-15T13:00:00Z.
Document Posts
post_type: "document" is used for PDF uploads. Only LinkedIn supports document posts — other platforms will ignore the document and the post may fail validation if no other media is provided.
- Provide a single PDF URL in
media_urls - Maximum PDF size: 100MB
- LinkedIn displays PDFs as interactive carousels (swipeable pages)
- A
titleis required for document posts on LinkedIn
Auto-Truncate Behavior
When auto_truncate: true, text exceeding a platform's character limit is silently trimmed to fit. The API returns a 200/202 as if the full text was accepted.
GET /v1/posts/{id} after publishing, or disable auto_truncate and handle character limits in your application.First Comment
first_comment is automatically posted immediately after the main content goes live. Useful for adding links, credits, or hashtags without cluttering the main caption.
| Platform | Supported | API Used | Notes |
|---|---|---|---|
| YouTube | Yes | commentThreads.insert (50 quota units) | Costs 50 YouTube API quota units per comment |
| Yes | Graph API comment endpoint | Subject to Instagram comment rate limits | |
| No | — | Field is ignored | |
| TikTok | No | — | Field is ignored |
| X (Twitter) | No | — | Field is ignored |
| Threads | No | — | Field is ignored |
| No | — | Field is ignored | |
| No | — | Field is ignored | |
| Bluesky | No | — | Field is ignored |