Fehler

API-Schlüssel erhalten

Jeder Fehler antwortet mit einem HTTP-Status und demselben JSON-Envelope. code ist der Vertrag, den Ihr Code liest; message ist für Menschen geschrieben und kann sich ändern.

json
{
  "error": {
    "code": "invalid_request",
    "message": "The request is invalid",
    "details": [
      { "field": "targets[0].text", "code": "required", "message": "targets[0].text is required" }
    ],
    "docUrl": "https://www.sofia-post.com/developers/errors#invalid_request",
    "requestId": "2aab5943-6333-4caf-8478-25a85ebd4abf"
  }
}
  • details sagt mehr: das abgelehnte Feld, den Grund eines Netzwerks, das erschöpfte Rate-Limit-Fenster.
  • docUrl führt zur Erklärung des Codes auf dieser Seite.
  • requestId identifiziert die Anfrage: Geben Sie sie dem Support an.

Fehlercodes

StatusCodeBedeutung
400invalid_requestDer Body, die Query oder ein Parameter ist ungültig. Ein Detail pro abgelehntem Feld: field, code (required, is_string, max …) und message.
400invalid_jsonDer Body ist kein gültiges JSON.
400invalid_cursorDer Cursor wurde nicht von Sofia API zurückgegeben.
400webhook_url_invalidDie Webhook-Adresse ist nicht https oder führt zu einer privaten Adresse.
400webhook_event_invalidUnbekanntes Webhook-Event.
400application_name_invalidEinstellungen › API: Der Name des Clients fehlt oder ist zu lang.
400application_profile_invalidEinstellungen › API: Ein Feld des Client-Profils ist ungültig; das Detail nennt es.
400logo_invalidEinstellungen › API: Das Logo wird abgelehnt (mindestens 180×180 px, PNG, JPEG oder WebP, höchstens 2 MB).
401invalid_tokenDas Token fehlt, ist unbekannt, abgelaufen oder widerrufen, oder die Person dahinter hat die Rechte verloren, die es trägt. Siehe den Header WWW-Authenticate.
401unauthorizedAuthentifizierung erforderlich.
402subscription_requiredEin echter Schreibzugriff (Probelauf eingeschlossen) erfordert ein aktives Abonnement oder eine Testphase.
403insufficient_scopeDem Token fehlt der Scope des Endpoints; das Detail nennt ihn.
403insufficient_roleIhre Rolle in diesem Workspace erlaubt diese Aktion nicht.
403live_mode_requiredEin echter Schreibzugriff mit einem Test-Token.
403route_closed_to_applicationsDieser Endpoint steht Anwendungen nicht offen.
403forbiddenZugriff verweigert.
403session_requiredEinstellungen › API: Diese Aktion braucht eine Sofia-Sitzung, kein Token.
403impersonation_forbiddenEinstellungen › API: Diese Aktion wird in einer geliehenen Sitzung abgelehnt.
403workspace_owner_requiredNur der Eigentümer des Workspace kann das tun.
403workspace_member_requiredSie sind kein Mitglied dieses Workspace.
404route_not_foundKein Endpoint antwortet auf diese Methode und diesen Pfad.
404establishment_not_foundUnbekannter Betrieb oder außerhalb der Reichweite des Tokens.
404media_not_foundUnbekanntes Medium oder außerhalb der Reichweite des Tokens.
404post_not_foundUnbekannter Beitrag oder außerhalb der Reichweite des Tokens.
404webhook_not_foundUnbekannter Webhook oder der einer anderen Anwendung.
404not_foundDie Ressource existiert nicht.
404application_not_foundEinstellungen › API: Unbekannter Client.
404grant_not_foundUnbekannte oder bereits widerrufene Autorisierung.
404personal_key_not_foundEinstellungen › API: Unbekannter persönlicher Schlüssel.
405method_not_allowedDiese Methode ist auf diesem Endpunkt nicht erlaubt.
409post_in_flightEin Netzwerk sendet den Beitrag gerade: Versuchen Sie das Löschen einen Moment später erneut.
409post_not_editableEin Netzwerk hat den Beitrag bereits gesendet: Er kann nicht mehr bearbeitet werden.
409account_already_connectedDieses Netzwerk ist bereits mit dem Betrieb verbunden.
409webhook_limit_reachedDie Anwendung hat bereits 10 Webhooks.
409idempotency_in_progressDie erste Anfrage mit diesem Idempotency-Key läuft noch.
409conflictDie Anfrage steht im Widerspruch zum aktuellen Zustand der Ressource.
409scope_removal_forbiddenEinstellungen › API: Eine Berechtigung eines Clients kann hinzugefügt, aber nicht entfernt werden.
409public_client_has_no_secretEinstellungen › API: Ein öffentlicher Client hat kein Secret.
413payload_too_largeDie Datei überschreitet das Upload-Limit.
415unsupported_media_typeNicht unterstützter Content-Type.
422post_refusedEin Netzwerk, der Betrieb oder Ihr Tarif würde den Beitrag ablehnen. Ein Detail pro Grund, jeweils mit seiner message.
422media_import_refusedDas Medium konnte nicht von dieser URL importiert werden; das Detail nennt den Grund.
422media_upload_refusedDie hochgeladene Datei ist kein unterstütztes Bild oder Video.
422platform_not_offeredDieses Netzwerk wird nicht zur Verbindung angeboten.
422idempotency_key_reusedDieser Idempotency-Key wurde mit einem anderen Body verwendet.
422unprocessable_entityDie Anfrage wird verstanden, kann aber nicht verarbeitet werden.
429rate_limit_exceededEin Rate-Limit-Fenster ist voll: Warten Sie Retry-After ab.

