Facebook Upload API
This section details how to upload text posts, photos, and videos to Facebook Pages using the API.
Base URL
https://api.multi-upload-tool.com/api/v1
Authentication
All requests require an API Token in the header:
x-api-key: YOUR_API_TOKEN
Requirements
Facebook Reels & Video Requirements
- File Format: MP4 (recommended)
- Resolution & Aspect Ratio:
- Recommended: 1080 x 1920 pixels
- Minimum: 540 x 960 pixels
- Aspect ratio: 9:16
- Duration:
- 3-90 seconds (Reels)
- Maximum 60 seconds (Stories)
- Video Settings:
- Frame rate: 24-60 fps
- Chroma subsampling: 4:2:0
- Closed GOP (2-5 seconds)
- Compression: H.264, H.265, VP9, AV1
- Progressive scan
- Audio Settings:
- Bitrate: 128 kbps+
- Channels: Stereo
- Codec: AAC (low complexity)
- Sample rate: 48 kHz
Facebook Photo Requirements
- General Guidance: Facebook supports various image formats, including JPEG, PNG, GIF, and WebP.
- Aspect Ratio: 1.91:1 to 4:5 recommended for Feed.
Validation & Limits
The following validation constraints are enforced by the API for Facebook uploads:
| Limit | Value | Notes |
|---|---|---|
| Post Description | 63,206 characters | Maximum length enforced on text content and post descriptions. |
| Post Title | 255 characters | Maximum length for post titles (when provided separately). |
| Image File Size | 4 MB | Maximum file size per image. |
| Video File Size | 1 GB | Maximum file size per video (Graph API standard upload limit). |
| Carousel/Album Items | Unlimited per API | Facebook’s native limit applies (typically 10 photos/videos per album). |
| Text-Only Posts | Supported | Posts with no media are allowed. |
| Link Attachments | Supported | The link parameter allows URL previews on posts. |
Notes:
- File size limits are enforced during upload. Oversized files will be rejected with a 400 error.
- Character limits are validated against the provided text fields (description, title, link).
- Facebook may apply additional constraints via the Graph API (e.g., content policies, hashtag limits) that are not enforced by this API but will be reflected in error messages returned by Facebook.
- Refer to Facebook’s Video API Guide for recommended video specs and formatting.
Upload Text Post
Create a simple text status update on a Facebook Page.
Endpoint
POST /upload
Content-Type
multipart/form-data
Parameters
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
async | string | No | Default "true". If "false", the API waits for upload completion. |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | Yes | The ID of the connected Facebook Page. |
description | string | Yes | The text content of the post. |
link | string | No | A URL to attach to the post. |
schedule_date | string | No | ISO 8601 date string to schedule the post. Must be in the future and within 6 months. |
Example Request
curl --location 'https://api.multi-upload-tool.com/api/v1/upload' \
--header 'x-api-key: YOUR_API_KEY' \
--form 'accountId="12345"' \
--form 'description="Hello world! Check out our new website."' \
--form 'link="https://www.example.com"'Upload Photo
Upload a single photo to the Page Feed.
Endpoint
POST /upload
Content-Type
multipart/form-data
Parameters
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
async | string | No | Default "true". If "false", the API waits for upload completion. |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | Yes | The ID of the connected Facebook Page. |
photo | File | Yes | The image file to upload. |
description | string | No | The caption for the photo. |
title | string | No | Alternative to description for the caption. |
schedule_date | string | No | ISO 8601 date string to schedule the post. Must be in the future and within 6 months. |
Example Request
curl --location 'https://api.multi-upload-tool.com/api/v1/upload' \
--header 'x-api-key: YOUR_API_KEY' \
--form 'accountId="12345"' \
--form 'photo=@"/path/to/image.jpg"' \
--form 'description="Beautiful sunset!"'Upload Video (Reels)
Upload a video to the Page. It will be treated as a Video Post or Reel depending on duration and format.
Endpoint
POST /upload
Content-Type
multipart/form-data
Parameters
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
async | string | No | Default "true". If "false", the API waits for upload completion. |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | Yes | The ID of the connected Facebook Page. |
video | File | Yes | The video file to upload. |
description | string | No | The description/title for the video. |
title | string | No | Alternative to description. |
schedule_date | string | No | ISO 8601 date string to schedule the post. Must be in the future and within 6 months. |
Example Request
curl --location 'https://api.multi-upload-tool.com/api/v1/upload' \
--header 'x-api-key: YOUR_API_KEY' \
--form 'accountId="12345"' \
--form 'video=@"/path/to/video.mp4"' \
--form 'description="My new video update"'Upload Gallery (Album)
Upload multiple photos in a single post.
Endpoint
POST /upload
Content-Type
multipart/form-data
Parameters
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
async | string | No | Default "true". If "false", the API waits for upload completion. |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | Yes | The ID of the connected Facebook Page. |
photo | File[] | Yes | Multiple image files. |
description | string | No | The caption for the album. |
title | string | No | Alternative to description for the caption. |
schedule_date | string | No | ISO 8601 date string to schedule the post. Must be in the future and within 6 months. |
Example Request
curl --location 'https://api.multi-upload-tool.com/api/v1/upload' \
--header 'x-api-key: YOUR_API_KEY' \
--form 'accountId="12345"' \
--form 'photo=@"/path/to/image1.jpg"' \
--form 'photo=@"/path/to/image2.jpg"' \
--form 'description="Holiday Album"'