API-Referenz

Überblick

Die SNSTracker-API ermöglicht es dir, Monitoring-Feeds und -Kanäle programmatisch zu verwalten. Du kannst Feeds (Videos, Posts usw.) und Kanäle (Accounts, Profile) erstellen, sie aktualisieren, um die neuesten Daten zu erhalten, und Echtzeit-Benachrichtigungen über Webhooks empfangen.

Authentifizierung

Alle API-Anfragen erfordern eine Authentifizierung per API-Schlüssel. Füge deinen API-Schlüssel im Header X-API-Key ein.

So erhältst du deinen API-Schlüssel:

  1. Melde dich bei SNSTracker an
  2. Gehe zu Einstellungen → API Keys
  3. Erstelle einen neuen API-Schlüssel oder verwende einen bestehenden
  4. Kopiere den API-Schlüssel (du siehst ihn nur einmal bei der Erstellung)

API-Endpunkte

1. Feeds erstellen

Erstelle Monitoring-Feeds, indem du Feed-URLs (Videos, Posts usw.) übermittelst.

POST /api/v1/feeds

Anfrage

Header:

  • X-API-Key: Dein API-Schlüssel (erforderlich)
  • Content-Type: application/json

Request Body:

{
  "urls": [
    "https://www.tiktok.com/@user/video/1234567890",
    "https://www.instagram.com/p/ABC123/"
  ],
  "collectionId": "coll_abc123xyz"
}

Parameter:

  • urls (erforderlich): Array der zu überwachenden Feed-URLs. Maximal 200 URLs pro Anfrage.
  • collectionId (optional): Collection-ID, zu der Feeds hinzugefügt werden. Falls nicht angegeben, wird die Standard-Collection deines Teams verwendet.

Antwort

Erfolgsantwort (200):

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": 2,
    "failed": 0,
    "total": 2,
    "results": [
      {
        "index": 0,
        "url": "https://www.tiktok.com/@user/video/1234567890",
        "platform": "tiktok",
        "feedId": "feed_abc123xyz",
        "success": true
      },
      {
        "index": 1,
        "url": "https://www.instagram.com/p/ABC123/",
        "platform": "instagram",
        "feedId": "feed_def456uvw",
        "success": true
      }
    ],
    "errors": [],
    "message": "Feeds created successfully. Data will be updated shortly."
  }
}

Antwortfelder:

  • success: Anzahl der erfolgreich erstellten Feeds
  • failed: Anzahl der fehlgeschlagenen Feed-Erstellungen
  • total: Gesamtzahl der angegebenen URLs
  • results: Array der Ergebnisse je URL
    • index: Nullbasierter Index im Request-Array
    • url: Die validierte und standardisierte URL
    • platform: Erkannte Plattform (tiktok, instagram, youtube usw.)
    • feedId: Eindeutige Kennung des erstellten Feeds
    • success: Ob der Feed erfolgreich erstellt wurde
    • skipped: (optional) Ob der Feed übersprungen wurde, weil er bereits existiert
    • resumed: (optional) Ob ein gestoppter Feed fortgesetzt wurde
    • error: (optional) Fehlermeldung, falls die Erstellung fehlgeschlagen ist
  • errors: Array der Fehler für fehlgeschlagene URLs

Beispielanfrage

curl -X POST https://snstracker.com/api/v1/feeds \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://www.tiktok.com/@user/video/1234567890"
    ]
  }'

2. Feeds aktualisieren

Aktualisiere bestehende Feeds, um die neuesten Daten sofort zu erhalten. Nur Feeds mit dem Status "Pending" oder "Tracked" können aktualisiert werden.

POST /api/v1/feeds/refresh

Anfrage

Header:

  • X-API-Key: Dein API-Schlüssel (erforderlich)
  • Content-Type: application/json

Request Body:

{
  "feedIds": ["feed_abc123xyz", "feed_def456uvw"]
}

Parameter:

  • feedIds (erforderlich): Array der zu aktualisierenden Feed-IDs

Antwort