Gründe für einen abgelehnten Beitrag

Ein post_refused listet jeden Grund in details[].code auf:

CodeBedeutung
unsupported_platformDieses Netzwerk wird nicht unterstützt.
duplicate_platformDasselbe Netzwerk wird zweimal genannt.
unsupported_formatDieses Netzwerk bietet dieses Format nicht an.
caption_too_longDer Text ist zu lang (max, actual).
too_many_hashtagsZu viele Hashtags (max, actual).
too_many_mentionsZu viele Erwähnungen (max, actual).
too_many_thread_postsDer Thread ist zu lang (max, actual).
too_many_mediaZu viele Medien (max, actual).
media_mix_refusedFotos und Videos lassen sich in diesem Netzwerk nicht mischen.
media_requiredDieses Netzwerk braucht ein Foto oder ein Video.
media_type_refusedDieses Netzwerk akzeptiert diesen Medientyp nicht.
scheduled_in_pastscheduledAt liegt in der Vergangenheit.
scheduled_at_invalidEin geplanter Beitrag braucht ein zukünftiges scheduledAt.
account_not_connectedFür diesen Betrieb ist in diesem Netzwerk kein Konto verbunden.
account_ambiguousIn diesem Netzwerk sind mehrere Konten verbunden: Geben Sie eines mit accountId an.
media_not_foundDas Medium befindet sich nicht in der Mediathek dieses Betriebs.
media_url_invalidDie Medien-URL muss eine öffentliche https-Adresse sein.
platform_unavailableDieses Netzwerk ist bei Sofia noch nicht freigeschaltet.
publication_quota_exceededDas Veröffentlichungskontingent Ihres Tarifs ist erreicht.

Fehler behandeln

  • Verzweigen Sie anhand von code, nie anhand von message.
  • Wiederholen Sie 429 nach Retry-After und 5xx mit exponentiellem Backoff.
  • Wiederholen Sie ein 4xx nie unverändert: Korrigieren Sie zuerst die Anfrage.
  • Protokollieren Sie requestId bei jedem Fehler.