Social-Media-API zum Posten & Antwortenfür KI-Agenten

Ein REST-Endpunkt-Set, um auf 18 Zielen zu veröffentlichen und jede DM, jeden Kommentar und jede Erwähnung aus einer einzigen Inbox zu beantworten. Auth per API-Key, Veröffentlichung über eine Queue mit Retries, signierte Webhooks — und kein OAuth pro Plattform, das du schreiben müsstest.

Base-URL https://api.so-me.studio/v1 · Auth X-API-Key · JSON rein, JSON raus

Zwei Aufgaben, ein Workspace

Die meisten Social-APIs hören beim Veröffentlichen auf. Ein Agent, der posten, aber nicht auf Antworten reagieren kann, ist nur ein halber Agent — deshalb liegt beides hinter demselben Key und arbeitet auf denselben verbundenen Konten.

Posten

Mit einem Aufruf überall veröffentlichen

Erstelle einen Post einmal, richte ihn an jedes verbundene Ziel und überlass der Queue die Formatierung pro Plattform, den Medien-Upload, Rate-Limits und Retries. Dein Agent fasst nie ein Plattform-SDK an.

  • POST /v1/posts
  • POST /v1/posts/:id/schedule
  • POST /v1/posts/:id/retry
  • POST /v1/media/presign-upload
  • POST /v1/drafts/:id/convert
Messaging

Jede Konversation lesen und beantworten

DMs, Kommentare und Erwähnungen aus allen verbundenen Konten landen in einer vereinheitlichten Inbox. Thread abrufen, Antwort senden, als erledigt markieren — alles über schlichtes JSON, alles im selben Workspace wie deine Posts.

  • GET /v1/inbox/conversations
  • GET /v1/inbox/conversations/:id/messages
  • POST /v1/inbox/conversations/:id/reply
  • POST /v1/whatsapp/templates/send
  • GET /v1/inbox/saved-replies

So sehen die Aufrufe aus

Kein SDK nötig. Drei Requests decken die Schleife ab, die ein Agent den ganzen Tag dreht: veröffentlichen, zuhören, antworten.

Einen Post planen
curl -X POST \
  https://api.so-me.studio/v1/posts \
  -H "X-API-Key: $SOME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Ship day 🚀",
    "socialMedia": "LINKEDIN",
    "postType": "TEXT",
    "scheduledAt":
      "2026-08-04T09:00:00Z"
  }'
Auf eine DM antworten
const { data } = await api(
  '/v1/inbox/conversations'
);

for (const c of data) {
  const reply = await agent.answer(c);

  await api(
    `/v1/inbox/conversations/${c.id}`
      + '/reply',
    { method: 'POST',
      body: { message: reply } }
  );
}
Auf das Ergebnis hören
await fetch(
  BASE + '/v1/webhooks/subscriptions',
  {
    method: 'POST',
    headers: {
      'X-API-Key': KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      url: 'https://my-agent.dev/hook',
      events: [
        'post.published',
        'post.failed'
      ]
    })
  }
);

Das ganze Produkt als Endpunkte

Alles, was du im Dashboard tun kannst, hat eine Route. Nichts ist der UI vorbehalten.

Posts

/v1/posts

Posts erstellen, aktualisieren, planen, aus dem Zeitplan nehmen, in Massen löschen, erneut versuchen und neu einreichen. Kalender lesen und Kommentare pro Post verwalten.

Entwürfe

/v1/drafts

Angefangene Inhalte parken und einen Entwurf mit einem Aufruf in einen geplanten Post verwandeln.

Inbox

/v1/inbox

Konversationen auflisten, Nachrichten-Threads lesen, antworten, archivieren und gespeicherte Antworten über alle verbundenen Konten verwalten.

WhatsApp

/v1/whatsapp

Freigegebene Nachrichten-Templates erstellen und auflisten, Template-Medien hochladen und Template-Nachrichten an Kunden senden.

Medien

/v1/media

Presigned Uploads, Ordner, Suche, Umbenennen, Verschieben und Massenlöschung. Häng jedes hochgeladene Asset per ID an einen Post.

Analysen

/v1/analytics

Kennzahlen pro Konto und pro Post, dazu plattformeigene Aufschlüsselungen für Facebook, Instagram, LinkedIn, YouTube, X und WhatsApp.

KI

/v1/ai

Captions, Bilder und UGC-Videos aus deinem Agenten generieren und das Ergebnis direkt in einen Post übernehmen.

Freigaben

/v1/approvals

Alles auflisten, was auf Review wartet, und es freigeben oder ablehnen — so entwirft ein Agent, während ein Mensch weiterhin abnimmt.

Konten

/v1/accounts

