Zum Hauptinhalt springen

API-Referenz

Alles, was die Dashboards tun, können Ihre eigenen Systeme auch. Es ist dieselbe API, auf der das Produkt aufgebaut ist: Es gibt keine zweite, geringere API für Kunden.

Daten treffen ein, die Vorlage wird gefüllt und geprüft, der Clip wird in Ihrer Marke und in jedem Bildformat gerendert, und er wird übergeben, wenn der Beitrag fällig ist

  • Basis-URL: https://app.reelwire.io. Die Beispiele in diesem Handbuch wurden gegen eine Entwicklungskopie unter http://localhost:4000 ausgeführt; die Pfade sind dieselben, nur der Host ist ein anderer.
  • Authentifizierung: ein Bearer-Token bei jeder Anfrage. Siehe Authentifizierung.
  • Limits: Jede Anfrage mit einem Schlüssel oder einer Sitzung zählt gegen diese eine Zugangsberechtigung, 600 pro Minute, egal welche Route sie aufruft, und einige Routen, darunter die Anmeldung, haben ein engeres eigenes Limit. Ein 429 sagt, wie lange zu warten ist. Siehe Ratenlimits.
  • Format: JSON hinein, JSON heraus, UTF-8. Fehlschläge sind Problem-Umschläge.
  • Versionierung: Jeder Pfad liegt unter /v1/.
  • Anfrage-ID: Jede Antwort trägt x-request-id. Protokollieren Sie sie. Senden Sie Ihre eigene ULID in diesem Header, und Reelwire verwendet sie, sodass Ihre Logs und unsere eine ID teilen.

Ihre erste Anfrage​

Wer bin ich: der eine Aufruf, den jeder Schlüssel machen darf, was auch immer seine Berechtigungen sind.

curl http://localhost:4000/v1/whoami \
-H "Authorization: Bearer rw_your_key_here"
{
"accountId": "01M1VFRWE3A35H892VAAEKKDA6",
"accountName": "Enterprise 2",
"scopes": ["ingest:write", "posts:read", "media:write"],
"permissions": [
{ "scope": "ingest:write", "label": "Custom feeds - Send raw data: write" },
{ "scope": "posts:read", "label": "Posts: read" },
{ "scope": "media:write", "label": "Media: write" }
],
"kind": "apikey",
"resource": null
}

permissions nennt, was der Schlüssel darf, in den Worten, die die Schlüsselauswahl und jede Ablehnung verwenden. Welche Version von Reelwire geantwortet hat, sagt GET /v1/version, das keinen Schlüssel braucht.

Ein Ereignis senden​

Die häufigste Integration. Ihr System spielt etwas ein, das passiert ist; Reelwire rendert es zu einem Clip für jeden Kanal, der diesen Stream abonniert hat, und übergibt jeden Beitrag auf den Wegen, die sein Kanal eingeschaltet hat: per E-Mail, per Webhook oder über den Plattform-Connector des Kanals, der ihn selbst veröffentlicht.

curl http://localhost:4000/v1/stream \
-H "Authorization: Bearer rw_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"streamId": "st_30472168d941",
"eventId": "01M2SQMKK3G1NVFXV31DCBVB92",
"occurredAt": "2026-09-18T07:55:00Z",
"locale": "en",
"data": {
"clipData": {
"headline": "Bund yields close at a three-week high",
"subline": "The ten-year settled at 2.41 per cent"
},
"metaData": { "title": "Bund yields close at a three-week high" }
}
}'

Vier Dinge zu diesem Text:

  • eventId ist eine ULID und der Idempotenzschlüssel. Dasselbe zweimal zu senden erzeugt keinen zweiten Beitrag, und das macht einen Wiederholungsversuch sicher.
  • Was in data steht, ist das, was die Vorlage des Streams annimmt, veröffentlicht als Schema unter /v1/formats/template/{templateId}. Senden Sie diese Form, und es wird gerendert; senden Sie etwas anderes, und Sie erhalten eine Ablehnung, die das Feld nennt. Ein Stream mit einer Feldzuordnung nimmt stattdessen Ihre eigene Form und ordnet sie der der Vorlage zu.
  • occurredAt ist der Zeitpunkt, an dem die Tatsache eintrat, nicht der, an dem Sie sie gesendet haben.
  • Ein Bild ist eine Datei aus Ihrer Mediathek, geschrieben als media:// mit ihrer ID oder ihrem Namen. Eine Webadresse wird abgelehnt.

Bevor Sie etwas Echtes senden, nimmt POST /v1/stream/validate denselben Text und antwortet, ob es funktioniert hätte, ohne etwas zu erstellen.

Das ganze durchgespielte Beispiel mit den echten Antworten steht unter Ereignisse senden.

Wie es weitergeht​

Wenn SieLesen Sie
Daten von einem Produzenten einspielenEreignisse senden, dann Streams und Feeds
Fertige Beiträge empfangen und zurückmelden, was aus ihnen wurdeWebhooks
Ihre Beiträge an Ihre eigenen Teilnehmer weitergeben (Enterprise)Syndikation
Kollegen verwalten oder den Tarif lesenTeam und Tarif
Beobachten, was geschah, und ein Update, ein erneutes Senden oder ein Löschen anfordernBeiträge und Aufträge
Für ein Audit nachweisen, was hinausging und wer es freigegeben hat (Enterprise)Compliance
Jeden Kanal auf einmal oder für einen geplanten Zeitraum anhaltenKanäle: Alles stoppen
Beiträge planen, die jemand geschrieben hatBeitragslisten
Einen Workspace maschinell einrichtenMarken, Kanäle, Mediathek
Bilder, Videos, Musik, Schriften oder Texte mit KI erstellenKI-Assistent
Einen Clip für sich rendernRenders und direkter Export
Einen Client erzeugenVorlagen und Formate
Eine einzelne Route suchenJeder Endpunkt
Wählen, was ein Schlüssel darfBerechtigungen
Einen Schlüssel erstellen, einen erneut anzeigen oder ein Ratenlimit prüfenAuthentifizierung
Mit einer Ablehnung umgehenFehler
Eine lange Liste Seite für Seite lesenListen und Paginierung

Zwei Konventionen, die man vorab kennen sollte​

Eine Änderung ist ein POST auf ein Verb, kein DELETE. Eine Marke zu entfernen ist POST /v1/brands/{id}/delete. So bleibt jede Aktion über ein Berechtigungspräfix adressierbar, und Texte bleiben bei Aktionen verfügbar, die einen brauchen, etwa das moveTo, das das Löschen einer Marke nimmt.

Listen gibt es in zwei Arten. Protokolle werden vom Server paginiert; Konfiguration kommt vollständig zurück. Siehe Listen und Paginierung.