# Publora Facebook

> Post or schedule content to Facebook Pages using the Publora API. Use this skill when the user wants to publish or schedule Facebook posts via Publora.

- Skill: `javimosch/publora-facebook` (Agent Skill)
- Install (CLI): `npx skillmds@latest add javimosch/publora-facebook`
- Raw SKILL.md: https://api.skillmd.com/api/skills/javimosch/publora-facebook/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: javimosch (https://skillmd.com/u/javimosch)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/javimosch/publora-facebook

---


# Publora — Facebook

Facebook platform skill for the Publora API. For auth, core scheduling, media upload, and workspace/webhook docs, see the `publora` core skill.

**Base URL:** `https://api.publora.com/api/v1`  
**Header:** `x-publora-key: sk_YOUR_KEY`  
**Platform ID format:** `facebook-{pageId}`

If you manage multiple Pages, each Page gets its own platform ID.

## Requirements

- A **Facebook Page** (not a personal profile) connected via OAuth
- Page admin permissions granted during OAuth

## Platform Limits (API)

> ⚠️ API video limits are significantly stricter than native.

| Property | API Limit | Native App |
|----------|-----------|-----------|
| Text | **63,206 characters** | Same |
| Images | Up to 10 × 10 MB | JPEG, PNG, GIF, BMP, TIFF |
| Video | **45 min** / **2 GB** | 240 min / 4 GB |
| Reels duration | **90 seconds** | 90 seconds |
| Reels rate limit | 30 Reels/day/Page | — |
| Reels posting | Pages only (not profiles) | — |
| Text only | ✅ Yes | — |

**Common errors:**
- `Error 1363026` — video over 40 min → trim to under 45 min
- `Error 1363023` — file over 2 GB → compress
- `Error 1363128` — Reels duration outside 3–90s range

> Posts under 80 characters get 66% more engagement on Facebook.

## Post a Text Update

```javascript
await fetch('https://api.publora.com/api/v1/create-post', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' },
  body: JSON.stringify({
    content: 'Exciting news from our team! We just launched a new feature. Check it out at publora.com 🎉',
    platforms: ['facebook-123456789']
  })
});
```

## Schedule a Post

```javascript
body: JSON.stringify({
  content: 'Your Facebook Page update',
  platforms: ['facebook-123456789'],
  scheduledTime: '2026-03-20T13:00:00.000Z'
})
```

## Post with Image

```javascript
// Step 1: Create post
const post = await fetch('https://api.publora.com/api/v1/create-post', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' },
  body: JSON.stringify({
    content: 'Check out our latest product photo!',
    platforms: ['facebook-123456789']
  })
}).then(r => r.json());

// Step 2: Get upload URL
const upload = await fetch('https://api.publora.com/api/v1/get-upload-url', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' },
  body: JSON.stringify({
    postGroupId: post.postGroupId,
    fileName: 'photo.jpg',
    contentType: 'image/jpeg',
    type: 'image'
  })
}).then(r => r.json());

// Step 3: Upload
await fetch(upload.uploadUrl, {
  method: 'PUT',
  headers: { 'Content-Type': 'image/jpeg' },
  body: imageBytes
});
```

## Post a Reel (3–90 seconds)

Use the same flow but upload a short video file. Reels are posted to Pages only.

## Platform Quirks

- **Pages only** — personal profiles are not supported via the Facebook Graph API
- **Multiple pages** — each Page has a separate platform ID; connect them individually in Publora dashboard
- **Video limits**: 45 min / 2 GB via API (native allows 240 min / 4 GB)
- **Reels**: Must be 3–90 seconds; limited to 30 per day per Page
- **Carousels**: Up to 10 images or videos (cannot mix in the same carousel)
- **Rate limit formula**: 200 × users/hour

