Schnellstart mit der Feedivo-API
Auf dieser Seite
Mit der versionierten JSON-API bindest du gefilterte Feedivo-Feeds in eigene Anwendungen und serverseitige Websites ein. Der API-Zugriff ist ab dem Pro-Tarif verfügbar.
Der Weg zum ersten Ergebnis#
- API-Verknüpfung erstellen und Feed-Umfang festlegen.
- Das einmal angezeigte Token sicher speichern.
- Einen Feed mit Bearer-Authentifizierung abrufen.
- Für regelmäßige Abrufe ETag und
updated_sinceverwenden.
API-Token erzeugen#

Unter Verknüpfungen → Individuell legst du eine API-Verknüpfung an und bestimmst, welche Feeds sie sehen darf. Das Token wird einmal angezeigt.
Vorsicht
Geht das Token verloren, lässt es sich nicht wiederherstellen. Erzeuge in diesem Fall ein neues und ersetze das alte in deiner Anwendung.
Einen Feed abrufen#
curl -H "Authorization: Bearer $FEEDIVO_TOKEN" \
"https://feedivo.de/api/v1/feeds/DEINE-FEED-UUID/posts?limit=25"
$ch = curl_init('https://feedivo.de/api/v1/feeds/DEINE-FEED-UUID/posts?limit=25');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('FEEDIVO_TOKEN')],
]);
$response = json_decode(curl_exec($ch), true);
const res = await fetch(
'https://feedivo.de/api/v1/feeds/DEINE-FEED-UUID/posts?limit=25',
{ headers: { Authorization: `Bearer ${process.env.FEEDIVO_TOKEN}` } }
);
const { data, meta } = await res.json();
Einheitliche Antwortstruktur#
Jede Antwort hat dieselben drei Schlüssel:
{
"data": [ /* das Ergebnis */ ],
"meta": { /* Feed-Angaben, Paginierung */ },
"errors": [ /* leer, wenn alles gut ging */ ]
}
Das gilt auch im Fehlerfall; du kannst also immer gleich auswerten. meta ist
null, wo es nichts zu sagen gibt — nie ein leeres Objekt.
Mit Cursor blättern#
Die Postsliste blättert über einen Cursor, nicht über Seitenzahlen:
"meta": { "pagination": { "next_cursor": "eyJ…", "count": 25 } }
Den Wert hängst du als cursor an den nächsten Aufruf. Ist next_cursor
null, war das die letzte Seite.
Hinweis
Warum kein ?page=2? Weil zwischen zwei Aufrufen neue Posts dazukommen
können. Mit Seitenzahlen würdest du dann Posts doppelt sehen oder
überspringen; der Cursor merkt sich die Position im Datenbestand.
Antworten effizient zwischenspeichern#
Antworten tragen ein ETag. Sende es beim nächsten Mal als If-None-Match mit:
curl -H "Authorization: Bearer $FEEDIVO_TOKEN" \
-H 'If-None-Match: "abc123"' \
"https://feedivo.de/api/v1/feeds/DEINE-FEED-UUID/posts"
Hat sich nichts geändert, antwortet die API mit 304 und ohne Rumpf. Für regelmäßige Abrufe ist das der schonendste Weg.
Der ETag gilt für genau diese Abfrage — Feed samt limit, cursor und
Zeitfiltern. Frag deshalb regelmäßig dieselbe erste Seite ab; ändert sich vorn
nichts, kostet der Abgleich fast nichts.
Nur das Neue holen#
Zwei Zeitfilter, die leicht zu verwechseln sind:
| Parameter | Filtert auf | Wofür |
|---|---|---|
since |
Veröffentlichungszeitpunkt | „Zeig mir den Sommer 2026" |
updated_since |
Zeitpunkt, zu dem Feedivo den Post erstmals gesehen hat | „Was ist seit meinem letzten Abgleich dazugekommen?" |
Für einen inkrementellen Abgleich ist fast immer updated_since die richtige
Wahl:
curl -H "Authorization: Bearer $FEEDIVO_TOKEN" \
"https://feedivo.de/api/v1/feeds/DEINE-FEED-UUID/posts?updated_since=2026-08-13T09:00:00%2B00:00"
Setze den Wert auf den Zeitpunkt deines letzten erfolgreichen Laufs.
Achtung
Mit since geht das nicht zuverlässig: Ein Post trifft bis zu ein
Abruf-Intervall später bei uns ein, als er veröffentlicht wurde. Wer since
exakt auf den letzten Abgleich setzt, verpasst deshalb Posts. Wenn du bei
since bleiben musst, überlappe großzügig — etwa zwei Tage.
Hinweis
Gelöschtes erkennt kein Zeitfilter. Ist ein Post beim Netzwerk verschwunden, verschwindet er auch bei uns — aber ein inkrementeller Abruf kann davon nicht berichten, er liefert ja nur Vorhandenes. Wer einen Feed spiegelt, braucht dafür in Abständen einen Vollabgleich (alle Seiten durchblättern) und entfernt lokal, was nicht mehr vorkam.
Mediendaten verarbeiten#
Jeder Eintrag in media trägt neben den Adressen auch width/height (bei
Videos die des Vorschaubilds — dasselbe Seitenverhältnis), mime, bytes und
cached:
{ "url": "…", "thumbnail_url": "…", "type": "image", "embed_url": null,
"width": 1080, "height": 1350, "mime": "image/jpeg", "bytes": 284913, "cached": true }
Mit den Maßen baust du dein Layout, bevor das erste Bild geladen ist — kein
Nachrücken. null heißt „nicht gemessen", nie „0".
Wichtig
cached: false heißt: Mindestens eine Adresse dieses Mediums zeigt noch auf
die ursprüngliche Plattform und kann zeitlich begrenzt sein. Ein Ladefehler
ist dort möglicherweise vorübergehend und kein Grund, den Post sofort zu
verwerfen. Bei cached: true stehen stabile Feedivo-Adressen bereit.
Fehler zuverlässig behandeln#
Jeder Fehler trägt einen stabilen code. Steuere deine Programmlogik über
diesen Code, nicht über den Meldungstext:
{ "data": null, "meta": null,
"errors": [{ "status": 403, "code": "entitlement_paused", "message": "…" }] }
code |
Status | Was zu tun ist |
|---|---|---|
invalid_token |
401 | Neues Token erzeugen. Wiederholen hilft nie |
entitlement_paused |
403 | Tarif prüfen. Ein neues Token hilft nicht |
feed_not_found |
404 | Feed-UUID und Umfang der Verknüpfung prüfen |
post_not_found |
404 | Der Feed liefert diesen Post nicht (mehr) |
invalid_parameter |
422 | Anfrage korrigieren; die Meldung nennt den Parameter |
rate_limited |
429 | Warten, Retry-After bzw. X-RateLimit-Reset beachten |
server_error |
5xx | Mit wachsendem Abstand erneut versuchen |
Wichtig
401 und 403 sind nicht austauschbar. Bei 401 prüfst du das Token, bei 403 den Tarif und den freigegebenen Umfang. Eine 429-Antwort bedeutet, dass der Client vor dem nächsten Versuch warten soll.
Hinweis
Ein Ausfall ist keine Aussage über deinen Feed. Bei Verbindungsfehlern, 5xx oder unlesbarer Antwort behältst du deine lokale Kopie. Nur eine wohlgeformte Antwort, die etwas nicht mehr enthält, rechtfertigt Aufräumen.
Rate-Limits einhalten#
Je Verknüpfung stehen in Pro 300 und in Business 600 Anfragen je Minute zur
Verfügung. Die verbleibende Zahl und der nächste Reset stehen in den
X-RateLimit-*-Kopfzeilen jeder Antwort.
Push-Benachrichtigungen für eigene Apps#
Deine App muss neue Posts nicht selbst laufend abfragen, um Nutzer zu benachrichtigen: Mit einer OneSignal-Verknüpfung sendet Feedivo bei neuen Posts automatisch eine Push-Benachrichtigung über dein OneSignal-Konto. Feed- und Post-Kennung reisen im Datenfeld der Benachrichtigung mit, sodass deine App den Post direkt öffnen kann (im Business-Tarif).
Der vollständige Endpunkt-Katalog steht in der API-Referenz.
Frage nicht beantwortet? Schreib uns — wir ergänzen die Seite.