Erfolgsantwort (200):

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": true,
    "feedIds": ["feed_abc123xyz", "feed_def456uvw"],
    "total": 2,
    "message": "Successfully refreshed 2 feed(s)"
  }
}

Antwortfelder:

  • success: Ob die Aktualisierung erfolgreich war
  • feedIds: Array der aktualisierten Feed-IDs
  • total: Anzahl der aktualisierten Feeds
  • message: Erfolgsmeldung

Beispielanfrage

curl -X POST https://snstracker.com/api/v1/feeds/refresh \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "feedIds": ["feed_abc123xyz"]
  }'

3. Kanäle erstellen

Erstelle Monitoring-Kanäle, indem du Kanal-URLs (Account-Profile usw.) übermittelst.

Channel pricing note: Xiaohongshu channel tasks are priced separately from the default channel task price and currently cost 10 credits per successful request.

POST /api/v1/channels

Anfrage

Header:

  • X-API-Key: Dein API-Schlüssel (erforderlich)
  • Content-Type: application/json

Request Body:

{
  "urls": [
    "https://www.tiktok.com/@username",
    "https://www.instagram.com/username/"
  ],
  "collectionId": "coll_abc123xyz"
}

Parameter:

  • urls (erforderlich): Array der zu überwachenden Kanal-URLs. Maximal 5 URLs pro Anfrage.
  • collectionId (optional): Collection-ID, zu der Kanäle hinzugefügt werden. Falls nicht angegeben, wird die Standard-Collection deines Teams verwendet.

Antwort

Erfolgsantwort (200):

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": 2,
    "failed": 0,
    "total": 2,
    "results": [
      {
        "index": 0,
        "url": "https://www.tiktok.com/@username",
        "platform": "tiktok",
        "channelId": "channel_abc123xyz",
        "success": true
      },
      {
        "index": 1,
        "url": "https://www.instagram.com/username/",
        "platform": "instagram",
        "channelId": "channel_def456uvw",
        "success": true
      }
    ],
    "errors": [],
    "message": "Channels created successfully. Data will be updated shortly."
  }
}

Antwortfelder:

  • success: Anzahl der erfolgreich erstellten Kanäle
  • failed: Anzahl der fehlgeschlagenen Kanal-Erstellungen
  • total: Gesamtzahl der angegebenen URLs
  • results: Array der Ergebnisse je URL
    • index: Nullbasierter Index im Request-Array
    • url: Die validierte und standardisierte URL
    • platform: Erkannte Plattform (tiktok, instagram, youtube usw.)
    • channelId: Eindeutige Kennung des erstellten Kanals
    • success: Ob der Kanal erfolgreich erstellt wurde
    • skipped: (optional) Ob der Kanal übersprungen wurde, weil er bereits existiert
    • resumed: (optional) Ob ein gestoppter Kanal fortgesetzt wurde
    • error: (optional) Fehlermeldung, falls die Erstellung fehlgeschlagen ist
  • errors: Array der Fehler für fehlgeschlagene URLs

Beispielanfrage

curl -X POST https://snstracker.com/api/v1/channels \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://www.tiktok.com/@username"
    ]
  }'

4. Kanäle aktualisieren

Aktualisiere bestehende Kanäle, um die neuesten Daten sofort zu erhalten. Nur Kanäle mit dem Status "Pending" oder "Tracked" können aktualisiert werden.

Channel pricing note: Xiaohongshu channel tasks are priced separately from the default channel task price and currently cost 10 credits per successful request.

POST /api/v1/channels/refresh

Anfrage

Header:

  • X-API-Key: Dein API-Schlüssel (erforderlich)
  • Content-Type: application/json

Request Body:

{
  "channelIds": ["channel_abc123xyz", "channel_def456uvw"]
}

Parameter:

  • channelIds (erforderlich): Array der zu aktualisierenden Kanal-IDs

Antwort

Erfolgsantwort (200):

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": true,
    "channelIds": ["channel_abc123xyz", "channel_def456uvw"],
    "total": 2,
    "message": "Successfully refreshed 2 channel(s)"
  }
}

