Lewati ke konten utama

API Kareeb: CRM (2026-11-04)

Download OpenAPI specification:Download

Tarik data CRM, kirim pesan WhatsApp, dan terima webhook dengan token API Kareeb.

Referensi endpoint yang menerima token API Kareeb (awalan kt_). Endpoint layar operator tidak termasuk dan bisa berubah kapan saja; bangun integrasi hanya di atas jalur di halaman ini.

Semua permintaan memakai HTTPS ke https://kareeb.id, badan dan jawaban dalam JSON. Token dibuat oleh admin organisasi di Kareeb (menu Token API) dan hanya ditampilkan sekali. Setiap endpoint menyebut satu izin; token tanpa izin itu dijawab 403 yang menyebut nama izinnya.

Penolakan dengan kode mengirim detail berupa objek: bercabanglah pada code, bukan pada kalimat message. Kolom baru bisa ditambahkan kapan saja, jadi abaikan kolom yang belum Anda kenal.

Token

Memeriksa token yang sedang dipakai.

Identitas token ini

Organisasi dan izin token yang dikirim di header, untuk diperiksa saat sistem Anda pertama kali tersambung. Hanya menerima token API; sesi operator ditolak dengan 403. Daftar scopes mengikuti urutan tetap daftar izin, apa pun urutan saat token dibuat. Token, hash, dan awalannya tidak pernah dikembalikan. Panggilan ini tercatat sebagai pemakaian token.

Izin: tidak perlu izin khusus, cukup token yang masih aktif.

Authorizations:
tokenApi

Responses

Response Schema: application/json
org_id
required
integer

Organisasi tempat token bertindak.

org_name
required
string

Nama organisasi.

token_id
required
integer

Id token.

scopes
required
Array of strings

Izin token, dalam urutan tetap daftar izin.

created_at
required
string <date-time>

Waktu token dibuat.

Response samples

Content type
application/json
{
  • "org_id": 1,
  • "org_name": "Rumah Sakit Sentra",
  • "token_id": 12,
  • "scopes": [
    • "write:messages",
    • "read:templates"
    ],
  • "created_at": "2026-11-04T02:00:00+00:00"
}

Template

Template WhatsApp yang boleh disebut saat mengirim.

Daftar template WhatsApp

Template yang boleh disebut saat mengirim, dari salinan template Meta di Kareeb. Semua status ikut; hanya APPROVED yang bisa dikirim. Tidak berhalaman, paling banyak 500 baris. Template di akun WhatsApp yang tidak lagi dipakai organisasi, dan template di akun yang tidak dipakai cabang mana pun, tidak ditampilkan. Komponen template, id Meta, dan id akun WhatsApp tidak pernah ikut. Daftar ini sesegar sinkronisasi template terakhir; token tidak bisa memulai sinkronisasi, admin melakukannya dari menu Template. Jawaban dikirim dengan Cache-Control: no-store.

Izin: read:templates.

Authorizations:
tokenApi

Responses

Response Headers
Cache-Control
string

Selalu no-store.

Value: "no-store"
Response Schema: application/json
required
Array of objects (Template)
Array
name
string

Nama yang diisi di template.name atau template_name.

language
string

Kode bahasa yang diisi di template.language atau template_language.

category
string or null

Kategori dari Meta: MARKETING, UTILITY, atau AUTHENTICATION.

status
string or null

Status dari Meta saat sinkronisasi terakhir, misalnya APPROVED, PENDING, REJECTED, PAUSED. Hanya APPROVED yang bisa dikirim.

parameter_count
integer

Jumlah variabel badan ({{1}}, {{2}}, dan seterusnya) yang harus diisi di body_params atau params. 0 bila tidak ada.

needs_cta
boolean

true bila template punya tombol tautan dengan variabel, sehingga cta_param wajib diisi.

workspace_id
integer

Cabang yang akun WhatsApp-nya memegang template. Sebut sebagai workspace_id di POST /api/messages. POST /api/broadcasts selalu mengirim dari cabang Utama.

synced_at
string or null <date-time>

Waktu Kareeb terakhir membaca template ini dari Meta.

Response samples

Content type
application/json
{
  • "templates": [
    • {
      }
    ]
}

Kirim

Mengirim pesan WhatsApp ke satu atau banyak pelanggan.

Kirim satu template ke banyak nomor

Membuat kampanye bertanda source=api di antrean yang sama dengan kampanye dari layar, sehingga muncul di halaman Kampanye lengkap dengan corongnya. Hanya WhatsApp. Penerima yang belum ada menjadi kontak baru. Pengiriman berangkat dari cabang Utama. Dengan scheduled_at, kampanye menunggu sampai waktu itu lalu dijalankan oleh penjadwal Kareeb. Kunci idempotency_key yang sama dijawab 200 dengan kampanye pertama dan tidak mengirim apa pun lagi. Permintaan yang ditolak 422 tidak membuat apa pun, sehingga kuncinya tetap bebas dipakai ulang.

Izin: send:broadcast.

Authorizations:
tokenApi
Request Body schema: application/json
required
template_name
required
string non-empty

Harus ada di Kareeb, di akun WhatsApp cabang Utama, dan berstatus APPROVED.

template_language
string non-empty
Default: "id"

Kode bahasa template.

required
Array of objects [ 1 .. 5000 ] items

1 sampai 5.000 penerima per permintaan.

idempotency_key
required
string [ 1 .. 128 ] characters

1 sampai 128 karakter, unik di semua broadcast organisasi.

name
string or null <= 120 characters

