Create, schedule, and publish social media posts across Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Pinterest, Threads, and Bluesky via the Social0 CLI (preferred) or MCP. Covers account listing, media upload, drafts, instant publish, scheduling, and per-platform publish status.
数据分析
Fuxux Social Manager
试用Turn OpenClaw into an autonomous social media manager for Fuxux. Schedule and publish to Twitter/X, Instagram, LinkedIn, Facebook, TikTok, YouTube, Bluesky, Threads, and Pinterest via REST API and MCP — media, drafts, queue, and publishing analytics.
它能做什么
Turn OpenClaw into an autonomous social media manager for Fuxux. Schedule and publish to Twitter/X, Instagram, LinkedIn, Facebook, TikTok, YouTube, Bluesky, Threads, and Pinterest via REST API and MCP — media, drafts, queue, and publishing analytics.
技能文档
Social Media Assistant (via fuxux.com)
Turn your OpenClaw agent into an autonomous social media manager using the Fuxux API and MCP server. Use when scheduling, posting, or managing content across Twitter/X, Instagram, LinkedIn, Facebook, TikTok, YouTube, Bluesky, Threads, or Pinterest. Covers media upload, post creation, scheduling, draft mode, queue inspection, and publishing analytics.
Setup
-
Create a Fuxux account at fuxux.com and connect at least one social account (Settings → Accounts or onboarding).
-
Create an API key: Settings → API keys → Create key. Keys look like
fx_live_+ 40 hex characters (48 chars total). The full secret is shown once — store it safely. -
Store the key in the agent workspace
.env(never commit real keys):FUXUX_API_KEY=fx_live_your_secret_here -
Download API docs for offline reference:
- OpenAPI JSON:
https://www.fuxux.com/openapi.json - Interactive reference:
https://www.fuxux.com/reference - MCP setup guide:
https://www.fuxux.com/mcp/docs
- OpenAPI JSON:
-
(Recommended for OpenClaw) Connect MCP so the agent can call Fuxux tools directly (see MCP below).
Auth
All authenticated HTTP requests use a Bearer token:
Authorization: Bearer
Primary env var: FUXUX_API_KEY
Base URL
Routes below are rooted at https://www.fuxux.com (e.g. GET https://www.fuxux.com/api/accounts).
MCP (recommended for OpenClaw)
Fuxux exposes a Streamable HTTP MCP server. Send the same Bearer header on every MCP request.
| Endpoint | Notes |
|---|---|
https://www.fuxux.com/api/mcp | Primary public MCP endpoint |
OpenClaw / Claude Desktop (stdio bridge):
{
"mcpServers": {
"fuxux": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://www.fuxux.com/api/mcp",
"--header",
"Authorization: Bearer YOUR_FUXUX_API_KEY"
]
}
}
}
Cursor / HTTP clients:
{
"mcpServers": {
"fuxux": {
"url": "https://www.fuxux.com/api/mcp",
"headers": {
"Authorization": "Bearer ${env:FUXUX_API_KEY}"
}
}
}
}
MCP tools
| Tool | Purpose |
|---|---|
whoami | Validate token; return profile (id, email, plan) |
list_connected_accounts | Connected social accounts + connected / expired status, via_bridge, needs_reconnect |
get_dashboard | Stats, upcoming scheduled posts, platform snapshot |
list_posts | Queue / calendar — optional month (YYYY-MM), status (scheduled | published | draft | all) |
create_post | Create, schedule, or publish — same body as POST /api/posts |
Prefer MCP when the host supports it; fall back to REST when you need raw control.
Core workflow (REST)
1. Validate auth / profile
GET /api/settings/profile
Authorization: Bearer $FUXUX_API_KEY
Returns user id, email, full_name, plan (free | creator | growth | pro).
2. List connected social accounts
GET /api/accounts
Authorization: Bearer $FUXUX_API_KEY
Returns accounts[] with id, platform, platform_username, status (connected | expired), and two extra flags: via_bridge (connected through Fuxux's managed publishing bridge rather than a direct OAuth token — informational, no action needed) and needs_reconnect (this account was connected before the bridge was enabled for its platform and must be reconnected in the Fuxux dashboard before it can publish again — publishing to it will fail otherwise).
Important: Fuxux posts by platform id in the captions map (e.g. twitter, instagram), not by account UUID. Only include platforms the user has connected, that are not expired, and that don't have needs_reconnect: true. If needs_reconnect is true for an account you want to use, tell the user to reconnect it in Settings → Accounts first.
3. Dashboard summary
GET /api/dashboard
Authorization: Bearer $FUXUX_API_KEY
High-level stats (postsThisMonth, totalPublished, upcomingThisWeek), next scheduled posts, and per-platform connection info.
4. Upload media
Option A — Fuxux upload (works with fx_live_ API keys too, not just browser sessions):
POST /api/media/upload
Content-Type: multipart/form-data
Form field file. Allowed: JPEG, PNG, GIF, WebP, MP4, MOV, WebM. Max 50 MB.
Response includes public url — pass it in media_urls on post create.
Option B — API-only / agent workspace (recommended):
Upload video or image to your own CDN or object storage, then pass public HTTPS URLs in media_urls (up to 4 URLs).
5. Create post — publish now, schedule, or save draft
POST /api/posts
Authorization: Bearer $FUXUX_API_KEY
Content-Type: application/json
Body:
| Field | Required | Description |
|---|---|---|
captions | Yes* | Object: platform id → caption string. Unknown keys are ignored. |
prompt | No | Short idea stored on the post (max 500 chars). |
scheduled_at | No | ISO 8601 future datetime. Omit to publish immediately. |
media_urls | No | Up to 4 public URLs (images/video). |
draft | No | If true, saves as draft — does not publish or schedule. Cannot combine with scheduled_at. |
* Not required when draft: true if prompt is set.
Publish now — X + LinkedIn:
{
"prompt": "Shipped analytics timeframe picker",
"captions": {
"twitter": "You can now pick 7/14/30/90 days in Fuxux Analytics 📊",
"linkedin": "We shipped a clearer analytics experience — pick your chart window and keep monthly summaries separate."
}
}
Schedule for later:
{
"captions": { "instagram": "Tomorrow: AMA at 3pm ET" },
"scheduled_at": "2026-05-20T19:00:00.000Z",
"media_urls": ["https://cdn.example.com/promo.jpg"]
}
Save draft (publish later from Fuxux UI or a follow-up API call):
{
"prompt": "Thread idea: 5 lessons from our first 100 customers",
"captions": {
"twitter": "Draft hook — refine before posting",
"linkedin": "Long-form draft for LinkedIn"
},
"draft": true
}
Immediate publish response includes per-platform results[] with success, platform_post_id, and error when applicable — plus two fields worth checking before treating a result as a hard failure:
still_processing: true meanssuccessisfalsebut the post was accepted and may still go live shortly (some networks confirm status asynchronously). Don't retry or tell the user it failed — checkGET /api/posts?status=publishedagain in a bit instead.inbox_pending: true means the platform accepted the media into an inbox/draft flow (e.g. TikTok's upload inbox) rather than publishing directly — counts as success, but the user may need to finish posting from within that platform's own app.
Rate limit: ~30 creates per 5 minutes per user → 429 with Retry-After. Back off and retry.
6. List posts (queue / calendar)
GET /api/posts?month=2026-05&status=scheduled
Authorization: Bearer $FUXUX_API_KEY
| Query | Meaning |
|---|---|
month | YYYY-MM — filter scheduled posts in that calendar month |
status | scheduled | published | draft | all |
limit | Optional, 1–50 |
Response: posts[] with post_variants (per-platform content + status) and counts (scheduled, published, drafts).
7. Check publish status
There is no separate /post-results endpoint. Inspect status via:
GET /api/posts?status=published
GET /api/posts?status=scheduled
Each post / variant has status: draft, scheduled, publishing, published, or failed. Failed variants include error_message.
For immediate publishes, the POST /api/posts response already returns results[].
8. Delete a scheduled post
DELETE /api/posts/{post_id}
Note: Personal API keys may not work on this route yet — if 401, ask the user to delete from the Fuxux web app (Posts or Schedule).
9. Publishing analytics
GET /api/analytics?days=30
days ∈ 7 | 14 | 30 | 90 (default 30).
Returns publishing stats: totals, success rate, daily post counts, platform breakdown (published vs failed), recent posts.
Also includes real third-party engagement where available — likes, comments, shares, views, impressions, reach:
engagement: totals across the selected window, pluspostsWithInsights(how many posts have synced data).platformBreakdown[].engagement/.postsWithInsights: the same, broken down per platform.recentPosts[].post_variants[].insights: per-post detail, includingengagement_rate(not summed at the aggregate level since it's a percentage).
Engagement is only populated for posts published through a supported bridge-connected platform, and syncs in on a delay (a few hours after publish, refreshed periodically) — expect postsWithInsights: 0 / missing insights for brand-new posts or platforms without engagement support yet.
Works fine with fx_live_ API keys — get_dashboard via MCP is also a good lighter-weight option for quick summaries.
Platform IDs (captions keys)
Use these string ids (must match connected accounts):
| Platform | Id | Typical char limit |
|---|---|---|
| Twitter / X | twitter | 280 |
instagram | 2200 | |
linkedin | 3000 | |
facebook | 63206 | |
| TikTok | tiktok | 2200 |
| YouTube | youtube | 5000 |
| Bluesky | bluesky | 300 |
| Threads | threads | 500 |
pinterest | 500 |
Per-platform captions (Fuxux model)
Unlike APIs that take one caption + platform config objects, Fuxux expects one caption per platform in the captions map. Tailor tone and length per network:
{
"captions": {
"twitter": "Short hook + link 🚀",
"linkedin": "Three-paragraph story with a clear takeaway for professionals.",
"instagram": "Visual-first caption with 3–5 hashtags #buildinpublic"
},
"media_urls": ["https://cdn.example.com/launch.mp4"]
}
Only include keys for platforms that are connected (GET /api/accounts).
Connecting new accounts (human-in-the-loop)
The agent should not handle OAuth secrets alone. Instruct the user to connect in the Fuxux UI:
- OAuth: Twitter/X, Instagram, LinkedIn, Facebook, TikTok, YouTube, Threads, Pinterest — Settings → Accounts
- Bluesky: app password in Fuxux UI (not in chat)
Recommended workflow for video content
-
Keep source videos in a workspace folder (e.g.
content/inbox/). -
Optional: extract a frame for caption context:
ffmpeg -i video.mp4 -ss 00:00:04 -frames:v 1 frame.jpg -y -
Write per-platform captions (short for X/Bluesky, longer for LinkedIn).
-
Upload media to public storage or use Fuxux upload from the web app → copy
url. -
POST /api/postswithcaptions+media_urls— publish now or setscheduled_at. -
Move posted assets to
content/posted/to avoid duplicates. -
After scheduled time,
GET /api/posts?status=publishedorget_dashboardto confirm delivery. -
Review
GET /api/analytics?days=30for volume and success rate trends.
Tips
- List accounts first — intersect
captionskeys with connected platforms, and skip any account withneeds_reconnect: true(tell the user to reconnect it in Settings → Accounts instead of trying to publish to it). - Stagger schedules across the day (e.g. 9:00 and 15:00 UTC) for better reach.
- Batch schedule with future
scheduled_atvalues; Fuxux publishes automatically at the scheduled time. - Draft mode (
draft: true) for human review before going live. - MCP
create_postmirrors REST — use it from OpenClaw for fewer raw HTTP calls. - 429 / rate limits: respect
Retry-After; avoid burst posting. - AI captions:
POST /api/ai/generateworks withfx_live_API keys and enforces a monthly quota by plan — for unauthenticated one-off copy ideas outside a Fuxux account, the public tools (/api/tools/tiktok-caption,/api/tools/youtube-tags) are also an option.
API key coverage (today)
| Route | fx_live_ API key |
|---|---|
GET /api/settings/profile | ✅ |
GET /api/accounts | ✅ |
GET /api/dashboard | ✅ |
GET /api/posts | ✅ |
POST /api/posts | ✅ |
GET /api/analytics | ✅ |
POST /api/media/upload | ✅ |
DELETE /api/posts/{id} | ⚠️ Session-first |
POST /api/ai/generate | ✅ |
When a route returns 401 with an API key, tell the user to complete the action in the Fuxux web app or use MCP tools that wrap supported routes.
Safety
- Treat
FUXUX_API_KEYlike a password — rotate from Settings if leaked. - Confirm before mass posting or irreversible actions; dry-run with
list_posts+list_connected_accountsfirst. - Warn users that agents may read workspace files (including
.env) when following these instructions.
Install (ClawHub)
openclaw skills install fuxux-social-manager
Version
- Skill:
1.0.0(see frontmatter) - Compatible with: Fuxux production —
https://www.fuxux.com - MCP server:
fuxuxv1.0.0
相关技能
Use when a user wants social media scheduling and publishing for AI agents on X, LinkedIn, Instagram, Facebook Pages, TikTok, Discord, Telegram, YouTube, Red...
Creates content calendars, writes platform-specific posts, tracks analytics, and manages social media presence across Instagram, Twitter/X, LinkedIn, Faceboo...
通过 OpenTweet REST API 在 X 上发推、排程、发布线程与长文,并附带 AI 生成的图片与视频。
Create, schedule, and manage social media posts across Instagram, Facebook, X/Twitter, LinkedIn, and TikTok via the Social by InstantDM API and hosted MCP se...
OpenClaw guide for Twitter search, follower exports, monitoring, media, and approved X automation through Xquik. Not affiliated with X Corp.