Antwortfelder:

  • success: Ob die Aktualisierung erfolgreich war
  • channelIds: Array der aktualisierten Kanal-IDs
  • total: Anzahl der aktualisierten Kanäle
  • message: Erfolgsmeldung

Beispielanfrage

curl -X POST https://snstracker.com/api/v1/channels/refresh \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "channelIds": ["channel_abc123xyz"]
  }'

5. Feed synchronisieren

Synchronisiere Feed-Daten direkt aus dem Scrapy-Service. Dieser Endpunkt ruft die neuesten Feed-Daten sofort ab und verbraucht Credits nach erfolgreicher Synchronisierung. Alle Mitglieder und API-Schlüssel eines Teams teilen ein Limit über alle Sync-Endpunkte hinweg. Das gemeinsame Limit beträgt 1 für Starter oder ohne gültiges Abonnement, 5 für Standard und 10 für Premium.

⚠️ Wichtiger Hinweis: Dieser Sync-Endpunkt ist standalone und integriert sich NICHT in die Webplattform. Sync-Operationen werden:

  • KEINE Feed-Datensätze im Web-Dashboard erstellen oder aktualisieren
  • NICHT in deiner Feeds-Liste oder in Collections erscheinen
  • KEINE Webhooks oder Benachrichtigungen auslösen
  • NUR die abgerufenen Daten direkt in der API-Antwort zurückgeben

Dieser Endpunkt ist für einmalige Datenabfragen per API vorgesehen. Um persistente Monitoring-Feeds zu erstellen, die in der Webplattform erscheinen, verwende stattdessen den Endpunkt Create Feeds.

POST /api/v1/feeds/sync

Anfrage

Header:

  • X-API-Key: Dein API-Schlüssel (erforderlich)
  • Content-Type: application/json

Request Body:

{
  "url": "https://www.tiktok.com/@user/video/1234567890"
}

Parameter:

  • url (erforderlich): Feed-URL, die synchronisiert werden soll. Muss eine gültige, nicht leere Zeichenkette sein.

Antwort

Erfolgsantwort (200):

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": true,
    "url": "https://www.tiktok.com/@user/video/1234567890",
    "feedInfo": {
      "feed_id": "1234567890",
      "platform": 1,
      "platform_name": "tiktok",
      "url": "https://www.tiktok.com/@user/video/1234567890",
      "views": 1000000,
      "likes": 200000,
      "comments": 1000,
      "shares": 2000,
      "bookmarks": 200,
      "engagement": 512000,
      "description": "Video description",
      "hashtags": ["tag1", "tag2"],
      "publish_at": 1234567890
    }
  }
}

Antwortfelder:

  • success: Ob die Synchronisierung erfolgreich war
  • url: Die synchronisierte Feed-URL
  • feedInfo: Vollständige Feed-Informationen einschließlich Metriken, Beschreibung, Hashtags usw.

Fehlerantworten:

  • 429 Too Many Requests: Das gemeinsame Team-Limit ist erreicht. Die Anfrage wird nicht eingereiht.
  • 400 Bad Request: Unzureichende Credits oder ungültige URL

Beispielanfrage

curl -X POST https://snstracker.com/api/v1/feeds/sync \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.tiktok.com/@user/video/1234567890"
  }'

6. Kanal synchronisieren

Synchronisiere Kanal-Daten direkt aus dem Scrapy-Service. Dieser Endpunkt ruft die neuesten Kanal-Daten sofort ab und verbraucht Credits nach erfolgreicher Synchronisierung. Alle Mitglieder und API-Schlüssel eines Teams teilen ein Limit über alle Sync-Endpunkte hinweg. Das gemeinsame Limit beträgt 1 für Starter oder ohne gültiges Abonnement, 5 für Standard und 10 für Premium.

Channel pricing note: Xiaohongshu channel tasks are priced separately from the default channel task price and currently cost 10 credits per successful request.