Nama di halaman Kampanye. Bawaan: "API: " diikuti nama template.

scheduled_at
string or null <date-time>

Waktu kirim, wajib dengan zona waktu, paling jauh 30 hari ke depan. Kosongkan untuk langsung masuk antrean.

Responses

Response Schema: application/json
id
integer

Id kampanye.

replay
boolean

true bila kunci ini sudah pernah dipakai.

idempotency_key
string

Kunci kampanye.

template_name
string

Nama template.

template_language
string

Kode bahasa template.

scheduled_at
string or null <date-time>

Waktu kirim yang dijadwalkan, atau null.

Array of objects

Penerima yang diterima oleh permintaan ini. Kosong pada replay.

Array of objects

Penerima yang ditolak beserta alasannya. Kiriman tetap berjalan untuk penerima lain. Kosong pada replay.

object

Keadaan antrean saat ini, dibaca langsung.

Response Schema: application/json
id
integer

Id kampanye.

replay
boolean

true bila kunci ini sudah pernah dipakai.

idempotency_key
string

Kunci kampanye.

template_name
string

Nama template.

template_language
string

Kode bahasa template.

scheduled_at
string or null <date-time>

Waktu kirim yang dijadwalkan, atau null.

Array of objects

Penerima yang diterima oleh permintaan ini. Kosong pada replay.

Array of objects

Penerima yang ditolak beserta alasannya. Kiriman tetap berjalan untuk penerima lain. Kosong pada replay.

object

Keadaan antrean saat ini, dibaca langsung.

Request samples

Content type
application/json
{
  • "template_name": "pengingat_kontrol",
  • "template_language": "id",
  • "recipients": [
    • {
      },
    • {
      }
    ],
  • "idempotency_key": "kontrol-2026-11-05",
  • "name": "Pengingat kontrol besok"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "replay": true,
  • "idempotency_key": "string",
  • "template_name": "string",
  • "template_language": "string",
  • "scheduled_at": "2019-08-24T14:15:22Z",
  • "accepted": [
    • {
      }
    ],
  • "refused": [
    • {
      }
    ],
  • "status": {
    • "state": "string",
    • "targeted": 0,
    • "queued": 0,
    • "sent": 0,
    • "failed": 0
    }
}

Kirim satu pesan ke satu pelanggan

Satu teks (hanya di dalam jendela 24 jam) atau satu template yang sudah disetujui, ke satu pelanggan WhatsApp. Isi tepat satu dari to atau contact_id, dan tepat satu dari text atau template. Pemeriksaan berjalan berurutan: batas permintaan per token, kunci, cabang, tujuan, saluran, berhenti berlangganan, lalu jendela 24 jam untuk teks atau syarat template. Pesan tercatat tanpa nama pengirim, ditandai sebagai kiriman API, dan tidak mengambil alih percakapan dari Agen AI. Status kirim selanjutnya datang lewat webhook message.status.

Izin: write:messages.

Authorizations:
tokenApi
Request Body schema: application/json
required
to
string or null

Nomor WhatsApp tujuan, 7 sampai 20 digit format internasional. Tanda plus dan spasi di tepi dibuang. Nomor yang belum dikenal menjadi kontak WhatsApp baru di cabang itu.

contact_id
integer or null

Kontak di cabang tempat panggilan ini berjalan. Isi to atau contact_id, salah satu saja.

text
string or null [ 1 .. 4096 ] characters

Teks bebas, 1 sampai 4096 karakter, hanya di dalam jendela 24 jam. Isi text atau template, salah satu saja.

object or null
idempotency_key
required
string [ 1 .. 128 ] characters

1 sampai 128 karakter, unik per organisasi.

workspace_id
integer or null

Cabang pengirim, harus milik organisasi token. Bawaan: cabang Utama.

Responses

Response Schema: application/json
message_id
integer

Id pesan di Kareeb.

conversation_id
integer

Id percakapan.

wa_message_id
string or null

Id pesan dari Meta. Status kirim di webhook message.status memakai id ini.

contact_id
integer

Id kontak.

replay
boolean

true bila kunci ini sudah pernah dikirim.

Response Schema: application/json
message_id
integer

Id pesan di Kareeb.

conversation_id
integer

Id percakapan.

wa_message_id
string or null

Id pesan dari Meta. Status kirim di webhook message.status memakai id ini.

contact_id
integer

Id kontak.

replay
boolean

true bila kunci ini sudah pernah dikirim.

Request samples

Content type
application/json
Example
{
  • "to": "6281234567890",
  • "template": {
    • "name": "pengingat_kontrol",
    • "language": "id",
    • "body_params": {
      }
    },
  • "idempotency_key": "janji-88123-h1"
}

Response samples

Content type
application/json
{
  • "message_id": 0,
  • "conversation_id": 0,
  • "wa_message_id": "string",
  • "contact_id": 0,
  • "replay": true
}

Tarik data

Membaca data CRM dengan kursor id.

Daftar kontak

Kontak beserta status berhenti berlangganan dan persetujuan terbaru per tujuan. Token API membaca data cabang Utama organisasi Anda. Kontak bisa berubah (label, nama), jadi jalankan jalan penuh dari since_id=0 secara berkala. Kursor id hanya melihat baris baru, tidak melihat perubahan pada baris lama. Lihat panduan Tarik data untuk aturan jalan penuh.

Izin: read:contacts.

Authorizations:
tokenApi
query Parameters
since_id
integer >= 0
Default: 0

Kursor eksklusif: hanya baris dengan id lebih besar dari angka ini. Mulai dari 0.

