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.

- Basis-URL:
https://app.reelwire.io. Die Beispiele in diesem Handbuch wurden gegen eine Entwicklungskopie unterhttp://localhost:4000ausgefü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
429sagt, 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:
eventIdist eine ULID und der Idempotenzschlüssel. Dasselbe zweimal zu senden erzeugt keinen zweiten Beitrag, und das macht einen Wiederholungsversuch sicher.- Was in
datasteht, 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. occurredAtist 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 Sie | Lesen Sie |
|---|---|
| Daten von einem Produzenten einspielen | Ereignisse senden, dann Streams und Feeds |
| Fertige Beiträge empfangen und zurückmelden, was aus ihnen wurde | Webhooks |
| Ihre Beiträge an Ihre eigenen Teilnehmer weitergeben (Enterprise) | Syndikation |
| Kollegen verwalten oder den Tarif lesen | Team und Tarif |
| Beobachten, was geschah, und ein Update, ein erneutes Senden oder ein Löschen anfordern | Beiträ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 anhalten | Kanäle: Alles stoppen |
| Beiträge planen, die jemand geschrieben hat | Beitragslisten |
| Einen Workspace maschinell einrichten | Marken, Kanäle, Mediathek |
| Bilder, Videos, Musik, Schriften oder Texte mit KI erstellen | KI-Assistent |
| Einen Clip für sich rendern | Renders und direkter Export |
| Einen Client erzeugen | Vorlagen und Formate |
| Eine einzelne Route suchen | Jeder Endpunkt |
| Wählen, was ein Schlüssel darf | Berechtigungen |
| Einen Schlüssel erstellen, einen erneut anzeigen oder ein Ratenlimit prüfen | Authentifizierung |
| Mit einer Ablehnung umgehen | Fehler |
| Eine lange Liste Seite für Seite lesen | Listen 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.