⚠️ Wichtiger Hinweis: Dieser Sync-Endpunkt ist standalone und integriert sich NICHT in die Webplattform. Sync-Operationen werden:

  • KEINE Kanal-Datensätze im Web-Dashboard erstellen oder aktualisieren
  • NICHT in deiner Kanäle-Liste oder in Collections erscheinen
  • KEINE Webhooks oder Benachrichtigungen auslösen
  • NUR die abgerufenen Daten direkt in der API-Antwort zurückgeben

Dieser Endpunkt ist für einmalige Datenabfragen per API vorgesehen. Um persistente Monitoring-Kanäle zu erstellen, die in der Webplattform erscheinen, verwende stattdessen den Endpunkt Create Channels.

POST /api/v1/channels/sync

Anfrage

Header:

  • X-API-Key: Dein API-Schlüssel (erforderlich)
  • Content-Type: application/json

Request Body:

{
  "url": "https://www.tiktok.com/@username"
}

Parameter:

  • url (erforderlich): Kanal-URL, die synchronisiert werden soll. Muss eine gültige, nicht leere Zeichenkette sein.

Antwort

Erfolgsantwort (200):

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": true,
    "url": "https://www.tiktok.com/@username",
    "channelInfo": {
      "id": "1234567890",
      "platform": 1,
      "platform_name": "tiktok",
      "username": "username",
      "nickname": "User Name",
      "description": "Channel description",
      "followers": 1000000,
      "followings": 2000,
      "likes": 200000000,
      "total_count": 1000,
      "track_count": 1000,
      "status": 1
    }
  }
}

Antwortfelder:

  • success: Ob die Synchronisierung erfolgreich war
  • url: Die synchronisierte Kanal-URL
  • channelInfo: Vollständige Kanal-Informationen einschließlich Metriken, Beschreibung usw.

Fehlerantworten:

  • 429 Too Many Requests: Das gemeinsame Team-Limit ist erreicht. Die Anfrage wird nicht eingereiht.
  • 400 Bad Request: Unzureichende Credits oder ungültige URL

Beispielanfrage

curl -X POST https://snstracker.com/api/v1/channels/sync \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.tiktok.com/@username"
  }'

7. Kanalinhalte synchronisieren

Gibt eine Seite zurück, bei Instagram und Reels höchstens 12 Einträge pro Anfrage, ohne automatisches Weiterblättern. instagram umfasst Bilder, Videos und Karussells; reels liefert Reels-Videos.

POST /api/v1/channels/feeds/sync
X-API-Key: your-api-key
Content-Type: application/json

Request and pagination

{
  "platform": "instagram",
  "channel_name": "instagram"
}
  • count ist eine optionale positive Ganzzahl für die gewünschte Anzahl von Einträgen auf dieser Seite, ohne Standardwert. Die Grenzen hängen von der Plattform ab: Instagram und Reels liefern höchstens 12 Einträge pro Anfrage, möglicherweise weniger. Ohne Angabe gilt die Standardseitengröße der Plattform.
  • Für die erste Seite cursor weglassen. Danach next_cursor unverändert als cursor senden und platform sowie channel_name beibehalten. Am Ende: has_more=false, next_cursor=null.
{
  "platform": "instagram",
  "channel_name": "instagram",
  "cursor": "previous-next-cursor"
}

Jede erfolgreich abgerufene Seite kostet 10 Credits, auch leere Seiten. Nur fehlgeschlagene Anfragen sind kostenlos; vor der Anfrage sind mindestens 10 Credits nötig. Das Teamlimit wird mit den anderen Sync-APIs geteilt. Es werden keine Dashboard-Einträge erstellt.

Response example (placeholder cursor) — reels, lunacut.edit, count=1

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": true,
    "platform": "reels",
    "channel_name": "lunacut.edit",
    "channel_url": "https://www.instagram.com/lunacut.edit/",
    "requested_count": 1,
    "returned_count": 1,
    "has_more": true,
    "next_cursor": "cursor-from-response",
    "items": [
      {
        "feed_id": "4009169989985582972",
        "platform": 5,
        "platform_name": "reels",
        "type": "video",
        "url": "https://www.instagram.com/reel/Dejbt1JPz98/",
        "author_username": "lunacut.edit",
        "publish_at": 1792150387,
        "duration": 70.077,
        "view_count": 310475
      }
    ]
  }
}

