Token导航 LogoToken导航

Agent Skill · 研究检索

openclaw-powerpost(OpenClaw powerpost 搜索)

openclaw-powerpost 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

openclaw-powerpost 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 9,762。

总安装 13,638周安装 574GitHub Stars 公开资料未说明下载 4,776核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
0.3.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:openclaw-powerpost(OpenClaw powerpost 搜索)
来源仓库:https://github.com/tarekhoury/openclaw-powerpost
安装命令:
openclaw skills install openclaw-powerpost
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install openclaw-powerpost

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

一键生成并发布社交媒体内容到多个平台。适合营销文案快速制作与多渠道分发。支持图文混排与平台特性适配。适用宿主包括 OpenClaw,接入前应确认版本、权限和运行环境要求。需配置各平台发布接口与频率限制。避免高频调用导致账号限流。

openclaw-powerpost 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install openclaw-powerpost;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

openclaw-powerpost 怎么安装?

在终端执行 openclaw skills install openclaw-powerpost。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

openclaw-powerpost 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

openclaw-powerpost 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

openclaw-powerpost 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

openclaw-powerpost 用的人多吗?

公开数据是累计安装 13,638 次,近一周安装 574 次,下载 4,776 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

openclaw-powerpost 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
openclaw-powerpost

OpenClaw powerpost 搜索 · 本页

13,638—接触敏感数据MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
powerpost
description
Generate social media content and publish to all major platforms from one command.
version
0.3.0
metadata
openclaw
requires
env
bins
primaryEnv
POWERPOST_API_KEY
emoji
⚡
homepage
https://powerpost.ai

PowerPost Skill

PowerPost writes social media captions, generates images and videos, manages your content calendar, and publishes to Instagram, TikTok, X/Twitter, YouTube, Facebook, and LinkedIn through a single API.

Setup

The user needs two credentials:

  • POWERPOST_API_KEY — their API key (starts with pp_live_sk_). They can create one at https://powerpost.ai/settings/api
  • POWERPOST_WORKSPACE_ID — their workspace ID. Found at https://powerpost.ai/settings/workspaces

There are two ways to configure these in OpenClaw. The API key can go in the Skills UI (the "API key" field) or via config. The workspace ID has to be set via config since the UI only has one field per skill:

openclaw config set skills.entries.powerpost.apiKey "pp_live_sk_YOUR_KEY"
openclaw config set skills.entries.powerpost.env.POWERPOST_WORKSPACE_ID "YOUR_WORKSPACE_ID"

API keys come in two types:

  • read_write — full access, including publishing.
  • read_draft — can generate content and create drafts, but publishing is blocked (returns 403). Good when a human should review before anything goes live.

New accounts start with 50 free credits. Pricing details at https://powerpost.ai/pricing

First run

Before running any PowerPost command, make sure both credentials are set. If either is missing, walk the user through setup:

  1. If POWERPOST_API_KEY is not set:

- Ask if they have a PowerPost account. If not, they can sign up at https://powerpost.ai/login - Point them to https://powerpost.ai/settings/api to create an API key. - They can paste it into the "API key" field on the Skills page in the OpenClaw UI, or run: openclaw config set skills.entries.powerpost.apiKey "pp_live_sk_..."

  1. If POWERPOST_WORKSPACE_ID is not set:

- Point them to https://powerpost.ai/settings/workspaces to find it. - They need to run: openclaw config set skills.entries.powerpost.env.POWERPOST_WORKSPACE_ID "their-workspace-id" — there's no UI field for this one, it has to be set via config.

  1. Once both are set, verify by calling GET /account/credits. If it returns a balance, you're good. If it returns 401, the API key is wrong.

Don't run any other PowerPost commands until both credentials are confirmed working.

Base URL

All requests go to:

https://powerpost.ai/api/v1

Authentication Headers

Every request needs x-api-key (or Authorization: Bearer <key>). All content endpoints also need X-Workspace-Id. The only exception is GET /account/credits which only needs x-api-key.

x-api-key: $POWERPOST_API_KEY
X-Workspace-Id: $POWERPOST_WORKSPACE_ID

Core Workflow

The standard PowerPost flow is:

  1. Check credits to make sure the user has enough balance.
  2. Generate content from text, images, or video (async — returns a generation ID).
  3. Poll for results every 2-3 seconds until status is completed or failed.
  4. Optionally generate images or videos from the captions or a text prompt (also async — poll for results).
  5. Create a post combining the generated captions and images into a draft.
  6. Show the draft to the user for review before publishing.
  7. Publish the post to connected social platforms.