limit
integer [ 1 .. 1000 ]
Default: 200

Jumlah baris per halaman, 1 sampai 1000.

Responses

Response Schema: application/json
required
Array of objects (Kontak)
count
required
integer

Jumlah baris di halaman ini.

next_since_id
required
integer or null

Id baris terakhir di halaman ini, untuk since_id berikutnya. Null pada halaman kosong.

has_more
required
boolean

Petunjuk saja: true bila halaman ini penuh. Tanda selesai yang pasti adalah items kosong.

Response samples

Content type
application/json
{
  • "items": [
    • {
      }
    ],
  • "count": 0,
  • "next_since_id": 0,
  • "has_more": true
}

Daftar percakapan

Percakapan per kontak dan saluran. Token API membaca data cabang Utama organisasi Anda. Status percakapan bisa berubah, jadi jalankan jalan penuh secara berkala. Kursor id hanya melihat baris baru, tidak melihat perubahan pada baris lama. Lihat panduan Tarik data untuk aturan jalan penuh.

Izin: read:conversations.

Authorizations:
tokenApi
query Parameters
since_id
integer >= 0
Default: 0

Kursor eksklusif: hanya baris dengan id lebih besar dari angka ini. Mulai dari 0.

limit
integer [ 1 .. 1000 ]
Default: 200

Jumlah baris per halaman, 1 sampai 1000.

Responses

Response Schema: application/json
required
Array of objects (Percakapan)
count
required
integer

Jumlah baris di halaman ini.

next_since_id
required
integer or null

Id baris terakhir di halaman ini, untuk since_id berikutnya. Null pada halaman kosong.

has_more
required
boolean

Petunjuk saja: true bila halaman ini penuh. Tanda selesai yang pasti adalah items kosong.

Response samples

Content type
application/json
{
  • "items": [
    • {
      }
    ],
  • "count": 0,
  • "next_since_id": 0,
  • "has_more": true
}

Daftar pesan

Pesan masuk dan keluar beserta status kirim terbaiknya. Mencakup semua cabang organisasi. Isi mentah dari Meta tidak ikut. Tabel ini hanya bertambah, jadi jalan bertahap dengan since_id sudah cukup.

Izin: read:messages.

Authorizations:
tokenApi
query Parameters
since_id
integer >= 0
Default: 0

Kursor eksklusif: hanya baris dengan id lebih besar dari angka ini. Mulai dari 0.

limit
integer [ 1 .. 1000 ]
Default: 200

Jumlah baris per halaman, 1 sampai 1000.

Responses

Response Schema: application/json
required
Array of objects (Pesan)
count
required
integer

Jumlah baris di halaman ini.

next_since_id
required
integer or null

Id baris terakhir di halaman ini, untuk since_id berikutnya. Null pada halaman kosong.

has_more
required
boolean

Petunjuk saja: true bila halaman ini penuh. Tanda selesai yang pasti adalah items kosong.

Response samples

Content type
application/json
{
  • "items": [
    • {
      }
    ],
  • "count": 0,
  • "next_since_id": 0,
  • "has_more": true
}

Daftar kampanye

Kampanye dari layar Kampanye dan dari POST /api/broadcasts. Token API membaca data cabang Utama organisasi Anda. Status kampanye berubah selama pengiriman, jadi jalankan jalan penuh secara berkala. Kursor id hanya melihat baris baru, tidak melihat perubahan pada baris lama. Lihat panduan Tarik data untuk aturan jalan penuh.

Izin: read:campaigns.

Authorizations:
tokenApi
query Parameters
since_id
integer >= 0
Default: 0

Kursor eksklusif: hanya baris dengan id lebih besar dari angka ini. Mulai dari 0.

limit
integer [ 1 .. 1000 ]
Default: 200

Jumlah baris per halaman, 1 sampai 1000.

Responses

Response Schema: application/json
required
Array of objects (Kampanye)
count
required
integer

Jumlah baris di halaman ini.

next_since_id
required
integer or null

Id baris terakhir di halaman ini, untuk since_id berikutnya. Null pada halaman kosong.

has_more
required
boolean

Petunjuk saja: true bila halaman ini penuh. Tanda selesai yang pasti adalah items kosong.

Response samples

Content type
application/json
{
  • "items": [
    • {
      }
    ],
  • "count": 0,
  • "next_since_id": 0,
  • "has_more": true
}

Corong per kampanye

Satu baris per kampanye dengan angka corong yang sama dengan halaman Laporan. Angkanya berubah setiap kali penerima bereaksi, jadi endpoint ini selalu dibaca dengan jalan penuh dari since_id=0. Token API membaca data cabang Utama organisasi Anda.

Izin: read:campaigns.

Authorizations:
tokenApi
query Parameters
since_id
integer >= 0
Default: 0

Kursor eksklusif: hanya baris dengan id lebih besar dari angka ini. Mulai dari 0.

limit
integer [ 1 .. 1000 ]
Default: 200

Jumlah baris per halaman, 1 sampai 1000.

Responses

Response Schema: application/json
required
Array of objects (StatistikKampanye)
count
required
integer

Jumlah baris di halaman ini.

next_since_id
required
integer or null

Id baris terakhir di halaman ini, untuk since_id berikutnya. Null pada halaman kosong.

has_more
required
boolean

Petunjuk saja: true bila halaman ini penuh. Tanda selesai yang pasti adalah items kosong.

Response samples

Content type
application/json
{
  • "items": [
    • {
      }
    ],
  • "count": 0,
  • "next_since_id": 0,
  • "has_more": true
}

Penerima kampanye