platform and channel_name are required. channel_name is the username, not the display name; leading @ is accepted and dots are preserved. requested_count is null when count is omitted; returned_count equals items.length. Unknown metrics/timestamps are null. Posts may lack timestamps and carousel details. items uses the existing feed fields, including video_url, image_urls and cover_url; the example shows only selected fields. publish_at is Unix seconds and duration is seconds. Upstream order is preserved, without a most-popular sorting option; deduplicate across pages by feed_id. Empty pages can still have a next cursor; a carousel counts as one post.

Die Verfügbarkeit von Aufrufen (view_count), Likes (like_count), Speicherungen (bookmark_count) und Kommentaren (comment_count) in items hängt von der Plattform und ihrer Kanallisten-Antwort ab. Nicht alle Kennzahlen sind verfügbar. Fehlende Werte werden als null zurückgegeben, was nicht null Aufrufe oder Interaktionen bedeutet.

Um fehlende Kennzahlen nachzuschlagen, rufen Sie POST /api/v1/feeds/sync separat auf und übergeben die url des Eintrags als url im Anfragekörper. Die Detailabfrage wird nach den Regeln dieses Endpunkts separat berechnet. Das Ergebnis hängt weiterhin von den verfügbaren Plattformdaten ab; nicht alle fehlenden Werte lassen sich zwingend abrufen.

HTTP: 400 invalid input/cursor or insufficient initial credits; 401 invalid API key; 403 disabled team or inaccessible channel; 402 insufficient credits at settlement; 429 team concurrency limit (Retry-After: 1); 502 upstream/invalid page; 503 service unavailable; 504 timeout.

8. Zusätzliche Profilinformationen abrufen

POST /api/v1/channels/about/sync

Nur Instagram und Reels. Wie bei /api/v1/channels/sync ist url erforderlich: https://www.instagram.com/lunacut.edit/ oder https://www.instagram.com/lunacut.edit/reels/. platform, count und cursor sind nicht erforderlich. Beiträge und andere Plattformen werden nicht unterstützt.

curl -X POST https://snstracker.com/api/v1/channels/about/sync \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.instagram.com/lunacut.edit/"}'

Jede erfolgreiche Anfrage kostet 80 Credits, auch bei null-Feldern. Fehler werden nicht berechnet; vorher sind mindestens 80 Credits nötig. Gemeinsames Teamlimit mit allen synchronen APIs: Starter/kein aktives Abo 1, Standard 5, Premium 10. Keine Dashboard-Einträge oder Webhooks.

Beispielantwort; verfügbare Felder hängen von den öffentlichen Kontoinformationen ab.

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": true,
    "url": "https://www.instagram.com/lunacut.edit/",
    "channelAbout": {
      "platform": 6,
      "platform_name": "instagram",
      "username": "lunacut.edit",
      "channel_url": "https://www.instagram.com/lunacut.edit/",
      "country": "Brazil",
      "country_visible": true,
      "date_joined": "2020-05",
      "date_joined_text": "May 2020"
    }
  }
}

country: öffentliches Land/Region, nur bei country_visible=true, keine Echtzeit-IP-Ortung. country_visible: Sichtbarkeit, unbekannt ist null. date_joined: Beitrittsmonat (YYYY-MM), bei fehlendem/unbekanntem Format null. date_joined_text: ursprünglicher Datumstext oder null. Keine Bio, Followerzahl oder früheren Benutzernamen.

400 / 401 / 402 / 403 / 429 (Retry-After: 1) / 502 / 503 / 504.

Webhook-Integration

SNSTracker unterstützt Webhooks, um Echtzeit-Benachrichtigungen zu erhalten, wenn überwachte Inhalte deine konfigurierten Schwellenwerte erreichen. Du kannst Webhooks so konfigurieren, dass du Benachrichtigungen erhältst über:

  • Feed-Updates: Wenn Views oder Engagement (Likes + Kommentare + Shares) um deinen Schwellenwert steigen
  • Kanal-Updates: Wenn Follower, Followings oder Likes um deinen Schwellenwert steigen