Always check credits before generating content. Always show the user what will be published and get confirmation before calling the publish endpoint.


Endpoints

1. Check Credits

Use this to check how many credits the user has before starting any generation.

curl https://powerpost.ai/api/v1/account/credits \
  -H "x-api-key: $POWERPOST_API_KEY"

Note: This endpoint does NOT need the X-Workspace-Id header.

Response:

{
  "balance": 47
}

Tell the user their current balance. If balance is low, warn them before they start a generation.

Credit Costs

Credit costs vary by action:

  • Caption generation: depends on research mode, input type, number of source URLs, and video length.
  • Image generation: depends on model and quantity.
  • Video generation: depends on model, duration, and whether audio is enabled.
  • Publishing: depends on platform. Premium platforms like X cost more.

The exact cost is returned in every API response via credits_used and remaining_credits. Always check credits before starting a generation so the user knows the cost upfront.

Credits are only charged for successful operations. Failed generations, failed publish attempts, and failed URL scrapes are refunded.


2. Upload Media

Use this when the user wants to generate content from images or video, or when they want to attach media to a post.

curl -X POST https://powerpost.ai/api/v1/media/upload \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID" \
  -F "file=@/path/to/file" \
  -F "type=image"

The type field must be image or video.

Supported formats:

  • Images: JPEG, PNG, WebP (max 10 MB)
  • Videos: MP4, MOV, WebM (max 500 MB)

Response:

{
  "media_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "type": "image",
  "file_name": "photo.jpg",
  "file_size": 245000,
  "mime_type": "image/jpeg",
  "created_at": "2026-01-10T18:30:00Z"
}

Save the media_id from the response. You will need it for content generation (media_ids field) or for creating posts (media_ids in post items).

Tell the user the upload was successful and show the file name and size.


3. Generate Content

Use this when the user wants to create social media captions.

There are three input modes, determined by which fields you provide:

  • Text only: Send prompt (required, 3-2000 chars).
  • Image input: Send media_ids with image IDs (+ optional prompt for context).
  • Video input: Send media_ids with a video ID (+ optional prompt for context).

You must provide either prompt or media_ids (or both).

curl -X POST https://powerpost.ai/api/v1/content/generate \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "We just shipped dark mode across all our apps",
    "post_types": ["instagram-reel", "tiktok-video", "x-post"],
    "research_mode": "regular"
  }'

Required fields:

  • post_types (string array) — At least one post type. See the post types table below.
  • research_mode (string) — "regular" or "deep". Use regular for quick tasks, deep for important posts.

Optional fields:

  • writing_style_id (string) — A custom writing style ID created in the dashboard.
  • cta_text (string, max 100 chars) — A custom call-to-action.
  • source_urls (string array, max 10) — URLs to scrape for research context. Must be HTTPS. Private/internal URLs are filtered out for security. Each URL adds to the generation cost.

Post types:

PlatformPost Types
Instagraminstagram-feed, instagram-reel, instagram-story
TikToktiktok-video, tiktok-photos
YouTubeyoutube-video, youtube-short
Xx-post
Facebookfacebook-post, facebook-reel, facebook-story
LinkedInlinkedin-post

Multiple post types from the same platform produce one shared caption for that platform. The post type declares publishing intent.

Response:

{
  "generation_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "processing",
  "credits_used": 10,
  "remaining_credits": 90,
  "status_url": "/api/v1/content/generations/550e8400-e29b-41d4-a716-446655440000"
}

Tell the user the generation has started, how many credits it cost, and that you are waiting for it to complete. Then immediately start polling.


4. Get Generation Status (Polling)

After starting a generation, poll this endpoint every 2-3 seconds until status is completed or failed. Do not poll more than 60 times (about 2 minutes).

curl https://powerpost.ai/api/v1/content/generations/GENERATION_ID \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID"

While processing:

{
  "generation_id": "550e8400-...",
  "status": "processing",
  "prompt": "We just shipped dark mode",
  "platforms": ["tiktok", "instagram"],
  "research_mode": "regular",
  "credits_used": 10,
  "created_at": "2026-01-10T18:30:00Z"
}

