Skip to main content

Image Upload

XenonFlare provides a unified API for uploading and cross-platform publishing of images to Instagram, LinkedIn, TikTok, and Pinterest.

Endpoint

POST /api/v1/media/images

Chunked Uploads

If you are using chunked uploads, the POST /api/v1/media/images endpoint is used to finalize the upload by providing the fileId instead of the file itself.

Headers

  • X-API-Key: Your API key
  • Authorization: Bearer <API_KEY> (Alternative to X-API-Key)
  • Content-Type: multipart/form-data

Request Body (multipart/form-data)

FieldTypeRequiredDescription
fileFileYes*The image file to upload.
fileIdstringYes*The unique ID from a chunked upload. Required if file is missing.
titlestringNoInternal title for the image.
descriptionstringNoInternal description for the image.
platformsstring[]YesJSON array of platforms (e.g., ["instagram", "tiktok"]).
scheduledAtstringNoISO 8601 date string for scheduled publishing.
isDraftbooleanNoIf true, the image will be saved as a draft and not scheduled.

* Either file or fileId must be provided.

Configuration

Platform-specific settings must be provided as Nested Objects. Use the platform name as the key (e.g., instagram, tiktok) and provide a JSON string containing the parameters.

Instagram Specific Fields

Flat KeyNested KeyTypeDescription
instagramCaptioncaptionstringCaption for the Instagram post
instagramAutoPublishautoPublishbooleanWhether to auto-publish the post
selectedInstagramAccountsaccountsarrayList of Instagram account IDs

Note: For nested config, send a JSON string in the field instagram.

TikTok Specific Fields

Flat KeyNested KeyTypeDescription
tiktokCaptioncaptionstringCaption for the TikTok
tiktokPrivacyprivacyselectPrivacy status
Options: PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, SELF_ONLY
tiktokAutoPublishautoPublishbooleanWhether to auto-publish the TikTok
selectedTiktokAccountsaccountsarrayList of TikTok account IDs
tiktokDisableCommentdisableCommentbooleanDisable comments
tiktokDisableDuetdisableDuetbooleanDisable duet
tiktokDisableStitchdisableStitchbooleanDisable stitch

Note: For nested config, send a JSON string in the field tiktok.

LinkedIn Specific Fields

Flat KeyNested KeyTypeDescription
linkedinCommentcommentstringComment for the LinkedIn post
linkedinAutoPublishautoPublishbooleanWhether to auto-publish the post
selectedLinkedinAccountsaccountsarrayList of LinkedIn account IDs

Note: For nested config, send a JSON string in the field linkedin.

Pinterest Specific Fields

Flat KeyNested KeyTypeDescription
pinterestTitletitlestringTitle for the Pinterest pin
pinterestDescriptiondescriptionstringDescription for the Pinterest pin
pinterestAutoPublishautoPublishbooleanWhether to auto-publish the pin
selectedPinterestAccountsaccountsarrayList of Pinterest account IDs

Note: For nested config, send a JSON string in the field pinterest.

Example Request

curl -X POST https://api.xenonflare.com/api/v1/media/images \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@/path/to/image.jpg" \
-F "platforms=[\"instagram\", \"pinterest\"]" \
-F "instagram={\"caption\": \"Stunning view! #nature\", \"autoPublish\": true, \"accounts\": [\"YOUR_INSTAGRAM_BUSINESS_ID\"]}" \
-F "pinterest={\"title\": \"Nature Photography\", \"description\": \"Beautiful landscape photo.\", \"autoPublish\": true, \"accounts\": [\"YOUR_PINTEREST_ID\"]}"

Response

{
"success": true,
"message": "Upload successful",
"data": [
{
"id": "65cbde...",
"title": "Untitled Image",
"status": "scheduled",
"platforms": ["instagram", "pinterest"],
"createdAt": "2024-02-13T10:00:00.000Z"
}
]
}