Webhooks einrichten

  1. Webhook-Ziele konfigurieren in den Collection-Einstellungen
  2. Benachrichtigungen aktivieren in der Collection-Konfiguration
  3. Schwellenwerte festlegen für die Metriken, die du überwachen möchtest

Detaillierte Anweisungen zur Webhook-Konfiguration findest du im Webhook Configuration Guide.

Fehlerantworten

Alle Endpunkte können die folgenden Fehlerantworten zurückgeben:

401 Unauthorized - Fehlender API-Schlüssel

{
  "code": -1,
  "message": "X-API-Key header is required"
}

401 Unauthorized - Ungültiger API-Schlüssel

{
  "code": -1,
  "message": "Invalid API key"
}

400 Bad Request - Ungültige Eingabe

{
  "code": -1,
  "message": "Invalid request: urls must be an array"
}

400 Bad Request - Zu viele URLs (Feeds erstellen)

{
  "code": -1,
  "message": "Maximum 200 URLs allowed per request"
}

400 Bad Request - Zu viele URLs (Kanäle erstellen)

{
  "code": -1,
  "message": "Maximum 200 URLs allowed per request"
}

400 Bad Request - Unzureichende Credits

{
  "code": -1,
  "message": "Insufficient credits. Required: 10, Available: 5"
}

429 Too Many Requests - Gleichzeitige Team-Synchronisierung

{
  "code": -1,
  "message": "Maximum concurrent sync requests (1) reached for this team. Currently active: 1. Wait for a request to complete, or contact official support to increase the limit."
}

403 Forbidden - Ungültige Collection

{
  "code": -1,
  "message": "Collection not found or does not belong to your team"
}

404 Not Found

{
  "code": -1,
  "message": "No feeds found"
}

oder

{
  "code": -1,
  "message": "No channels found"
}

Verwendungsbeispiele

Python-Beispiel – Feeds erstellen

import requests

url = "https://snstracker.com/api/v1/feeds"
headers = {
    "X-API-Key": "your-api-key-here",
    "Content-Type": "application/json"
}
data = {
    "urls": [
        "https://www.tiktok.com/@user/video/1234567890",
        "https://www.instagram.com/p/ABC123/"
    ]
}

response = requests.post(url, json=data, headers=headers)
result = response.json()

if result["code"] == 0:
    print(f"Successfully created {result['data']['success']} feeds")
    for feed in result["data"]["results"]:
        print(f"  - {feed['url']}: {feed['feedId']}")
else:
    print(f"Error: {result['message']}")

JavaScript-Beispiel – Feeds aktualisieren

const response = await fetch('https://snstracker.com/api/v1/feeds/refresh', {
  method: 'POST',
  headers: {
    'X-API-Key': 'your-api-key-here',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    feedIds: ['feed_abc123xyz', 'feed_def456uvw'],
  }),
});

const result = await response.json();

if (result.code === 0) {
  console.log(`Successfully refreshed ${result.data.total} feeds`);
  result.data.feedIds.forEach((feedId) => {
    console.log(`  - ${feedId}`);
  });
} else {
  console.error(`Error: ${result.message}`);
}