Corong per penerima: terkirim, sampai, dibaca, dibalas, diklik, menghasilkan pesanan. Kursornya sendiri, terpisah dari daftar kampanye. Token API membaca data cabang Utama organisasi Anda.

Izin: read:campaigns.

Authorizations:
tokenApi
query Parameters
since_id
integer >= 0
Default: 0

Kursor eksklusif: hanya baris dengan id lebih besar dari angka ini. Mulai dari 0.

limit
integer [ 1 .. 1000 ]
Default: 200

Jumlah baris per halaman, 1 sampai 1000.

campaign_id
integer >= 1

Batasi ke satu kampanye, misalnya id dari jawaban POST /api/broadcasts.

Responses

Response Schema: application/json
required
Array of objects (PenerimaKampanye)
count
required
integer

Jumlah baris di halaman ini.

next_since_id
required
integer or null

Id baris terakhir di halaman ini, untuk since_id berikutnya. Null pada halaman kosong.

has_more
required
boolean

Petunjuk saja: true bila halaman ini penuh. Tanda selesai yang pasti adalah items kosong.

Response samples

Content type
application/json
{
  • "items": [
    • {
      }
    ],
  • "count": 0,
  • "next_since_id": 0,
  • "has_more": true
}

Daftar pesanan

Pesanan yang dibuat di percakapan. Tautan pembayaran tidak ikut. Token API membaca data cabang Utama organisasi Anda. Status pesanan berubah (misalnya menjadi paid), jadi jalankan jalan penuh secara berkala. Kursor id hanya melihat baris baru, tidak melihat perubahan pada baris lama. Lihat panduan Tarik data untuk aturan jalan penuh.

Izin: read:orders.

Authorizations:
tokenApi
query Parameters
since_id
integer >= 0
Default: 0

Kursor eksklusif: hanya baris dengan id lebih besar dari angka ini. Mulai dari 0.

limit
integer [ 1 .. 1000 ]
Default: 200

Jumlah baris per halaman, 1 sampai 1000.

Responses

Response Schema: application/json
required
Array of objects (Pesanan)
count
required
integer

Jumlah baris di halaman ini.

next_since_id
required
integer or null

Id baris terakhir di halaman ini, untuk since_id berikutnya. Null pada halaman kosong.

has_more
required
boolean

Petunjuk saja: true bila halaman ini penuh. Tanda selesai yang pasti adalah items kosong.

Response samples

Content type
application/json
{
  • "items": [
    • {
      }
    ],
  • "count": 0,
  • "next_since_id": 0,
  • "has_more": true
}

Komentar di unggahan sendiri

Komentar masuk di unggahan Instagram dan Halaman Facebook milik organisasi. Amplopnya sendiri: next_since_id berisi id terakhir hanya bila halaman penuh, dan null bila halaman tidak penuh atau kosong. Berhenti saat null, lalu simpan id terbesar yang Anda terima sebagai since_id berikutnya. Saluran yang sakelar komentar sebagai lead-nya mati tidak mengekspor apa pun, termasuk komentar yang tersimpan saat sakelar masih menyala. Token API membaca data cabang Utama organisasi Anda.

Izin: read:comments.

Authorizations:
tokenApi
query Parameters
since_id
integer >= 0
Default: 0

Kursor eksklusif: hanya baris dengan id lebih besar dari angka ini. Mulai dari 0.

limit
integer [ 1 .. 500 ]
Default: 200

Jumlah baris per halaman, 1 sampai 500.

Responses

Response Schema: application/json
required
Array of objects (Komentar)
next_since_id
required
integer or null

Id terakhir bila halaman penuh; null bila tidak penuh atau kosong.

Response samples

Content type
application/json
{
  • "komentar": [
    • {
      }
    ],
  • "next_since_id": 0
}

Satu kontak

Satu kontak menurut id, tanpa kursor dan tanpa halaman. Berguna untuk mencocokkan satu baris tanpa menelusuri seluruh daftar. Kolom persetujuan tidak ada di sini; bacalah dari GET /api/export/contacts. Token API membaca data cabang Utama organisasi Anda.

Izin: read:contacts.

Authorizations:
tokenApi
path Parameters
contact_id
required
integer

Id kontak, sama dengan id di GET /api/export/contacts.

Responses

Response Schema: application/json
id
integer

Id kontak.

wa_id
string

Sama dengan di daftar kontak.

channel
string
Enum: "wa" "ig" "messenger"

Saluran kontak.

phone
string or null

Nomor telepon, bila ada.

bsuid
string or null

Id pengguna khusus bisnis dari Meta.

username
string or null

Nama pengguna WhatsApp, bila ada.

name
string or null

Nama kontak.

object

Data tambahan kontak. Tidak pernah null.

tags
Array of strings

Label kontak. Tidak pernah null.

auto_tags
Array of strings

Bagian dari tags yang diusulkan pelabel otomatis dan belum dibatalkan operator. Tidak pernah null.

opted_out_at
string or null <date-time>

Terisi berarti pelanggan meminta berhenti dikirimi pesan.

blocked_at
string or null <date-time>

Terisi bila WhatsApp melaporkan nomor ini tidak bisa menerima pesan dari bisnis Anda.

object or null

Iklan pertama yang membawa kontak ini, bila ada. Null berarti tidak pernah datang dari iklan.

created_at
string <date-time>

Waktu kontak tercatat.

Response samples

