Kesalahan

Dapatkan kunci API

Setiap kesalahan dijawab dengan status HTTP dan amplop JSON yang sama. code adalah kontrak yang dibaca kode Anda; message ditulis untuk manusia dan dapat berubah.

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 memberi lebih banyak informasi: field yang ditolak, alasan sebuah jaringan, jendela batas laju yang habis.
  • docUrl mengarah ke penjelasan kode di halaman ini.
  • requestId mengidentifikasi permintaan: berikan ke tim dukungan.

Kode kesalahan

StatusKodeArti
400invalid_requestBody, query, atau parameter tidak valid. Satu rincian per field yang ditolak: field, code (required, is_string, max…), dan message.
400invalid_jsonBody bukan JSON yang valid.
400invalid_cursorKursor tidak dikembalikan oleh Sofia API.
400webhook_url_invalidAlamat webhook bukan https, atau mengarah ke alamat privat.
400webhook_event_invalidEvent webhook tidak dikenal.
400application_name_invalidPengaturan › API: nama klien tidak ada atau terlalu panjang.
400application_profile_invalidPengaturan › API: ada kolom profil klien yang tidak valid; rinciannya menyebutkannya.
400logo_invalidPengaturan › API: logo ditolak (minimal 180×180 px, PNG, JPEG, atau WebP, maksimal 2 MB).
401invalid_tokenToken tidak ada, tidak dikenal, kedaluwarsa, atau dicabut, atau orang di baliknya kehilangan hak yang dibawanya. Lihat header WWW-Authenticate.
401unauthorizedAutentikasi diperlukan.
402subscription_requiredPenulisan live (termasuk dry run) memerlukan langganan aktif atau masa percobaan.
403insufficient_scopeToken tidak memiliki scope endpoint; rinciannya menyebutkannya.
403insufficient_rolePeran Anda di Workspace ini tidak mengizinkan tindakan ini.
403live_mode_requiredPenulisan nyata dengan token uji.
403route_closed_to_applicationsEndpoint ini tidak terbuka untuk aplikasi.
403forbiddenAkses ditolak.
403session_requiredPengaturan › API: tindakan ini memerlukan sesi Sofia, bukan token.
403impersonation_forbiddenPengaturan › API: tindakan ini ditolak dalam sesi pinjaman.
403workspace_owner_requiredHanya pemilik Workspace yang dapat melakukannya.
403workspace_member_requiredAnda bukan anggota Workspace ini.
404route_not_foundTidak ada endpoint yang menjawab metode dan path ini.
404establishment_not_foundUsaha tidak dikenal, atau di luar jangkauan token.
404media_not_foundMedia tidak dikenal, atau di luar jangkauan token.
404post_not_foundPostingan tidak dikenal, atau di luar jangkauan token.
404webhook_not_foundWebhook tidak dikenal, atau milik aplikasi lain.
404not_foundSumber daya tidak ada.
404application_not_foundPengaturan › API: klien tidak dikenal.
404grant_not_foundOtorisasi tidak dikenal, atau sudah dicabut.
404personal_key_not_foundPengaturan › API: kunci pribadi tidak dikenal.
405method_not_allowedMetode ini tidak diizinkan pada endpoint ini.
409post_in_flightSebuah jaringan sedang mengirim postingan: coba hapus lagi sebentar lagi.
409post_not_editableSebuah jaringan sudah mengirim postingan: tidak dapat diedit lagi.
409account_already_connectedJaringan ini sudah terhubung ke usaha.
409webhook_limit_reachedAplikasi sudah memiliki 10 webhook.
409idempotency_in_progressPermintaan pertama dengan Idempotency-Key ini masih berjalan.
409conflictPermintaan bertentangan dengan keadaan sumber daya saat ini.
409scope_removal_forbiddenPengaturan › API: izin klien dapat ditambahkan tetapi tidak dapat dihapus.
409public_client_has_no_secretPengaturan › API: klien publik tidak memiliki secret.
413payload_too_largeFile melebihi batas unggah.
415unsupported_media_typeTipe konten tidak didukung.
422post_refusedSebuah jaringan, usaha, atau paket Anda akan menolak postingan. Satu rincian per alasan, masing-masing dengan message-nya.
422media_import_refusedMedia tidak dapat diimpor dari URL ini; rinciannya menyebut alasannya.
422media_upload_refusedFile yang diunggah bukan gambar atau video yang didukung.
422platform_not_offeredJaringan ini tidak ditawarkan untuk dihubungkan.
422idempotency_key_reusedIdempotency-Key ini dipakai dengan body yang berbeda.
422unprocessable_entityPermintaan dipahami tetapi tidak dapat diproses.
429rate_limit_exceededJendela batas laju penuh: tunggu sesuai Retry-After.

Alasan postingan ditolak

post_refused mencantumkan setiap alasan di details[].code:

KodeArti
unsupported_platformJaringan ini tidak didukung.
duplicate_platformJaringan yang sama disebut dua kali.
unsupported_formatJaringan ini tidak menawarkan format ini.
caption_too_longTeks terlalu panjang (max, actual).
too_many_hashtagsTerlalu banyak hashtag (max, actual).
too_many_mentionsTerlalu banyak mention (max, actual).
too_many_thread_postsThread terlalu panjang (max, actual).
too_many_mediaTerlalu banyak media (max, actual).
media_mix_refusedFoto dan video tidak dapat dicampur di jaringan ini.
media_requiredJaringan ini memerlukan foto atau video.
media_type_refusedJaringan ini tidak menerima jenis media ini.
scheduled_in_pastscheduledAt sudah lewat.
scheduled_at_invalidPostingan terjadwal memerlukan scheduledAt di masa depan.
account_not_connectedTidak ada akun yang terhubung di jaringan ini untuk usaha ini.
account_ambiguousBeberapa akun terhubung di jaringan ini: sebutkan satu dengan accountId.
media_not_foundMedia tidak ada di pustaka usaha ini.
media_url_invalidURL media harus berupa alamat https publik.
platform_unavailableJaringan ini belum dibuka di Sofia.
publication_quota_exceededKuota publikasi paket Anda telah tercapai.

Menangani kesalahan

  • Bercabanglah berdasarkan code, jangan pernah message.
  • Coba ulang 429 setelah Retry-After, dan 5xx dengan exponential backoff.
  • Jangan pernah mencoba ulang 4xx tanpa perubahan: perbaiki permintaan terlebih dahulu.
  • Catat requestId pada setiap kegagalan.