Wichtige Hinweise

  1. URL-Validierung: Alle URLs werden vor der Erstellung automatisch validiert. Ungültige URLs werden abgelehnt.

  2. Doppelte Einträge: Wenn ein Element mit derselben URL bereits in der Collection existiert:

    • Wenn es aktiv ist, wird es übersprungen (markiert mit skipped: true)
    • Wenn es gestoppt ist, wird es fortgesetzt (markiert mit resumed: true)
  3. Datenerfassung: Nach erfolgreicher Erstellung werden Elemente zur Datenerfassung in eine Warteschlange gestellt. Daten sind kurz nach der Erstellung verfügbar.

  4. Refresh-Status: Nur Elemente mit dem Status "Pending" oder "Tracked" können aktualisiert werden. Elemente mit anderen Status werden herausgefiltert.

  5. Credits: Stelle sicher, dass du genügend Credits hast, bevor du Anfragen stellst. Sync-Operationen verbrauchen Credits sofort nach erfolgreichem Datenabruf. Xiaohongshu channel tasks are priced separately and currently cost 10 credits per successful request. /api/v1/channels/feeds/sync: Jede erfolgreich abgerufene Seite kostet 10 Credits, auch leere Seiten. Nur fehlgeschlagene Anfragen sind kostenlos; vor der Anfrage sind mindestens 10 Credits nötig. Das Teamlimit wird mit den anderen Sync-APIs geteilt. Es werden keine Dashboard-Einträge erstellt. /api/v1/channels/about/sync: Jede erfolgreiche Anfrage kostet 80 Credits, auch bei null-Feldern. Fehler werden nicht berechnet; vorher sind mindestens 80 Credits nötig. Gemeinsames Teamlimit mit allen synchronen APIs: Starter/kein aktives Abo 1, Standard 5, Premium 10. Keine Dashboard-Einträge oder Webhooks.

  6. Gleichzeitige Team-Synchronisierung (/api/v1/feeds/sync + /api/v1/channels/sync + /api/v1/channels/feeds/sync + /api/v1/channels/about/sync): Alle Mitglieder und API-Schlüssel eines Teams teilen ein Limit über alle Sync-Endpunkte hinweg. Das gemeinsame Limit beträgt 1 für Starter oder ohne gültiges Abonnement, 5 für Standard und 10 für Premium. Das Limit folgt dem aktuell gültigen Abonnement; eine vom offiziellen Support festgelegte Teameinstellung hat Vorrang. Für ein höheres Team-Limit kontaktiere den offiziellen Support.

  7. Sync vs. Create: Die Sync-Endpunkte (/api/v1/feeds/sync und /api/v1/channels/sync + /api/v1/channels/feeds/sync + /api/v1/channels/about/sync) sind standalone und integrieren sich NICHT in die Webplattform. Sie geben die Daten nur in der API-Antwort zurück und erstellen keine Datensätze im Dashboard. Um persistente Monitoring-Elemente zu erstellen, die in der Webplattform erscheinen, verwende stattdessen die Create-Endpunkte (/api/v1/feeds und /api/v1/channels).

  8. Wiederholen: Warte bei 429 auf das Ende einer laufenden Anfrage und wiederhole mit zunehmenden Abständen unter Beachtung von Retry-After. Bei 503 später erneut versuchen.

  9. Unterstützte Plattformen: TikTok, Instagram, YouTube und andere große Social-Media-Plattformen.

Fehlerbehebung

Problem: "X-API-Key header is required"
Lösung: Stelle sicher, dass du den X-API-Key-Header in deiner Anfrage mitsendest.

Problem: "Invalid API key"
Lösung: Überprüfe, ob dein API-Schlüssel korrekt ist. Du kannst einen neuen in den Einstellungen → API Keys erstellen.

Problem: "Maximum URLs allowed per request"
Lösung: Teile deine URLs auf mehrere Anfragen auf. Feeds erlauben bis zu 200 URLs, Kanäle bis zu 5 URLs pro Anfrage.

Problem: "No collection found"
Lösung: Erstelle zuerst eine Collection im Dashboard oder gib eine bestehende Collection-ID an.

Problem: "Insufficient credits"
Lösung: Kaufe mehr Credits oder prüfe deinen Abotarif.

Problem: "No refreshable items found"
Lösung: Nur Elemente mit dem Status "Pending" oder "Tracked" können aktualisiert werden. Prüfe den Status deiner Elemente.

Problem: Einige URLs bestehen die Validierung nicht
Lösung: Prüfe das errors-Array in der Antwort auf spezifische Fehlermeldungen. Stelle sicher, dass die URLs von unterstützten Plattformen stammen und öffentlich zugänglich sind.