Content type
application/json
{
  • "id": 0,
  • "wa_id": "string",
  • "channel": "wa",
  • "phone": "string",
  • "bsuid": "string",
  • "username": "string",
  • "name": "string",
  • "fields": {
    • "property1": "string",
    • "property2": "string"
    },
  • "tags": [
    • "string"
    ],
  • "auto_tags": [
    • "string"
    ],
  • "opted_out_at": "2019-08-24T14:15:22Z",
  • "blocked_at": "2019-08-24T14:15:22Z",
  • "asal_iklan": {
    • "headline": "string",
    • "source_type": "string",
    • "source_url": "string"
    },
  • "created_at": "2019-08-24T14:15:22Z"
}

Pemantauan

Mengirim sebutan publik ke halaman Pemantauan.

Kirim satu sebutan publik ke halaman Pemantauan

Sistem pemantauan Anda mengirim satu sebutan publik tentang merek (komentar YouTube, unggahan Threads, ulasan Google). Sebutan muncul di halaman Pemantauan cabang Utama, tempat agen CS menanganinya. Ini bukan percakapan, bukan kontak, dan tidak bisa dipakai untuk broadcast. Kunci idempotensinya adalah pasangan sumber dan external_id: kiriman ulang dijawab 200 tanpa menimpa apa pun. Hanya menerima token API; sesi operator ditolak dengan 403. Badan paling besar 16 KB.

Izin: write:pemantauan.

Authorizations:
tokenApi
Request Body schema: application/json
required
sumber
required
string
Enum: "youtube" "threads" "google_reviews" "lainnya"

Asal sebutan. instagram dan facebook ditolak karena komentar di unggahan sendiri sudah masuk lewat Meta.

external_id
required
string [ 1 .. 200 ] characters

Id di platform, 1 sampai 200 karakter. Bersama sumber menjadi kunci idempotensi.

referensi
required
string [ 1 .. 100 ] characters

Id sebutan di sistem Anda, 1 sampai 100 karakter. Dikembalikan di webhook pemantauan.status_changed.

url
required
string <= 2000 characters

Diawali https:// atau http://, paling panjang 2000 karakter. Kareeb tidak membukanya; halaman menampilkannya sebagai tautan.

teks
required
string [ 1 .. 4000 ] characters

1 sampai 4000 karakter.

penulis
string or null <= 120 characters

Nama tampilan, paling panjang 120 karakter.

penulis_ref
string or null <= 64 characters

Nilai pengelompokan dari sistem Anda, paling panjang 64 karakter. Tidak ditampilkan.

diterbitkan_pada
string or null <date-time>

ISO 8601 dengan zona waktu. Lebih dari 5 menit di masa depan ditolak.

sentimen
string or null
Enum: "positif" "netral" "negatif" "perlu ditinjau" null

Label sentimen. Kosong atau null berarti tanpa label.

topik
string or null <= 60 characters

Paling panjang 60 karakter.

kedaluwarsa_pada
string or null <date-time>

Kapan teks harus dihapus. Dibatasi oleh masa simpan Pemantauan di Kareeb; kosong berarti batas itu.

Responses

Response Schema: application/json
id
integer

Id sebutan di Kareeb.

status
string
Enum: "baru" "ditangani" "dibalas" "diabaikan"

Status saat ini.

replay
boolean

true bila pasangan sumber dan external_id sudah ada.

url_crm
string

Jalur halaman Pemantauan untuk sebutan ini.

Response Schema: application/json
id
integer

Id sebutan di Kareeb.

status
string
Enum: "baru" "ditangani" "dibalas" "diabaikan"

Status saat ini.

replay
boolean

true bila pasangan sumber dan external_id sudah ada.

url_crm
string

Jalur halaman Pemantauan untuk sebutan ini.

Request samples

Content type
application/json
{
  • "sumber": "youtube",
  • "external_id": "Ugx-contoh-komentar",
  • "referensi": "sebutan-4821",
  • "teks": "Pengirimannya lama sekali.",
  • "penulis": "Pemirsa Contoh",
  • "penulis_ref": "a1b2c3",
  • "diterbitkan_pada": "2026-10-24T09:00:00+07:00",
  • "sentimen": "negatif",
  • "topik": "pengiriman",
  • "kedaluwarsa_pada": "2026-11-23T09:00:00+07:00"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "status": "baru",
  • "replay": true,
  • "url_crm": "string"
}

Hapus isi satu sebutan

Menghapus teks, penulis, penulis_ref, dan url satu sebutan; barisnya, id, dan statusnya tetap. Pakai saat platform menghapus komentar itu atau masa simpan sistem Anda habis. Aman diulang: sebutan yang tidak dikenal dijawab 200 dengan ditemukan false. Tetap berjalan untuk organisasi yang dinonaktifkan atau berstatus baca saja, karena penghapusan adalah kewajiban. Penghitung permintaan dipakai bersama dengan /api/pemantauan/masuk.

Izin: write:pemantauan.

Authorizations:
tokenApi
Request Body schema: application/json
required
sumber
required
string
Enum: "youtube" "threads" "google_reviews" "lainnya"

Sama dengan saat dikirim.

external_id
required
string [ 1 .. 200 ] characters

Sama dengan saat dikirim.

Responses

Response Schema: application/json
ditemukan
boolean

Sebutan ada.

dihapus
boolean

Isinya dihapus oleh permintaan ini. false bila sudah terhapus sebelumnya atau tidak ditemukan.

id
integer or null

Id sebutan, atau null bila tidak ditemukan.

Request samples

Content type
application/json
{
  • "sumber": "youtube",
  • "external_id": "Ugx-contoh-komentar"
}

Response samples