If status is still processing or pending, wait 3 seconds and poll again.

When completed:

{
  "generation_id": "550e8400-...",
  "status": "completed",
  "prompt": "We just shipped dark mode",
  "platforms": ["tiktok", "instagram"],
  "research_mode": "regular",
  "credits_used": 10,
  "created_at": "2026-01-10T18:30:00Z",
  "outputs": {
    "tiktok": "Dark mode activated! POV: your eyes at 2am finally getting some relief... #darkmode #tech",
    "instagram": "Dark mode is here!\
\
Your late-night scrolling just got easier on the eyes... #DarkMode #ProductUpdate"
  }
}

The outputs object is keyed by platform name (not post type). Each value is a string, EXCEPT YouTube which has a title and description:

"youtube": {
  "title": "We Just Shipped Dark Mode",
  "description": "Dark mode is finally here across all our apps... #darkmode"
}

When completed, display all generated captions to the user, clearly labeled by platform.

When failed:

The response includes an error object with code and message. Credits are refunded on failure. Tell the user the generation failed and show the error message.


5. List Generations

Use this when the user wants to see their recent generations or search for a past generation.

curl "https://powerpost.ai/api/v1/content/generations?status=completed&limit=10" \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID"

Query parameters (all optional):

  • status — Filter by: pending, processing, completed, failed
  • limit — Results per page, 1-100 (default 20)
  • cursor — Pagination cursor from next_cursor in a previous response

Response:

{
  "data": [
    {
      "generation_id": "550e8400-...",
      "status": "completed",
      "prompt": "We just shipped dark mode",
      "platforms": ["tiktok", "instagram"],
      "research_mode": "regular",
      "credits_used": 10,
      "created_at": "2026-01-10T18:30:00Z"
    }
  ],
  "next_cursor": "gen_cursor_abc123",
  "has_more": true
}

The list endpoint does NOT include outputs. To get the full content of a specific generation, use the get generation endpoint with its ID.

Show the user a summary table of their generations. If they want to see the content of a specific one, fetch it with the get endpoint.


6. Generate Images

Use this when the user wants to create AI-generated images. There are three input modes:

Text mode: Describe the image in prompt. Reference mode: Provide prompt + style_images (media IDs of uploaded reference images, max 4). Post mode: Provide generation_id to create images matching an existing caption generation (+optional prompt for extra direction and source_post_type to pick which platform caption to use).

curl -X POST https://powerpost.ai/api/v1/images/generate \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Minimalist workspace with laptop and coffee, warm morning light",
    "size": "square",
    "quantity": 2,
    "model": "flux2-flex"
  }'

Fields:

  • prompt (string, max 2000 chars) — Required for text and reference modes. Optional for post mode.
  • size (string) — square (1:1), feed (4:5), portrait (9:16), landscape (16:9). Default: square.
  • quantity (number, 1-4) — How many images to generate. Default: 1.
  • model (string) — flux2-flex (default, best for multi-reference and fine control), ideogram-3 (best text rendering and logos), gpt-image-1.5 (most photorealistic, best detail), nano-banana-2 (fast generation, great text).
  • enhance_prompt (boolean) — Let AI optimize the prompt. Default: false.
  • style_images (string array) — Media IDs of reference images (max 4). For reference mode.
  • generation_id (string) — Caption generation ID. For post mode.
  • source_post_type (string) — Which platform's caption to use as source. For post mode only.

Model and size compatibility:

  • flux2-flex: square, feed, portrait, landscape
  • ideogram-3: square, feed, portrait, landscape
  • gpt-image-1.5: square, portrait, landscape (NO feed)
  • nano-banana-2: square, feed, portrait, landscape

If the user requests a model/size combo that is not supported, warn them and suggest an alternative.

Response:

{
  "image_generation_id": "7a8b9c0d-e1f2-3456-abcd-ef7890123456",
  "status": "processing",
  "credits_used": 10,
  "remaining_credits": 36,
  "status_url": "/api/v1/images/generations/7a8b9c0d-e1f2-3456-abcd-ef7890123456"
}

Tell the user that image generation has started and begin polling.


7. Get Image Generation Status (Polling)

Poll this endpoint every 2-3 seconds until status is completed or failed.

curl https://powerpost.ai/api/v1/images/generations/IMAGE_GENERATION_ID \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID"

When completed:

