API Reference

Create Post

POST /v1/posts endpoint

Endpoint

POST https://api.codivupload.com/v1/posts

Common Parameters

ParameterTypeRequiredDescription
post_typeenumYestext, image, video, document
profile_namestringYesTarget profile name
platformsstring[]YesTarget platforms
titlestringNoPost/video title
descriptionstringConditionalCaption/body text (required for text posts)
media_urlsurl[]ConditionalMedia URLs (required for image/video/document)
scheduled_datedatetimeNoISO-8601 UTC. Omit for immediate publishing
add_to_queuebooleanNoAuto-schedule to next queue slot
first_commentstringNoAuto-posted comment (Instagram, YouTube)
auto_truncatebooleanNoTrim content exceeding platform limits

Platform-Specific Parameters

Each platform has optional override fields. See the full list at api.codivupload.com.

Key Overrides

PlatformParameterDescription
YouTubeyoutube_typevideo or shorts
YouTubeyoutube_thumbnail_urlCustom thumbnail
YouTubeyoutube_caption_urlSRT subtitle file
TikToktiktok_post_modeDIRECT_POST or MEDIA_UPLOAD (draft)
TikToktiktok_auto_add_musicAuto music for photo slideshows
Instagraminstagram_media_typeREELS or STORIES
Instagraminstagram_alt_textImage 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

StatusDescription
400Validation error (character limit, unsupported type, banned hashtag)
401Invalid API key
403Monthly quota exceeded
404Profile not found
429Daily 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 title is 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.

Important: The API response does not indicate that truncation occurred. If the exact text matters, verify the published content via 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.

PlatformSupportedAPI UsedNotes
YouTubeYescommentThreads.insert (50 quota units)Costs 50 YouTube API quota units per comment
InstagramYesGraph API comment endpointSubject to Instagram comment rate limits
LinkedInNoField is ignored
TikTokNoField is ignored
X (Twitter)NoField is ignored
ThreadsNoField is ignored
FacebookNoField is ignored
PinterestNoField is ignored
BlueskyNoField is ignored