REST APIPOST

Beitrag vor dem Erstellen prüfen

Testlauf für einen Beitrag: Senden Sie denselben Body wie bei Beitrag erstellen und erhalten Sie jedes Problem pro Konto, ohne dass etwas angelegt wird.

POSThttps://post.adaptlypost.com/post/api/v1/social-posts/validate

Führt jede Prüfung von Beitrag erstellen aus, ohne etwas anzulegen. Senden Sie denselben Body und lesen Sie, was der Beitrag tun würde und jedes Problem, das ihn aufhalten würde.

API-Schlüssel (Bearer-Token)
Berechtigung:posts.draftRollen und Berechtigungen

Für die Prüfung genügt posts.draft, egal was der Beitrag tun würde. requiredPermissions in der Antwort nennt, was das Erstellen des Beitrags bräuchte, und ein Schlüssel ohne eine davon erhält ein PERMISSION_DENIED-Problem.

Request-Body

Derselbe Body wie bei Beitrag erstellen, Feld für Feld. Es wird nichts angelegt, keine Medien hochgeladen und nichts gespeichert. Ein gültig aufgebauter Body liefert immer 200 mit einem Bericht, auch wenn der Beitrag abgelehnt würde. Nur ein fehlerhaft aufgebauter Body liefert 400.

Probleme, die vor dem Veröffentlichen erkannt werden

Neben jeder Prüfung von Beitrag erstellen deckt der Bericht Probleme ab, die sonst erst beim Veröffentlichen auftreten: TikTok-Creator-Limits, das tägliche YouTube-Upload-Limit für Kanäle ohne Backup-Upload, abgelaufener Zugriff bei Instagram und Threads, Mastodon-Server mit weniger Anhängen, nicht vorhandene Pinterest-Boards und X-Credits bei Lifetime-Deal-Tarifen.

Antwortfelder

FeldBeschreibung
validfalse, sobald ein Problem den Schweregrad ERROR hat, auf oberster Ebene oder bei einem Konto
outcomeWas das Erstellen des Beitrags tun würde: PUBLISH_NOW, SCHEDULED oder DRAFT
scheduledAtWann der Beitrag erscheinen würde (ISO 8601). Nur gesetzt, wenn outcome SCHEDULED ist
requiredPermissionsDie Berechtigungen, die das Erstellen des Beitrags bräuchte, etwa posts.schedule
issuesProbleme, die nicht zu einem Konto gehören, etwa eine fehlende Berechtigung
accountsEin Eintrag pro ausgewähltem Konto, mit den Feldern unten
notCheckedWas nur die Plattform beim Veröffentlichen entscheiden kann, als { code, message }. code ist PLATFORM_PROCESSING, DUPLICATE_CONTENT, PLATFORM_RATE_LIMITS, LIVE_ACCOUNT_ACCESS oder VIDEO_DURATION

Kontofelder

FeldBeschreibung
platform, connectionId, accountNameDie Plattform des Kontos, seine Verbindungs-ID und sein Name, wenn bekannt
statusREADY, WARNING (wird mit Einschränkung veröffentlicht) oder BLOCKED (würde nicht veröffentlicht)
issuesDie Probleme, die für dieses Konto gefunden wurden

Problemfelder

FeldBeschreibung
codeEin stabiler Grund wie TEXT_TOO_LONG, ACCOUNT_DISCONNECTED, TIKTOK_POSTING_BLOCKED oder YOUTUBE_UPLOAD_QUOTA_EXHAUSTED. Es können neue Codes hinzukommen, zeigen Sie bei einem unbekannten Code also message an
severityERROR hält den Beitrag oder dieses Konto auf. WARNING lässt ihn durch
messageEin lesbarer Satz, den Sie unverändert anzeigen können
platform, connectionIdDie Plattform und das Konto, um die es geht, wenn das Problem eines betrifft

valid: true ist keine Garantie

Eine Plattform kann Medien bei der Verarbeitung noch ablehnen, einen doppelten Beitrag verweigern oder beim Veröffentlichen an ein Ratenlimit stoßen. notChecked listet diese Punkte auf. Sie müssen die Prüfung nie vor Beitrag erstellen ausführen, denn dort laufen dieselben Prüfungen erneut.
Einen Beitrag prüfen
curl --request POST \
  --url https://post.adaptlypost.com/post/api/v1/social-posts/validate \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
    "platforms": ["TWITTER", "TIKTOK"],
    "contentType": "VIDEO",
    "text": "Behind the scenes of our launch",
    "mediaUrls": ["https://cdn.adaptlypost.com/uploads/launch.mp4"],
    "scheduledAt": "2026-11-03T15:00:00Z",
    "timezone": "America/New_York",
    "twitterConnectionIds": ["conn_abc123"],
    "tiktokConnectionIds": ["conn_tt789"]
  }'
200
{
  "valid": false,
  "outcome": "SCHEDULED",
  "scheduledAt": "2026-11-03T15:00:00.000Z",
  "requiredPermissions": ["posts.schedule"],
  "issues": [],
  "accounts": [
    {
      "platform": "TWITTER",
      "connectionId": "conn_abc123",
      "accountName": "@yourhandle",
      "status": "READY",
      "issues": []
    },
    {
      "platform": "TIKTOK",
      "connectionId": "conn_tt789",
      "accountName": "yourbrand",
      "status": "BLOCKED",
      "issues": [
        {
          "code": "TIKTOK_VIDEO_TOO_LONG",
          "severity": "ERROR",
          "message": "Video duration (185s) exceeds your TikTok account limit of 180 seconds",
          "platform": "TIKTOK",
          "connectionId": "conn_tt789"
        }
      ]
    }
  ],
  "notChecked": [
    {
      "code": "PLATFORM_PROCESSING",
      "message": "The platform processes media after upload and can still reject it then"
    }
  ]
}