Content type
application/json
{
  • "ditemukan": true,
  • "dihapus": true,
  • "id": 7
}

Panggilan suara

Token panggilan Agen AI suara untuk aplikasi Anda.

Minta token panggilan suara untuk satu sesi aplikasi

Backend aplikasi Anda meminta token berumur pendek, lalu aplikasi membuka panggilan langsung ke mesin suara dengan token itu. Kunci API mesin suara tetap di Kareeb. Berikan user_id apa adanya sebagai userId di SDK browser mesin suara, karena dari situlah transkrip panggilan menemukan cabang dan sesi ini. Minta token tepat sebelum setiap panggilan. Jangan menaruh nama, nomor rekam medis, atau nomor telepon di session_ref. Selesainya panggilan dikabarkan lewat webhook call.finished.

Izin: write:suara.

Authorizations:
tokenApi
Request Body schema: application/json
required
session_ref
required
string [ 1 .. 120 ] characters

Id sesi buram dari sistem Anda, 1 sampai 120 karakter yang dapat dicetak.

workspace_id
integer or null

Cabang, harus milik organisasi token. Bawaan: cabang Utama.

Responses

Response Schema: application/json
token
string

Token untuk SDK browser mesin suara.

agent_id
string

Agen suara yang menjawab.

conversation_id
string or null

Id dari mesin suara, bila ada.

user_id
string

Berikan apa adanya sebagai userId di SDK.

expires_at
null

Selalu null karena mesin suara tidak menyebut umur token. Minta token baru tepat sebelum setiap panggilan.

Request samples

Content type
application/json
{
  • "session_ref": "sesi-7f3a9c",
  • "workspace_id": 4
}

Response samples

Content type
application/json
{
  • "token": "...",
  • "agent_id": "...",
  • "conversation_id": "...",
  • "user_id": "4:sesi-7f3a9c",
  • "expires_at": null
}

Webhook

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Lead baru dibuka Webhook

Kartu baru muncul di Pipeline, dari percakapan atau dibuat operator. data berisi baris lead.

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Authorizations:
tokenApi
header Parameters
X-Kareeb-Signature
required
string

HMAC-SHA256 dari byte badan mentah dengan secret webhook, hex huruf kecil, tanpa awalan sha256=.

X-Kareeb-Event
required
string

Nama peristiwa, sama dengan event di badan.

X-Kareeb-Delivery
required
string

Id kiriman ke endpoint Anda. Sama pada setiap percobaan ulang kiriman yang sama, berbeda untuk setiap endpoint.

Request Body schema: application/json
required
id
required
string <uuid>

Id kejadian (UUID). Sama di semua percobaan ulang; pakai untuk membuang duplikat.

timestamp
required
string <date-time>

Waktu kejadian diantrekan.

event
required
string

Nama peristiwa.

Value: "lead.created"
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "0b6f2c1e-6d0a-4f7b-9a51-3c2d8e4f1a20",
  • "timestamp": "2026-11-04T03:15:02+00:00",
  • "event": "lead.created",
  • "data": {
    • "id": 31,
    • "contact_id": 88,
    • "conversation_id": 412,
    • "stage": "incoming",
    • "value_idr": null,
    • "note": null,
    • "created_at": "2026-11-04T03:00:00+00:00",
    • "updated_at": "2026-11-04T03:00:00+00:00"
    }
}

Lead pindah tahap Webhook

Kartu dipindah ke tahap lain. data berisi baris lead beserta from_stage. Hanya dikirim bila tahapnya benar berubah.

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Authorizations:
tokenApi
header Parameters
X-Kareeb-Signature
required
string

HMAC-SHA256 dari byte badan mentah dengan secret webhook, hex huruf kecil, tanpa awalan sha256=.

X-Kareeb-Event
required
string

Nama peristiwa, sama dengan event di badan.

X-Kareeb-Delivery
required
string

Id kiriman ke endpoint Anda. Sama pada setiap percobaan ulang kiriman yang sama, berbeda untuk setiap endpoint.

Request Body schema: application/json
required
id
required
string <uuid>

Id kejadian (UUID). Sama di semua percobaan ulang; pakai untuk membuang duplikat.

timestamp
required
string <date-time>

Waktu kejadian diantrekan.

event
required
string

Nama peristiwa.

Value: "lead.stage_changed"
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "0b6f2c1e-6d0a-4f7b-9a51-3c2d8e4f1a20",
  • "timestamp": "2026-11-04T03:15:02+00:00",
  • "event": "lead.stage_changed",
  • "data": {
    • "id": 31,
    • "contact_id": 88,
    • "conversation_id": 412,
    • "stage": "qualified",
    • "value_idr": 1500000,
    • "note": null,
    • "created_at": "2026-11-04T03:00:00+00:00",
    • "updated_at": "2026-11-04T05:10:00+00:00",
    • "from_stage": "incoming"
    }
}

Pesan masuk dari pelanggan Webhook

Pelanggan mengirim pesan. data memakai nama kolom yang sama dengan GET /api/export/messages, ditambah wa_id, contact_name, dan channel kontak. Webhook ini memuat isi pesan dan nomor pelanggan.

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Authorizations:
tokenApi
header Parameters
X-Kareeb-Signature
required
string

HMAC-SHA256 dari byte badan mentah dengan secret webhook, hex huruf kecil, tanpa awalan sha256=.

X-Kareeb-Event
required
string

Nama peristiwa, sama dengan event di badan.

X-Kareeb-Delivery
required
string

Id kiriman ke endpoint Anda. Sama pada setiap percobaan ulang kiriman yang sama, berbeda untuk setiap endpoint.

