Post text, photos, reels, stories, and multi-photo albums to Facebook Pages through the PublishQ API.
What you can post
| Type | Supported | Max media | Notes |
|---|---|---|---|
| Text only | ✅ | 0 | 63,206 character limit. Links in text auto-preview |
| Single photo | ✅ | 1 | JPEG, PNG. Max 10 MB |
| Reel | ✅ | 1 | Any single video is a Reel. MP4, MOV. Max 4 GB, no duration limit |
| Multi-photo album | ✅ | 20 | Images only — videos cannot be mixed in |
| Story | ✅ | 1 | Image or video. Disappears after 24h |
Limitations
- Facebook API only posts to Pages, not personal profiles. You must have a Facebook Page and admin access to it.
- Multiple Pages can be managed from one connected account.
- Multi-photo albums are images only. You cannot mix videos with images in a multi-photo post.
- GIF files are not supported. The Facebook API does not accept animated photos.
- 100 API-published posts per 24-hour moving period.
Videos are Reels
Facebook no longer has a separate video format — all videos are now Reels, regardless of length, aspect ratio, or orientation. You don't need to set any special contentType for videos. Just post a video and it becomes a Reel. The only contentType you need to set is "story" for ephemeral Stories.
Quick start
Post text
curl -X POST https://publishq.com/api/v1/posts \
-H "Authorization: Bearer pq_live_..." \
-H "Content-Type: application/json" \
-d '{
"content": "Exciting news from our team! 🎉",
"accounts": [
{ "accountId": "your-facebook-page-id" }
],
"publishNow": true
}'Post a photo
A single photo post on your Facebook Page.
Get your media ready
curl -X POST https://publishq.com/api/v1/media \
-H "Authorization: Bearer pq_live_..." \
-F "[email protected]"curl https://publishq.com/api/v1/media \
-H "Authorization: Bearer pq_live_..."Pick the id of the media you want to use from the response.
Create the post
curl -X POST https://publishq.com/api/v1/posts \
-H "Authorization: Bearer pq_live_..." \
-H "Content-Type: application/json" \
-d '{
"content": "Check out this view 📸",
"mediaIds": ["media-id-from-step-1"],
"accounts": [
{ "accountId": "your-facebook-page-id" }
],
"publishNow": true
}'Post a reel
Any single video becomes a Reel on Facebook. No special settings needed.
Get your media ready
curl -X POST https://publishq.com/api/v1/media \
-H "Authorization: Bearer pq_live_..." \
-F "[email protected]"curl https://publishq.com/api/v1/media \
-H "Authorization: Bearer pq_live_..."Pick the id of the video you want to use from the response.
Create the post
curl -X POST https://publishq.com/api/v1/posts \
-H "Authorization: Bearer pq_live_..." \
-H "Content-Type: application/json" \
-d '{
"content": "Behind the scenes 🎬",
"mediaIds": ["media-id-from-step-1"],
"accounts": [
{ "accountId": "your-facebook-page-id" }
],
"publishNow": true
}'Post a multi-photo album
A post with 2–20 photos. Only images are supported — videos cannot be mixed in.
Get your media ready
curl -X POST https://publishq.com/api/v1/media \
-H "Authorization: Bearer pq_live_..." \
-F "[email protected]"Repeat for each file. You need at least 2 media IDs.
curl https://publishq.com/api/v1/media \
-H "Authorization: Bearer pq_live_..."Pick the id of each media item you want to use from the response.
Create the post
curl -X POST https://publishq.com/api/v1/posts \
-H "Authorization: Bearer pq_live_..." \
-H "Content-Type: application/json" \
-d '{
"content": "Photo dump from the weekend 📷",
"mediaIds": ["media-id-1", "media-id-2", "media-id-3"],
"accounts": [
{ "accountId": "your-facebook-page-id" }
],
"publishNow": true
}'Post a story
Set contentType: "story" to publish to Stories. Stories disappear after 24 hours. Text captions are not displayed on stories, and interactive stickers are not supported via the API. Supports a single image or video (max 60 seconds).
Get your media ready
curl -X POST https://publishq.com/api/v1/media \
-H "Authorization: Bearer pq_live_..." \
-F "[email protected]"curl https://publishq.com/api/v1/media \
-H "Authorization: Bearer pq_live_..."Pick the id of the media you want to use from the response.
Create the post
curl -X POST https://publishq.com/api/v1/posts \
-H "Authorization: Bearer pq_live_..." \
-H "Content-Type: application/json" \
-d '{
"mediaIds": ["media-id-from-step-1"],
"accounts": [
{
"accountId": "your-facebook-page-id",
"platformSpecificSettings": {
"contentType": "story"
}
}
],
"publishNow": true
}'Platform-specific settings
Pass these inside platformSpecificSettings on the Facebook account entry. Only needed for Stories — omit for all other post types.
| Field | Type | Description |
|---|---|---|
contentType | enum (optional) | Set to "story" for ephemeral content that disappears after 24 hours. Omit for a regular post — single videos are automatically published as Reels (Facebook no longer has a separate video format). |
Media specs
Photos
| Spec | Value |
|---|---|
| Formats | JPEG, PNG |
| Max file size | 10 MB |
Videos (Reels)
| Spec | Value |
|---|---|
| Formats | MP4, MOV |
| Max file size | 4 GB |
| Duration | No limit (9:16 vertical recommended for best reach) |
| Video codec | H.264, H.265, VP9, AV1 |
| Audio codec | AAC, 48kHz, stereo |
| Frame rate | 24–60 FPS |
Story videos
| Spec | Value |
|---|---|
| Formats | MP4 |
| Max duration | 60 seconds |
| Aspect ratio | 9:16 recommended |
| Min resolution | 540 x 960 |
Not yet supported
- GIF attachments — Facebook does not accept animated photos via the API.
- Audience targeting — Limiting post visibility by geography, age, or gender.
- First comment (coming soon)