{
  "image_generation_id": "7a8b9c0d-...",
  "status": "completed",
  "prompt": "Minimalist workspace with laptop and coffee",
  "size": "square",
  "quantity": 2,
  "created_at": "2026-01-10T18:30:00Z",
  "images": [
    {
      "media_id": "img-001-abcd-efgh",
      "url": "https://powerpost.ai/storage/images/img-001-abcd-efgh.webp",
      "thumbnail_url": "https://powerpost.ai/storage/images/img-001-abcd-efgh-thumb.jpg",
      "width": 1024,
      "height": 1024
    }
  ]
}

Each image has a media_id which you use to attach the image to a post. The url is a preview link valid for 7 days. Always use the media_id, not the URL, when creating posts.

Show the user the image URLs so they can preview. Save the media_id values for creating posts.

Partial failure: If some images fail while others succeed, you get a partial result with a partial credit refund. The response status will be failed but may still contain an images array with the successful ones.


8. Generate Videos

Use this when the user wants to create AI-generated videos. There are two input modes:

Text-to-video: Describe the video in prompt. Image-to-video: Provide prompt + source_image (media ID of an uploaded image).

curl -X POST https://powerpost.ai/api/v1/videos/generate \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A golden retriever running through a field of wildflowers at sunset",
    "size": "landscape",
    "duration": 5,
    "model": "kling-3.0-pro",
    "has_audio": false
  }'

Fields:

  • prompt (string, required) — Text description of the video.
  • size (string) — landscape (16:9) or portrait (9:16). Default: landscape.
  • duration (integer, required) — Duration in seconds. Must match one of the model's supported values (see table).
  • model (string) — kling-3.0-pro (default), veo-3.1, or runway-gen-4.5.
  • has_audio (boolean) — Generate with audio. Default: false. Only supported by some models.
  • enhance_prompt (boolean) — Let AI optimize the prompt. Default: false.
  • source_image (media ID, UUID) — Media ID of an uploaded image for image-to-video mode.

Model details:

Model IDNameSizesAudioDurations
kling-3.0-proKling 3.0 Prolandscape, portraitYes5s, 10s
veo-3.1Google Veo 3.1landscape, portraitYes4s, 8s
runway-gen-4.5Runway Gen-4.5landscape, portraitNo5s, 10s

Prompt limits by model: Veo 3.1 = 3000 chars, Kling 3.0 Pro = 2500 chars, Runway Gen-4.5 = 1000 chars.

Credit costs depend on the model, duration, and audio. The exact cost is returned in the response.

Response:

{
  "video_generation_id": "7a8b9c0d-e1f2-3456-abcd-ef7890123456",
  "status": "processing",
  "credits_used": 15,
  "remaining_credits": 85,
  "status_url": "/api/v1/videos/generations/7a8b9c0d-e1f2-3456-abcd-ef7890123456"
}

Tell the user that video generation has started and begin polling.


9. Get Video Generation Status (Polling)

Poll this endpoint every 10 seconds until status is completed or failed. Video generation takes longer than images — do not poll more than 120 times.

curl https://powerpost.ai/api/v1/videos/generations/VIDEO_GENERATION_ID \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID"

When completed:

{
  "video_generation_id": "7a8b9c0d-...",
  "status": "completed",
  "prompt": "A golden retriever running...",
  "size": "landscape",
  "duration": 5,
  "has_audio": false,
  "model": "kling-3.0-pro",
  "created_at": "2026-03-11T10:00:00Z",
  "video": {
    "media_id": "vid-001-abcd",
    "url": "https://powerpost.ai/storage/videos/vid-001-abcd.mp4",
    "thumbnail_url": "https://powerpost.ai/storage/thumbs/vid-001-abcd.jpg",
    "width": 1920,
    "height": 1080,
    "duration": 5
  }
}

The video has a media_id which you use to attach it to a post. The url is a preview link valid for 7 days. Always use the media_id, not the URL, when creating posts.

Show the user the video URL so they can preview. Save the media_id for creating posts.

When failed: The response includes an error object with code (VIDEO_GENERATION_FAILED) and message. Credits are refunded on failure.


10. Create Post

Use this to assemble captions and media into a draft post ready for review and publishing.

