API Konten
API Konten menyediakan titik akhir untuk membuat, menjadwalkan, mengunggah media, memeriksa, dan membatalkan pekerjaan penerbitan media sosial.
📌 Titik Akhir
Section titled “📌 Titik Akhir”| Metode | Jalur | Deskripsi | Cakupan yang Diperlukan |
|---|---|---|---|
POST | /v1/brand/contents/uploads | Menghasilkan presigned URL PUT untuk unggahan gambar dan video | publishing:create atau * |
POST | /v1/brand/contents | Mengirim postingan langsung atau terjadwal (202 Accepted) | publishing:create atau * |
GET | /v1/brand/contents | Mencantumkan konten merek dengan paginasi dan filter status | publishing:read atau * |
GET | /v1/brand/contents/{content_id} | Mengambil detail konten dan hasil pekerjaan penerbitan | publishing:read atau * |
DELETE | /v1/brand/contents/{content_id}/cancel | Membatalkan postingan terjadwal sebelum pemrosesan dimulai | publishing:delete atau * |
1. URL Pra-tanda Tangan Unggahan Media (POST /v1/brand/contents/uploads)
Section titled “1. URL Pra-tanda Tangan Unggahan Media (POST /v1/brand/contents/uploads)”Untuk melampirkan media ke postingan, minta presigned URL unggahan dan unggah data biner langsung ke penyimpanan S3/R2 melalui HTTP PUT.
Format Media yang Didukung
Section titled “Format Media yang Didukung”- Gambar (Maks 20MB, masa berlaku URL 300 detik):
image/jpeg,image/png,image/webp,image/gif - Video (Maks 500MB, masa berlaku URL 600 detik):
video/mp4,video/quicktime(.mov),video/webm
Contoh Permintaan
Section titled “Contoh Permintaan”curl -X POST "https://api.ankk.app/v1/brand/contents/uploads" \ -H "Authorization: Bearer spk_live_xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "filename": "launch-banner.png", "content_type": "image/png", "size": 1420500 }'Contoh Respons (200 OK)
Section titled “Contoh Respons (200 OK)”{ "upload_url": "https://storage.ankk.app/sns-posts/original/brand_.../launch-banner.png?X-Amz-Signature=...", "asset_ref": "https://cdn.ankk.app/sns-posts/original/brand_.../launch-banner.png", "method": "PUT", "object_key": "sns-posts/original/brand_.../launch-banner.png", "content_type": "image/png", "size": 1420500, "expires_in_seconds": 300}Unggah Biner melalui PUT
Section titled “Unggah Biner melalui PUT”curl -X PUT "<upload_url>" \ -H "Content-Type: image/png" \ --data-binary "@/path/to/launch-banner.png"2. Terbitkan Konten (POST /v1/brand/contents)
Section titled “2. Terbitkan Konten (POST /v1/brand/contents)”Kirim teks beserta asset_ref yang diunggah untuk membuat pekerjaan penerbitan.
Bidang Badan Permintaan
Section titled “Bidang Badan Permintaan”| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
connection_id | string | Diperlukan | ID koneksi SNS target (API Koneksi) |
idempotency_key | string | Diperlukan | Kunci unik yang dihasilkan klien untuk mencegah pengiriman duplikat |
text | string | Opsional | Teks isi postingan |
media | array | Opsional | Array objek media dengan url atau asset_ref |
scheduled_for | string | Opsional | Stempel waktu ISO 8601 untuk penjadwalan. Kosongkan untuk penerbitan langsung |
thread_posts | array | Opsional | Postingan tambahan untuk perantaian percakapan Threads |
provider_settings | object | Opsional | Pengaturan khusus platform (misalnya, kategori YouTube) |
Contoh Permintaan (Postingan Langsung)
Section titled “Contoh Permintaan (Postingan Langsung)”curl -X POST "https://api.ankk.app/v1/brand/contents" \ -H "Authorization: Bearer spk_live_xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "connection_id": "conn_01jm8x9k2example", "idempotency_key": "launch-2026-001", "text": "Excited to launch our new product today! 🚀\nhttps://ankk.app", "media": [ { "url": "https://cdn.ankk.app/sns-posts/original/brand_.../launch-banner.png" } ] }'Contoh Respons (202 Accepted)
Section titled “Contoh Respons (202 Accepted)”{ "content_id": "content_01jm8za2example", "status": "scheduled", "publish_job_id": "job_01jm8za2jobexample", "connection_id": "conn_01jm8x9k2example", "idempotency_key": "launch-2026-001"}3. Daftar dan Periksa Konten
Section titled “3. Daftar dan Periksa Konten”Daftar Konten (GET /v1/brand/contents)
Section titled “Daftar Konten (GET /v1/brand/contents)”curl -X GET "https://api.ankk.app/v1/brand/contents?status=published&limit=20" \ -H "Authorization: Bearer spk_live_xxxxxxxx"Ambil Detail Konten (GET /v1/brand/contents/{content_id})
Section titled “Ambil Detail Konten (GET /v1/brand/contents/{content_id})”curl -X GET "https://api.ankk.app/v1/brand/contents/content_01jm8za2example" \ -H "Authorization: Bearer spk_live_xxxxxxxx"4. Batalkan Postingan Terjadwal (DELETE /v1/brand/contents/{content_id}/cancel)
Section titled “4. Batalkan Postingan Terjadwal (DELETE /v1/brand/contents/{content_id}/cancel)”Membatalkan postingan yang berstatus scheduled sebelum eksekusinya dimulai.
curl -X DELETE "https://api.ankk.app/v1/brand/contents/content_01jm8za2example/cancel" \ -H "Authorization: Bearer spk_live_xxxxxxxx"