← 返回
内容创作 Key 中文

Publora Instagram

Post or schedule content to Instagram using the Publora API. Use this skill when the user wants to publish images, reels, stories, or carousels to Instagram...
使用Publora API在Instagram上发布或排程内容,包括图片、Reels、Stories或轮播...
sergebulaev
内容创作 clawhub v2.0.1 3 版本 99852.8 Key: 需要
★ 0
Stars
📥 1,357
下载
💾 43
安装
3
版本
#latest

概述

Publora — Instagram

Instagram 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: instagram-{accountId}

Requirements

  • Instagram Business account recommended — personal accounts are not supported; Creator accounts may also work (instagram_business_* scopes), but Business is the officially tested and recommended type
  • Connected directly via Instagram OAuth through the Publora dashboard (no Facebook Page required)

Platform Limits (API)

> ⚠️ Instagram API is significantly more restrictive than the native app.

PropertyAPI LimitNative App
--------------------------------
Caption2,200 characters2,200
Images10 × 8 MB20 images
Image formatJPEG recommended via API (PNG may work in practice; GIF not supported)PNG, GIF also work
Mixed carousel❌ No images + videos
Reels duration3 min (180s) via API ⚠️20 minutes
Reels size300 MB
Stories duration60s / 100 MB
Carousel video60s per clip / 300 MB
Text only❌ Media required
Rate limit50 posts/24hr

First 125 characters visible before "more".

Common errors:

  • (#10) The user is not an Instagram Business — Creator accounts not supported, switch to Business
  • Error 2207010 — caption exceeds 2,200 chars
  • Error 2207004 — image exceeds 8 MB
  • Error 9, Subcode 2207042 — rate limit reached

Post an Image

// Step 1: Create the 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: 'Your caption here ✨ #hashtag',
    platforms: ['instagram-17841412345678'],
    scheduledTime: '2026-03-20T12:00:00.000Z'
  })
}).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',   // ⚠️ JPEG only for Instagram
    type: 'image'
  })
}).then(r => r.json());

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

Post a Carousel (up to 10 images)

Call get-upload-url N times with the same postGroupId:

import requests

HEADERS = { 'Content-Type': 'application/json', 'x-publora-key': 'sk_YOUR_KEY' }

# Create post
post = requests.post('https://api.publora.com/api/v1/create-post', headers=HEADERS, json={
    'content': 'Swipe through our product highlights! 👆',
    'platforms': ['instagram-17841412345678'],
    'scheduledTime': '2026-03-20T12:00:00.000Z'
}).json()

# Upload each image (max 10)
images = ['slide1.jpg', 'slide2.jpg', 'slide3.jpg']
for img_path in images:
    upload = requests.post('https://api.publora.com/api/v1/get-upload-url', headers=HEADERS, json={
        'postGroupId': post['postGroupId'],
        'fileName': img_path,
        'contentType': 'image/jpeg',
        'type': 'image'
    }).json()
    with open(img_path, 'rb') as f:
        requests.put(upload['uploadUrl'], headers={'Content-Type': 'image/jpeg'}, data=f)

Post a Reel (video, up to 3 min via API)

// Create post, then upload video via get-upload-url with type: 'video'
const post = await createPost({
  content: 'Check out our latest Reel! 🎬',
  platforms: ['instagram-17841412345678'],
  platformSettings: { instagram: { videoType: 'REELS' } }
});

const upload = await getUploadUrl({
  postGroupId: post.postGroupId,
  fileName: 'reel.mp4',
  contentType: 'video/mp4',
  type: 'video'
});
// Then PUT the video file to upload.uploadUrl

> ⚠️ Reels via API accept up to 3 minutes (180s) / 300 MB. Native app allows 20 min — API is significantly stricter. Only videos 5–90 seconds appear in the Reels feed tab; longer clips post but show as regular video posts.

Platform Quirks

  • JPEG recommended: The Instagram Graph API works best with JPEG. PNG may work in practice but is not guaranteed. Always use JPEG to be safe — Publora does NOT auto-convert for Instagram.
  • Business account recommended: Personal accounts are not supported. Creator accounts may work via instagram_business_* scopes but are not fully tested — Business is safest.
  • Reels via API: The platform-limits doc (March 2026) states 3 min (180s) max; the platform-specific doc states 15 min. Use 3 min as the safe design limit. Only videos 5–90s appear in the Reels tab regardless.
  • Stories vs Reels: Use platformSettings: { instagram: { videoType: "STORIES" } } to post as Story (disappears after 24h). Default is "REELS".
  • No shopping tags, branded content, filters, or music via API
  • Carousels: 2–10 items (native allows 20); cannot mix images and videos in same carousel
  • WebP: Must be converted to JPEG manually before upload
  • Aspect ratios: Instagram supports 4:5 (portrait) to 1.91:1 (landscape); images outside range will be cropped
  • Hashtags: Max 30 per post; included in caption text (no separate field)

版本历史

共 3 个版本

  • v2.0.1 当前
    2026-05-03 02:56 安全 安全
  • v1.1.0
    2026-03-29 06:26
  • v2.0.0
    2026-03-27 20:19

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

Publora Linkedin

sergebulaev
使用 Publora API 在 LinkedIn 上发布或定时发布内容。适用于用户需要发布或预约 LinkedIn 帖子、获取分析(如曝光)数据的场景。
★ 1 📥 1,164
content-creation

Humanizer

biostartechnology
消除AI写作痕迹,使文本更自然真实。基于维基百科"AI写作特征"指南,识别并修正夸张象征、宣传用语、肤浅-ing分析、模糊归因、破折号滥用、三项排比、AI词汇、负面平行结构及冗长连接词等模式。
★ 860 📥 199,867
content-creation

AdMapix

fly0pants
广告情报与应用数据分析助手,支持搜索广告素材、分析应用排名、下载量、收入及市场洞察,用于广告素材和竞品分析。
★ 295 📥 136,493