curl -X POST https://powerpost.ai/api/v1/posts \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "generation_id": "550e8400-e29b-41d4-a716-446655440000",
    "items": [
      {
        "post_type": "instagram-reel",
        "media_ids": ["img-001-abcd-efgh"]
      },
      {
        "post_type": "tiktok-video",
        "media_ids": ["img-001-abcd-efgh"]
      }
    ]
  }'

Fields:

  • generation_id (string, optional) — Links to a completed caption generation. If provided, content is auto-filled from the generation outputs for each platform.
  • items (array, required) — One item per post type you want to publish.

Each item:

  • post_type (string, required) — The target post type (e.g., instagram-reel, x-post).
  • content (string) — The caption text. Required if no generation_id is provided. If generation_id is provided, content is auto-filled but can be overridden.
  • title (string) — Required for YouTube post types (youtube-video, youtube-short).
  • media_ids (string array, optional) — Media to attach (uploaded or generated image IDs).

Custom content example (no generation):

curl -X POST https://powerpost.ai/api/v1/posts \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "post_type": "x-post",
        "content": "Just shipped the biggest update of the year."
      },
      {
        "post_type": "linkedin-post",
        "content": "Excited to announce our biggest product update of the year..."
      }
    ]
  }'

Response:

{
  "post_id": "post-550e8400-e29b-41d4-a716-446655440000",
  "status": "draft",
  "created_at": "2026-01-10T18:30:00Z",
  "items": [
    {
      "item_id": "item-001",
      "post_type": "instagram-reel",
      "platform": "instagram",
      "content": "Dark mode is here! Your late-night scrolling just got easier... #DarkMode",
      "media_ids": ["img-001-abcd-efgh"],
      "status": "draft"
    }
  ]
}

After creating a post, show the user a summary of every item (platform, content preview, attached media) and ask if they want to publish or make changes.


11. Get Post

Use this to check the status of a post, especially after publishing.

curl https://powerpost.ai/api/v1/posts/POST_ID \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID"

Response includes the post with all items and their individual statuses. After publishing, each item will show posting, posted, or failed with an optional platform_post_id for successfully published items.

Post statuses: draft, publishing, published, failed. Item statuses: draft, posting, posted, failed.


12. Publish Post

Use this to publish a draft post to connected social platforms. Always confirm with the user before calling this endpoint.

curl -X POST https://powerpost.ai/api/v1/posts/POST_ID/publish \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID"

Prerequisites:

  • The user's social platforms must be connected at https://powerpost.ai/settings/connections
  • The post must be in draft status.
  • The user must have sufficient credits.
  • The API key must be read_write type (not read_draft).

Response:

{
  "post_id": "post-550e8400-...",
  "status": "publishing",
  "credits_used": 1,
  "status_url": "/api/v1/posts/post-550e8400-..."
}

Publishing is asynchronous. After receiving the response, poll the Get Post endpoint every 3 seconds to check when each item has finished publishing.

Publishing costs vary by platform. The exact cost is returned in the response via credits_used.

Tell the user how many credits were used and that publishing is in progress. When all items show posted or failed, summarize the results.


Common User Commands

"Post about X" / "Create a post about X"

Full flow:

  1. Check credits.
  2. Ask which platforms if not specified. Default to all if the user says "everywhere" or "all platforms".
  3. Generate content with the user's topic as the prompt. Use regular research mode unless they ask for deep. If the user provides URLs as references, include them in source_urls.
  4. Poll until complete.
  5. Show the generated captions.
  6. Ask if they want to generate images too.
  7. Create the post.
  8. Show the draft and ask for confirmation.
  9. Publish on confirmation.

"Write captions about X" / "Generate content about X"

Partial flow (no publishing):

  1. Check credits.
  2. Generate content.
  3. Poll until complete.
  4. Show the captions to the user.

"Create an image" / "Generate an image of X"

  1. Check credits.
  2. If the user provides a text description, use text mode. If they reference a previous generation, use post mode. If they have reference images, use reference mode.
  3. Ask about size preference if not specified (square is a safe default).
  4. Generate the image.
  5. Poll until complete.
  6. Show the image URLs to the user.

"Create a video" / "Generate a video of X"

  1. Check credits.
  2. If the user has an image they want to animate, use image-to-video mode (upload first, then pass source_image). Otherwise use text-to-video mode.
  3. Ask about duration if not specified. Default to 5 seconds.
  4. Ask about size if not specified (landscape is a safe default for video).
  5. Generate the video.
  6. Poll until complete (video takes longer than images — up to a few minutes).
  7. Show the video URL to the user.