Verbundene Social-Konten und ihre IDs auflisten — die Kennungen, auf die jeder Post und jede Konversation verweist.

Webhooks

/v1/webhooks

Subscriptions verwalten, Zustellungen erneut abspielen, Test-Payloads senden und den vollständigen Event-Katalog durchsehen.

Bio-Links

/v1/biolinks

Link-in-Bio-Seiten programmatisch bauen — Buttons, eingebettete Posts, Themes, Veröffentlichung und Klick-Analysen.

Teams & Einstellungen

/v1/teams · /v1/settings

Mitglieder einladen, Rollen setzen, API-Keys rotieren, Workspaces wechseln und den aktuellen Verbrauch deines Plans auslesen.

Vollständige Request- und Response-Schemas — plus die OpenAPI-Spec — findest du in der API-Referenz.

Was sie erreicht

Verbinde ein Konto einmal im Dashboard — die API erbt es überall.

Veröffentlichen

18 Ziele

Twitter/X, Instagram, LinkedIn (persönlich und Page), Facebook, TikTok, YouTube, Threads, Pinterest, Bluesky, Mastodon, Reddit, Google Business Profile, WordPress, Dev.to, Dribbble, Discord und Slack — alles aus einem einzigen POST /v1/posts. WhatsApp versendet stattdessen über freigegebene Templates.

Nachrichten

Vereinheitlichte Inbox

Echtzeit-Webhook-Ingestion für Facebook, Instagram, WhatsApp und Twitter/X, dazu gepollte Threads für Bluesky, Mastodon, Reddit, Telegram, Discord und Slack. Ein Konversationsmodell für alle.

Verbinden

20 Plattformen

OAuth erledigst du einmal im Dashboard. Die API liest die daraus entstehenden Account-IDs — du speicherst, erneuerst oder rotierst nie selbst ein Plattform-Token.

Gebaut für einen Aufrufer, der nie schläft

Ein Agent versucht es erneut, läuft parallel und liest Fehler-Bodies wörtlich. Genau darauf ist die API zugeschnitten.

Ein Key für drei Oberflächen

Derselbe X-API-Key funktioniert für die REST-API, die per npm installierte CLI und den MCP-Server. Einmal unter Einstellungen → API-Schlüssel ausstellen; dein Agent sieht nie ein OAuth-Token einer Plattform.

Veröffentlichen läuft über eine Queue, nicht nach Fire-and-forget

Ein Erstellen-Aufruf kehrt sofort zurück, der Post wandert in eine Worker-Queue, die die Rate-Limits jeder Plattform kennt und automatisch neu versucht. Fehlschläge lassen sich mit POST /v1/posts/:id/retry erneut anstoßen.

Über 150 signierte Events

Abonniere post.published, post.failed, Inbox-Nachrichten-Events, Freigabe-Entscheidungen, getrennte Konten und mehr. Payloads sind mit HMAC-SHA256 signiert, damit dein Agent ihnen vertrauen kann.

Von Haus aus auf den Workspace beschränkt

Jeder Key ist an genau einen Workspace gebunden. Nutzt du einen Key pro Kunde, kann ein Agent schlicht nicht in die Konten eines anderen Mandanten lesen oder posten.

Dokumentierte, durchgesetzte Rate-Limits

Kontingente pro Minute und pro Monat sind je Plan dokumentiert und kommen als sauberer 429 zurück — kein stilles Drosseln, das eine Retry-Schleife falsch deutet.

Nicht nur REST

Lieber Tools als Endpunkte? Derselbe Workspace steht als über 200 MCP-Tools bereit und als CLI, die JSON ausgibt und echte Exit-Codes zurückliefert.

Limits, offen genannt

Die API schaltet sich mit Team frei. Wer ein Kontingent überschreitet, bekommt einen 429 — nie ein stilles Verschlucken.

PlanAPI-AufrufeRate-LimitWebhook-Zustellungen
Free & SoloKein API-Zugriff
Team10.000 Aufrufe / Monat60 Aufrufe / Min.25.000 Zustellungen / Monat
ScaleUnbegrenzt300 Aufrufe / Min.Unbegrenzt

Aktuelle Planpreise findest du unter Preise, oder schau in die Agenten-Übersicht, wenn du lieber MCP-Tools als rohe Endpunkte nutzt.

Der erste Aufruf in drei Schritten

Kein Vertriebsgespräch, kein Sandbox-Antrag, kein Entwicklerkonto pro Plattform.

1

Konten verbinden

Registriere dich und verbinde eines der 20 Ziele im Dashboard. OAuth, Token-Refresh und Re-Auth-Aufforderungen übernehmen wir ab hier für dich.

2

API-Key generieren