Request Body schema: application/json
required
id
required
string <uuid>

Id kejadian (UUID). Sama di semua percobaan ulang; pakai untuk membuang duplikat.

timestamp
required
string <date-time>

Waktu kejadian diantrekan.

event
required
string

Nama peristiwa.

Value: "message.inbound"
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "0b6f2c1e-6d0a-4f7b-9a51-3c2d8e4f1a20",
  • "timestamp": "2026-11-04T03:15:02+00:00",
  • "event": "message.inbound",
  • "data": {
    • "id": 9140,
    • "conversation_id": 412,
    • "contact_id": 88,
    • "direction": "in",
    • "wa_message_id": "wamid.HBgN...",
    • "msg_type": "text",
    • "body": "Baik, saya datang hari Selasa.",
    • "media_id": null,
    • "media_mime": null,
    • "created_at": "2026-11-04T03:20:00+00:00",
    • "wa_id": "6281234567890",
    • "contact_name": "Budi",
    • "channel": "wa"
    }
}

Kampanye selesai Webhook

Antrean kampanye habis. data berisi baris kampanye yang dibaca ulang setelah selesai, sehingga state sudah done.

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Authorizations:
tokenApi
header Parameters
X-Kareeb-Signature
required
string

HMAC-SHA256 dari byte badan mentah dengan secret webhook, hex huruf kecil, tanpa awalan sha256=.

X-Kareeb-Event
required
string

Nama peristiwa, sama dengan event di badan.

X-Kareeb-Delivery
required
string

Id kiriman ke endpoint Anda. Sama pada setiap percobaan ulang kiriman yang sama, berbeda untuk setiap endpoint.

Request Body schema: application/json
required
id
required
string <uuid>

Id kejadian (UUID). Sama di semua percobaan ulang; pakai untuk membuang duplikat.

timestamp
required
string <date-time>

Waktu kejadian diantrekan.

event
required
string

Nama peristiwa.

Value: "campaign.finished"
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "0b6f2c1e-6d0a-4f7b-9a51-3c2d8e4f1a20",
  • "timestamp": "2026-11-04T03:15:02+00:00",
  • "event": "campaign.finished",
  • "data": {
    • "id": 42,
    • "name": "Pengingat kontrol besok",
    • "template_name": "pengingat_kontrol",
    • "template_language": "id",
    • "segment_id": null,
    • "cta_target_url": null,
    • "ignore_duplicates": false,
    • "state": "done",
    • "pause_reason": null,
    • "source": "api",
    • "cost": null,
    • "scheduled_at": null,
    • "variabel": [ ],
    • "jeda_otomatis": null,
    • "lanjut_pada": null,
    • "created_at": "2026-11-04T01:00:00+00:00",
    • "started_at": "2026-11-04T01:00:02+00:00",
    • "finished_at": "2026-11-04T01:04:40+00:00"
    }
}

Status percakapan berubah Webhook

Percakapan ditutup, dibuka lagi, atau dikembalikan ke antrean. Hanya id dan status, tanpa isi pesan. Hanya dikirim bila statusnya benar berubah.

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Authorizations:
tokenApi
header Parameters
X-Kareeb-Signature
required
string

HMAC-SHA256 dari byte badan mentah dengan secret webhook, hex huruf kecil, tanpa awalan sha256=.

X-Kareeb-Event
required
string

Nama peristiwa, sama dengan event di badan.

X-Kareeb-Delivery
required
string

Id kiriman ke endpoint Anda. Sama pada setiap percobaan ulang kiriman yang sama, berbeda untuk setiap endpoint.

Request Body schema: application/json
required
id
required
string <uuid>

Id kejadian (UUID). Sama di semua percobaan ulang; pakai untuk membuang duplikat.

timestamp
required
string <date-time>

Waktu kejadian diantrekan.

event
required
string

Nama peristiwa.

Value: "conversation.status_changed"
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "0b6f2c1e-6d0a-4f7b-9a51-3c2d8e4f1a20",
  • "timestamp": "2026-11-04T03:15:02+00:00",
  • "event": "conversation.status_changed",
  • "data": {
    • "conversation_id": 412,
    • "from_status": "open",
    • "status": "closed"
    }
}

Status sebutan Pemantauan berubah Webhook

Operator mengubah status sebutan yang dikirim lewat POST /api/pemantauan/masuk. Hanya id dan status, tanpa teks, penulis, atau nama operator. dibalas adalah keterangan operator; Kareeb tidak bisa memeriksa balasan di platform lain.

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Authorizations:
tokenApi
header Parameters
X-Kareeb-Signature
required
string

HMAC-SHA256 dari byte badan mentah dengan secret webhook, hex huruf kecil, tanpa awalan sha256=.

X-Kareeb-Event
required
string

Nama peristiwa, sama dengan event di badan.

X-Kareeb-Delivery
required
string

Id kiriman ke endpoint Anda. Sama pada setiap percobaan ulang kiriman yang sama, berbeda untuk setiap endpoint.

Request Body schema: application/json
required
id
required
string <uuid>

Id kejadian (UUID). Sama di semua percobaan ulang; pakai untuk membuang duplikat.

timestamp
required
string <date-time>

Waktu kejadian diantrekan.

event
required
string

Nama peristiwa.