"Check my credits" / "How many credits do I have?"

  1. Call the credits endpoint.
  2. Tell the user their balance.

"Upload this image/video"

  1. Upload the file using the media upload endpoint.
  2. Tell the user the upload succeeded and show the media ID.
  3. Ask what they want to do with it (generate captions from it, use it in a post, etc.).

"Show my recent posts" / "List my generations"

  1. Call the list generations endpoint.
  2. Show a summary of recent generations.
  3. If the user wants details on one, fetch it with the get generation endpoint.

"Publish my post" / "Send it live"

  1. If there is a draft post from this session, publish it.
  2. If not, ask the user which post to publish.
  3. Always confirm before publishing.

Polling Strategy

Content generation, image generation, and video generation are all asynchronous. After starting any of them:

  1. Wait 2 seconds.
  2. Call the status endpoint.
  3. If status is processing or pending, wait 3 seconds and poll again.
  4. If status is completed, show the results.
  5. If status is failed, show the error and tell the user credits were refunded.
  6. Do not poll more than 60 times for content/images, or 120 times for video (it takes longer). If it times out, tell the user to try again later.

Publishing is also asynchronous. After calling publish:

  1. Wait 3 seconds.
  2. Poll the Get Post endpoint.
  3. Check each item's status. When all are either posted or failed, stop polling.

Error Handling

All errors return this format:

{
  "error": {
    "message": "Human-readable error message",
    "code": "ERROR_CODE"
  }
}

Handle these errors:

HTTP StatusCodeWhat to Tell the User
400VALIDATION_ERRORThe request was invalid. Check the fields and try again.
401INVALID_API_KEYThe API key is missing or invalid. Check POWERPOST_API_KEY.
402INSUFFICIENT_CREDITSNot enough credits. Check balance and suggest upgrading.
403FORBIDDENAccess denied. The API key may be read_draft and publishing was attempted.
404NOT_FOUNDThe resource was not found. Check the ID.
409ALREADY_PUBLISHEDThis post was already published.
413FILE_TOO_LARGEThe file exceeds the size limit (10 MB for images, 500 MB for video).
413STORAGE_QUOTA_EXCEEDEDStorage quota exceeded (10 GB limit). Delete unused media or contact support.
422PLATFORM_NOT_CONNECTEDThe target platform is not connected. Direct user to https://powerpost.ai/settings/connections
429RATE_LIMIT_EXCEEDEDToo many requests. Wait the duration in retryAfter seconds and retry.
500INTERNAL_ERRORServer error. Wait a moment and try again.

For rate limit errors (429), the response includes a retryAfter field in seconds. Wait that long before retrying.

Every response includes an X-Request-Id header. If the user needs support, give them this ID.


13. List Calendar Entries

Use this to pull up what's on the user's content calendar.

curl "https://powerpost.ai/api/v1/calendar/entries?start_date=2026-03-01&end_date=2026-03-31" \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID"

Query parameters (both required):

  • start_date (string) — Start of range, YYYY-MM-DD.
  • end_date (string) — End of range, YYYY-MM-DD.

The date range can't exceed 366 days.

Response:

{
  "entries": [
    {
      "entry_id": "550e8400-e29b-41d4-a716-446655440000",
      "title": "Product launch announcement",
      "description": "Share the new feature across all channels",
      "scheduled_date": "2026-03-25",
      "scheduled_time": "14:00",
      "platforms": ["instagram", "tiktok", "x"],
      "status": "planned",
      "created_at": "2026-03-19T10:00:00Z",
      "updated_at": "2026-03-19T10:00:00Z"
    }
  ]
}

Show the entries grouped by date with their title and platforms.


14. Create Calendar Entry

Use this to plan a future post on the calendar.

curl -X POST https://powerpost.ai/api/v1/calendar/entries \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Product launch announcement",
    "description": "Share the new feature across all channels",
    "scheduled_date": "2026-03-25",
    "scheduled_time": "14:00",
    "platforms": ["instagram", "tiktok", "x"]
  }'

Fields:

  • title (string, required) — What the post is about (max 500 chars).
  • description (string, optional) — Extra notes or details (max 5000 chars).
  • scheduled_date (string, required) — Target date, YYYY-MM-DD.
  • scheduled_time (string, optional) — Target time, HH:MM (24-hour).
  • platforms (string array, optional) — Target platforms: instagram, tiktok, youtube, x, facebook, linkedin.