Einstellungen → API-Schlüssel. Sende ihn als X-API-Key. Ein Key pro Workspace hält Kunden getrennt; derselbe Key treibt auch CLI und MCP-Server an.

3

Posten, dann zuhören

POST /v1/posts zum Veröffentlichen oder Planen, post.published und post.failed abonnieren und GET /v1/inbox/conversations lesen, um mit dem Antworten zu beginnen.

Zwei Dinge, mit einem Key. Posten: Inhalte über 18 Ziele erstellen, planen, veröffentlichen, erneut versuchen und löschen — mit Presigned Media-Uploads und KI-Caption- und -Bildgenerierung im selben Workspace. Messaging: Konversationen aus der vereinheitlichten Inbox auflisten, einen Thread lesen, auf DMs und Kommentare antworten und freigegebene WhatsApp-Templates senden. Drumherum liegen Analysen, Freigaben, Bio-Links, Teams, Vorlagen und Webhooks — alles unter https://api.so-me.studio/v1.

Generiere einen Key unter Einstellungen → API-Schlüssel und sende ihn bei jedem Request als Header X-API-Key. Keys gelten immer für genau einen Workspace — ein Key pro Kunde hält Agenten also sauber voneinander getrennt. Derselbe Key authentifiziert die CLI (npm i -g @social-media-scheduler/cli) und den MCP-Server.

Nein. Du verbindest Konten einmal im Dashboard, die Plattform-Tokens bleiben verschlüsselt bei uns. GET /v1/accounts liefert die Account-IDs, auf die du beim Posten oder Antworten verweist. Token-Refresh, Re-Auth-Aufforderungen und Plattform-Eigenheiten sind unser Job, nicht deiner.

Ja. GET /v1/inbox/conversations listet Threads über alle verbundenen Konten, GET /v1/inbox/conversations/:id/messages liefert den Nachrichtenverlauf als Kontext, und POST /v1/inbox/conversations/:id/reply verschickt die Antwort. Facebook, Instagram, WhatsApp und Twitter/X kommen über Echtzeit-Webhooks; Bluesky, Mastodon, Reddit, Telegram, Discord und Slack werden in dasselbe Konversationsmodell gezogen.

WhatsApp läuft template-basiert statt frei formuliert: POST /v1/whatsapp/templates legt ein Template zur Freigabe an, POST /v1/whatsapp/templates/upload-media hängt Header-Medien an und POST /v1/whatsapp/templates/send stellt es zu. Eingehende WhatsApp-Nachrichten landen in derselben vereinheitlichten Inbox wie alles andere.

Nein, und das ist Absicht. POST /v1/posts antwortet, sobald der Post angenommen ist; die Veröffentlichung läuft über eine Queue, die die Rate-Limits jeder Plattform kennt und automatisch neu versucht. Beobachte die Webhooks post.published und post.failed — oder polle GET /v1/posts/:id —, statt einen Request-Thread wegen einer Plattform zu blockieren, die gerade einen schlechten Nachmittag hat.

Über 150 — rund um Posts, Entwürfe, Repurposing, Freigaben, die Inbox, Medien, Konten, Abrechnung und Teams: post.published, post.failed, post.approval.requested, getrennte Konten und mehr. Verwalte Subscriptions mit POST /v1/webhooks/subscriptions, löse eine Testzustellung aus, spiele eine fehlgeschlagene erneut ab und prüfe beim Empfang die HMAC-SHA256-Signatur.

Die API gibt es ab dem Team-Plan; Free und Solo haben keinen API-Zugriff. Team enthält 10.000 Aufrufe/Monat bei 60 Aufrufen/Min. plus 25.000 Webhook-Zustellungen/Monat. Scale hebt die Monatsgrenzen auf und zieht die Obergrenze auf 300 Aufrufe/Min. Wer ein Limit überschreitet, bekommt 429 Too Many Requests.

Derselbe Workspace, drei Formen. Nutze REST aus jedem Backend oder Framework (LangChain, CrewAI, AutoGen, Vertex AI, ein simpler Cron-Worker). Nutze die CLI in Shells, CI und geplanten Jobs. Nutze den MCP-Server, wenn der Agent über 200 typisierte Tools selbst entdecken soll — das ist der Weg für Claude, Cursor und Windsurf.

Unter docs.so-me.studio, inklusive OpenAPI-Spec, mit der du dir in jeder Sprache einen typisierten Client generieren kannst. Diese Seite ist die Übersicht; die Referenz enthält Request- und Response-Schemas für jede Route.

Einmal planen.
Überall posten.

Schluss mit dem Tab-Chaos — entwirf, passe an und veröffentliche auf 20 Plattformen aus einem einzigen Kalender.