Value: "pemantauan.status_changed"
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "0b6f2c1e-6d0a-4f7b-9a51-3c2d8e4f1a20",
  • "timestamp": "2026-11-04T03:15:02+00:00",
  • "event": "pemantauan.status_changed",
  • "data": {
    • "pemantauan_id": 7,
    • "referensi": "sebutan-4821",
    • "sumber": "youtube",
    • "external_id": "Ugx-contoh-komentar",
    • "from_status": "baru",
    • "status": "ditangani",
    • "at": "2026-11-04T04:00:00+00:00"
    }
}

Status kirim pesan Webhook

Meta melaporkan sent, delivered, read, atau failed untuk pesan yang dikirim Kareeb, dari API, broadcast, maupun kotak masuk. Hanya id dan status, tanpa teks atau nomor telepon. Status yang diulang Meta diantrekan lagi, jadi buang duplikat dengan pasangan wa_message_id dan status.

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Authorizations:
tokenApi
header Parameters
X-Kareeb-Signature
required
string

HMAC-SHA256 dari byte badan mentah dengan secret webhook, hex huruf kecil, tanpa awalan sha256=.

X-Kareeb-Event
required
string

Nama peristiwa, sama dengan event di badan.

X-Kareeb-Delivery
required
string

Id kiriman ke endpoint Anda. Sama pada setiap percobaan ulang kiriman yang sama, berbeda untuk setiap endpoint.

Request Body schema: application/json
required
id
required
string <uuid>

Id kejadian (UUID). Sama di semua percobaan ulang; pakai untuk membuang duplikat.

timestamp
required
string <date-time>

Waktu kejadian diantrekan.

event
required
string

Nama peristiwa.

Value: "message.status"
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "0b6f2c1e-6d0a-4f7b-9a51-3c2d8e4f1a20",
  • "timestamp": "2026-11-04T03:15:02+00:00",
  • "event": "message.status",
  • "data": {
    • "message_id": 9137,
    • "conversation_id": 412,
    • "wa_message_id": "wamid.HBgM...",
    • "status": "failed",
    • "occurred_at": "2026-11-04T03:15:00+00:00",
    • "failure_reason": "Message undeliverable"
    }
}

Panggilan suara selesai Webhook

Panggilan Agen AI suara di aplikasi Anda berakhir. Tanpa transkrip dan tanpa ringkasan.

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Authorizations:
tokenApi
header Parameters
X-Kareeb-Signature
required
string

HMAC-SHA256 dari byte badan mentah dengan secret webhook, hex huruf kecil, tanpa awalan sha256=.

X-Kareeb-Event
required
string

Nama peristiwa, sama dengan event di badan.

X-Kareeb-Delivery
required
string

Id kiriman ke endpoint Anda. Sama pada setiap percobaan ulang kiriman yang sama, berbeda untuk setiap endpoint.

Request Body schema: application/json
required
id
required
string <uuid>

Id kejadian (UUID). Sama di semua percobaan ulang; pakai untuk membuang duplikat.

timestamp
required
string <date-time>

Waktu kejadian diantrekan.

event
required
string

Nama peristiwa.

Value: "call.finished"
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "0b6f2c1e-6d0a-4f7b-9a51-3c2d8e4f1a20",
  • "timestamp": "2026-11-04T03:15:02+00:00",
  • "event": "call.finished",
  • "data": {
    • "call_id": 55,
    • "channel": "app",
    • "conversation_id": 420,
    • "contact_id": 91,
    • "session_ref": "sesi-7f3a9c",
    • "duration_s": 184,
    • "outcome": "completed",
    • "handoff": false,
    • "ended_at": "2026-11-04T06:03:04+00:00"
    }
}

Sambungan model Agen AI berubah Webhook

Sambungan ke model Agen AI berganti antara menjawab dan gagal. Dikirim hanya saat berganti, tanpa kunci dan tanpa isi jawaban.

Semua webhook memakai amplop yang sama: id, timestamp, event, data. Kareeb menandatangani byte badan persis seperti dikirim; hitung HMAC-SHA256 dari byte mentah itu dengan secret webhook (hex huruf kecil) lalu bandingkan dengan X-Kareeb-Signature memakai perbandingan waktu tetap. Jawab 2xx dalam 10 detik. Kiriman yang gagal dicoba lagi pada putaran penjadwal berikutnya, sekitar tiap 5 menit, paling banyak 5 kali. Setelah 10 kegagalan berturut-turut, langganan dinonaktifkan dan admin perlu mengaktifkannya lagi. Pengiriman bersifat at least once: buang duplikat dengan id di badan, yang sama untuk satu kejadian di semua endpoint dan semua percobaan.

Authorizations:
tokenApi
header Parameters
X-Kareeb-Signature
required
string

HMAC-SHA256 dari byte badan mentah dengan secret webhook, hex huruf kecil, tanpa awalan sha256=.

X-Kareeb-Event
required
string

Nama peristiwa, sama dengan event di badan.

X-Kareeb-Delivery
required
string

Id kiriman ke endpoint Anda. Sama pada setiap percobaan ulang kiriman yang sama, berbeda untuk setiap endpoint.

Request Body schema: application/json
required
id
required
string <uuid>

Id kejadian (UUID). Sama di semua percobaan ulang; pakai untuk membuang duplikat.

timestamp
required
string <date-time>

Waktu kejadian diantrekan.

event
required
string

Nama peristiwa.

Value: "agen_ai.sambungan"
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "0b6f2c1e-6d0a-4f7b-9a51-3c2d8e4f1a20",
  • "timestamp": "2026-11-04T03:15:02+00:00",
  • "event": "agen_ai.sambungan",
  • "data": {
    • "status": "gagal",
    • "kode": 0,
    • "host": "",
    • "sejak": "2026-11-04T07:00:00+00:00"
    }
}