Response:

{
  "entry_id": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Product launch announcement",
  "description": "Share the new feature across all channels",
  "scheduled_date": "2026-03-25",
  "scheduled_time": "14:00",
  "platforms": ["instagram", "tiktok", "x"],
  "status": "planned",
  "created_at": "2026-03-19T10:00:00Z",
  "updated_at": "2026-03-19T10:00:00Z"
}

Confirm the entry was created and show the date, title, and platforms.


15. Get Calendar Entry

Use this to fetch a specific calendar entry by ID.

curl https://powerpost.ai/api/v1/calendar/entries/ENTRY_ID \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID"

Response is the same shape as the create response. Returns 404 if the entry doesn't exist.


16. Update Calendar Entry

Use this to change details on an existing calendar entry. Only include the fields you want to update.

curl -X PATCH https://powerpost.ai/api/v1/calendar/entries/ENTRY_ID \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Updated launch announcement",
    "scheduled_date": "2026-03-28"
  }'

Fields (all optional):

  • title (string) — Max 500 chars.
  • description (string, nullable) — Max 5000 chars. Pass null to clear.
  • scheduled_date (string) — YYYY-MM-DD.
  • scheduled_time (string, nullable) — HH:MM. Pass null to clear.
  • platforms (string array) — Replaces the full list.

At least one field must be provided.

Response returns the full updated entry.


17. Delete Calendar Entry

Use this to remove a calendar entry.

curl -X DELETE https://powerpost.ai/api/v1/calendar/entries/ENTRY_ID \
  -H "x-api-key: $POWERPOST_API_KEY" \
  -H "X-Workspace-Id: $POWERPOST_WORKSPACE_ID"

Response:

{
  "success": true
}

Returns 404 if the entry doesn't exist.


Things to know

  • Always show the user what will be posted and where, and get explicit confirmation before publishing. This goes to real social accounts.
  • YouTube posts need a title field in addition to the caption.
  • If the user picks both instagram-reel and instagram-feed, they share one Instagram caption. The post type controls the publishing format, not the caption.
  • Image and video URLs from generation expire after 7 days. Always use media_id when creating posts, not the URL.
  • Credits are shared across all workspaces on an account.
  • Workspaces are isolated from each other. Generations, posts, media, and connections in one workspace aren't visible in another.
  • Users can set up webhooks at https://powerpost.ai/settings/api for real-time notifications instead of polling. Not needed for agent usage, but useful for production integrations.

External endpoints

All requests go to one domain: https://powerpost.ai/api/v1/*. Nothing is sent anywhere else.

Security and privacy

  • Your API key and workspace ID are sent to powerpost.ai as HTTP headers with every request. They're not logged, displayed, or sent anywhere else.
  • Prompts, uploaded media, and generated content are stored on PowerPost's servers, scoped to your workspace.
  • This skill only uses curl over HTTPS. It doesn't write files, run scripts, or touch your system.

Trust

When you use this skill, your prompts, images, videos, and credentials go to powerpost.ai over HTTPS. PowerPost uses third-party AI models on their servers to process your content. Their privacy policy is at https://powerpost.ai/terms and support is at https://powerpost.ai/contact

Tips

  • Always check the credit balance before starting a generation. Better to warn the user upfront than hit an insufficient credits error mid-flow.
  • Default to regular research mode. Only use deep when the user asks for it or says the post matters.
  • Default to square for image size if the user doesn't say. It works on most platforms.
  • Default to flux2-flex for the image model. It supports all sizes and handles reference images well.
  • If a generation fails, credits are refunded. Let the user know and suggest trying again.
  • When the user says "all platforms," use one post type per platform: instagram-feed, tiktok-video, youtube-short, x-post, facebook-post, linkedin-post.
  • If the user's image description is short or vague, suggest setting enhance_prompt: true to let the AI fill in the details.
  • Default to kling-3.0-pro for video generation. It handles both sizes and supports audio.
  • Default to landscape and 5 seconds for video unless the user says otherwise.
  • Video generation is slower than images. Tell the user it may take a couple minutes.
  • If the user provides URLs as references for a post, pass them as source_urls in the content generation request. Each URL adds to the cost.

平台分布

OpenClaw

70.68%
按下载量换算3,376

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills