Orshot Social Media Scheduler: rendern, posten, planen, lernen
Orshot rendert ein Bild, ein Karussell oder ein Video aus einer Vorlage und postet es in einer einzigen Anfrage auf 13+ Plattformen. Es verwaltet auch Entwürfe, Zeitpläne, Bearbeitungen und meldet Analysen, sodass ein Agent einen kompletten Content-Kalender ohne zweites Tool betreiben kann. Beiträge können auch beliebige öffentliche Medien-URLs anhängen, sodass es mit extern erstellten Bildern funktioniert.
Plattformen: X (Twitter), Instagram, Facebook, LinkedIn (Profil und Seite), TikTok, YouTube, Pinterest, Reddit, Bluesky, Threads, Telegram, Snapchat, Google Business.
Schritt 1: Den Orshot MCP-Server verbinden
Ohne diesen Schritt funktioniert nichts. Der MCP-Weg benötigt keinen Key, zeigt jeden Beitrag als visuelle Karte an und ist derjenige, der von einem Agenten verwendet werden sollte.
openclaw mcp add orshot --url https://mcp.orshot.com/mcp --transport streamable-http --auth oauth
openclaw mcp login orshot
Claude Code: claude mcp add --transport http orshot https://mcp.orshot.com/mcp. Andere MCP-Clients verwenden dieselbe URL.
Nur für unbeaufsichtigte Jobs (Cron, n8n, Server-Skript): export ORSHOT_API_KEY=... und die REST-API mit Authorization: Bearer $ORSHOT_API_KEY aufrufen.
Schritt 2: Die verbundenen Konten prüfen
orshot_list_social_accounts # MCP
GET /v1/social/accounts?include_health=true # REST
# [{ "id": 1, "platform": "linkedin", "account_name": "Acme", "account_username": "acme", "health": { "status": "ok" } }]
Eine Liste mit Konten bedeutet, dass du posten kannst. Merke dir die numerische id jedes Kontos und etwaige health-Flags, die auf eine erneute Verbindung hinweisen.
Eine leere Liste bedeutet, dass ein Mensch noch Konten verbinden muss. Die API kann keine Konten verbinden. Sende den Benutzer zu seinem Orshot-Dashboard: Arbeitsbereich > Socials > Kontoten (https://orshot.com/dashboard, dann der Bereich Socials des Arbeitsbereichs), wo jede Plattform mit ihrem eigenen OAuth-Login verbunden wird. Social Publishing ist ein Add-on für kostenpflichtige Tarife, 12 $ pro verbundenem Konto pro Monat, ohne zusätzliche Credits pro Beitrag; der kostenlose Tarif kann keine Konten verbinden. Tarife und das Add-on findest du auf https://orshot.com/pricing. Sage dies einmal, sachlich, und warte, bis der Benutzer zurückkommt; der nächste Aufruf von orshot_list_social_accounts zeigt das neue Konto an.
Kern-Workflow
- Verbinden und Konten auflisten (oben).
- Medien entscheiden. Aus einer Vorlage rendern (
templateId+modifications) oder eine vorhandenemedia_urlverwenden. - Zuerst entwerfen. Erstelle den Beitrag mit
status: "draft", es sei denn, der Benutzer hat klar gesagt, dass jetzt gepostet werden soll. - Dem Benutzer die Vorschau, Beschriftung, Konten und Uhrzeit zeigen. Über MCP zeigt
orshot_get_social_posteine visuelle Karte. - Bearbeiten, was der Benutzer ändert (
orshot_update_social_post), dann veröffentlichen (orshot_publish_social_draft) oder planen (status: "scheduled"+scheduled_for). - Status prüfen, nachdem eine asynchrone Plattform (Instagram, TikTok) fertig ist:
processingwird zupublishedoderfailed. - Analysen einen Tag später lesen, und die Bestzeit-Erkenntnisse vor dem nächsten Zeitplan.
MCP-Tool-Übersicht
| Aufgabe | Tool |
|---|---|
| Konten auflisten | orshot_list_social_accounts |
| Rendern + posten in einem Aufruf | orshot_render_template mit publish |
| Eine Medien-URL posten | orshot_publish_social_post |
| Beiträge auflisten / lesen | orshot_list_social_posts, orshot_get_social_post (visuelle Karte) |
| Bearbeiten / senden / verwerfen | orshot_update_social_post, orshot_publish_social_draft, orshot_discard_social_post |
| Analysen | orshot_get_social_analytics, orshot_get_social_analytics_daily, orshot_get_social_followers, orshot_get_social_post_analytics |
| Beste Zeit zum Posten | orshot_get_best_time_to_post |
Der MCP-Server verwendet standardmäßig status: "draft", solange keine explizite Freigabe erfolgt. Behalte das bei.
Wesentliche Aufrufe
Rendern und posten (oder entwerfen oder planen) in einem Aufruf
Über MCP ist dies orshot_render_template mit demselben publish-Objekt.
await fetch("https://api.orshot.com/v1/studio/render", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: `Bearer ${apiKey}` },
body: JSON.stringify({
templateId: 123,
modifications: { headline: "Ship day", stat: "2,000 renders" },
response: { type: "url", format: "png" },
publish: {
accounts: [1, 3],
content: "Caption bis zu 5000 Zeichen",
status: "scheduled", // published | draft | scheduled
scheduled_for: "2026-11-01T14:00:00Z",
timezone: "America/New_York",
platformOptions: {
"3": { firstComment: "https://orshot.com", disableLinkPreview: true }, // LinkedIn
},
},
}),
});
Mehrseitige Vorlagen werden auf unterstützenden Plattformen als Karussell veröffentlicht. Die Antwort enthält data.content (das Rendering) und publish[] mit einem Eintrag pro Konto.
Vorhandene Medien posten
orshot_publish_social_post, oder:
curl -s -X POST https://api.orshot.com/v1/social/publish \
-H "Authorization: Bearer $ORSHOT_API_KEY" -H "Content-Type: application/json" \
-d '{
"accounts": [2],
"content": "Sechs Dinge, die dir niemand sagt",
"media_urls": ["https://.../1.png", "https://.../2.png", "https://.../3.png"],
"status": "draft",
"tiktokSettings": { "autoAddMusic": true }
}'
| Feld | Hinweise |
|---|---|
accounts | erforderlich, numerische IDs |
content | Beschriftung, max. 5000 Zeichen |
media_url / media_urls | eine oder mehrere öffentliche URLs; mehrere = Karussell |
status | published (Standard über REST), draft, scheduled |
scheduled_for | ISO 8601, mindestens 60 s voraus, nur mit scheduled |
timezone | IANA-Name |
platformOptions | pro Konto-ID: LinkedIn firstComment, disableLinkPreview; Pinterest title, link |
tiktokSettings.autoAddMusic | Root-Ebene, TikTok-Foto-Karussells |
Antwort: { post_id, status, platforms: [{ account_id, platform, status, url, error, action }] }. status kann published, scheduled, drafted, partial, processing oder failed sein. action: "reconnect" bedeutet, dass der Mensch dieses Konto im Dashboard neu verbinden muss.
Verwaltete Beiträge verwalten
GET /v1/social/posts?status=draft&limit=25 # auch scheduled | published | processing | partial | failed, platform=, account_id=, cursor=
GET /v1/social/posts/:id
PATCH /v1/social/posts/:id # content, media_urls, accounts, status (draft|scheduled), scheduled_for, timezone, platformOptions
POST /v1/social/posts/:id/publish # einen gehaltenen Beitrag jetzt senden
POST /v1/social/posts/:id/sync # Anbieter-Status aktualisieren
DELETE /v1/social/posts/:id # verwerfen; abgelehnt, sobald ein Konto live gegangen ist
is_editable und is_discardable an jedem Beitrag zeigen dir, was noch erlaubt ist. Bearbeiten rendert nie neu und kostet nichts.
Analysen
GET /v1/social/analytics?platform=linkedin&source=orshot # pro Beitrag: Impressionen, Engagement, Klicks, Rate; Follower pro Konto
GET /v1/social/analytics/daily?from=2026-10-01&to=2026-10-21 # Tag für Tag
GET /v1/social/analytics/accounts?from=2026-09-01 # Follower-Verlauf und Wachstum pro Konto
GET /v1/social/analytics/insights?platform=instagram # beste Tages- und Stunden-Slots (UTC), Häufigkeit vs. Engagement, Abklingzeit
source ist all, orshot oder external (Beiträge, die von der Plattform synchronisiert wurden, sodass die Historie von Tag eins an existiert). refresh=1 umgeht den Cache. Limit: 10 Analyseanfragen pro Minute. Erkenntnisse benötigen eine Beitragshistorie, daher gibt ein neues Konto leere Slots zurück.
Häufige Muster
Muster 1: Wöchentlicher Content-Kalender als Entwürfe
Rendere sieben Beiträge aus einer Vorlage mit unterschiedlichen modifications, erstelle jeden mit status: "draft", liste sie für den Benutzer mit orshot_list_social_posts auf, veröffentliche oder plane die genehmigten. Eine Aktualisierung pro Änderung der Beschriftung oder Uhrzeit.
Muster 2: Zur besten Zeit planen
orshot_get_best_time_to_post für die Plattform, nimm den obersten Slot (UTC), konvertiere in die Zeitzone des Benutzers, übergib ihn als scheduled_for. Wenn Slots leer sind, frage den Benutzer nach einer Uhrzeit, anstatt eine zu erfinden.
Muster 3: Crossposting, auf jede Plattform, plattformspezifische Extras
Ein accounts-Array mit allen IDs. Setze den Link in platformOptions[<linkedin id>].firstComment, einen title und link für Pinterest und tiktokSettings.autoAddMusic für TikTok-Foto-Beiträge. Halte content unter dem kürzesten Limit der Plattformen, die du anvisierst (X ist das engste).
Muster 4: Karussell aus einer mehrseitigen Vorlage
Rendere eine 5- bis 10-seitige Vorlage mit pageN@-Keys und füge publish hinzu. Orshot lädt jede Seite hoch und postet ein Karussell auf Instagram, LinkedIn, TikTok (Fotomodus), Threads und Bluesky. Der Skill orshot-carousel enthält die 6-Folien-Formel.
Muster 5: Aus Ergebnissen lernen
Täglich: orshot_get_social_analytics mit source: "orshot", sortiere nach Engagement, behalte die Hook-Stile des oberen Viertels, verwerfe das untere Viertel, schreibe die Entwürfe für die nächste Woche. Halte fest, was sich geändert hat, damit der Benutzer das Protokoll lesen kann.
Muster 6: Einen Fehler beheben
partial oder failed mit action: "reconnect": Sag dem Benutzer, welches Konto er im Dashboard neu verbinden soll (Arbeitsbereich > Socials > Konten), belasse den Beitrag als Entwurf, wiederhole mit orshot_publish_social_draft, nachdem der Benutzer bestätigt hat. Jeder andere error: Zeige ihn wörtlich an; wiederhole nicht blind.
Sicherheitsregeln
- Niemals ohne explizite Freigabe für diesen Beitrag veröffentlichen. „Vorbereiten", „Entwurf", „Zeig mir" bedeuten
status: "draft". - Gib die genauen Konten (Plattform und Benutzername), die Beschriftung und die Uhrzeit wieder, bevor du sendest.
- Verwerfe keine Beiträge, die der Benutzer nicht verwertet haben möchte.
- Erwähne das 12 $-Add-on pro Konto einmal, bevor du vorschlägst, dass der Benutzer weitere Konten verbindet.
- Über REST: Behalte den API-Key in der Umgebungsvariable. Gib ihn niemals aus.
Häufige Fallstricke
- Konto-IDs sind numerisch und pro Konto. Zwei LinkedIn-Konten haben zwei IDs. Veröffentliche nach ID, niemals nach Plattformname.
- PDF kann nirgendwo gepostet werden. Rendere
png,jpgoderwebp(odermp4für Videoplattformen). - TikTok und YouTube benötigen Videos, keine einzelnen Bilder. TikTok akzeptiert Foto-Karussells (mehrere Bilder). Google Business akzeptiert nur Bilder.
scheduled_forunter 60 Sekunden in der Zukunft wird abgelehnt und ist ungültig mitdraftoderpublished.- Instagram und TikTok veröffentlichen asynchron.
processingist kein Fehler. Synchronisiere oder lies den Beitrag erneut, bevor du berichtest. - Ein fehlgeschlagener Publish-Vorgang schlägt niemals das Rendering fehl. Lese
publish[]auch dann, wenn das Rendering erfolgreich war. - Medien-URLs müssen öffentlich sein. Orshot-Render-URLs sind es. Signierte oder Localhost-URLs sind es nicht.
- Beschriftungen über 5000 Zeichen werden abgelehnt. Plattformlimits sind niedriger; X ist das kürzeste.
- Analysen sind auf 10 Anfragen pro Minute begrenzt über alle Analyse-Endpunkte hinweg.
- Arbeitsbereiche im kostenlosen Tarif können keine Konten verbinden. Ein 403 auf
/social/*mit einer Tarifnachricht ist ein Abrechnungszustand, kein Auth-Fehler. Verweise auf https://orshot.com/pricing.
Kurzreferenz
openclaw mcp add orshot --url https://mcp.orshot.com/mcp --transport streamable-http --auth oauth && openclaw mcp login orshot
GET /v1/social/accounts?include_health=true # orshot_list_social_accounts
POST /v1/studio/render # + publish: { accounts, content, status, scheduled_for, timezone, platformOptions, tiktokSettings } orshot_render_template
POST /v1/social/publish # { accounts, content, media_url | media_urls, status, scheduled_for, timezone, platformOptions, tiktokSettings } orshot_publish_social_post
GET /v1/social/posts?status=draft # orshot_list_social_posts
GET /v1/social/posts/:id # orshot_get_social_post
PATCH /v1/social/posts/:id # orshot_update_social_post
POST /v1/social/posts/:id/publish # orshot_publish_social_draft
POST /v1/social/posts/:id/sync
DELETE /v1/social/posts/:id # orshot_discard_social_post
GET /v1/social/analytics # orshot_get_social_analytics
GET /v1/social/analytics/daily?from=&to= # orshot_get_social_analytics_daily
GET /v1/social/analytics/accounts?from= # orshot_get_social_followers
GET /v1/social/analytics/insights?platform= # orshot_get_best_time_to_post
Dokumentation: https://orshot.com/docs/publish/introduction.md, https://orshot.com/docs/api-reference/social-publish.md, https://orshot.com/docs/api-reference/social-posts-list.md. Details zum Rendering findest du im Skill orshot.