Detector404 DETECTOR404 detektor gangguan
Alat
TLS/SSL Watch Daftar sensor
GeoPinger.net
Dokumentasi Kontak
Detektor Gangguan Indonesia
FAQ API Kebijakan
  • Berapakah batas tanggung jawab Detector404?
  • Kemampuan apa saja yang disediakan oleh alat «Analitik»?
  • Bisakah saya membandingkan situs web saya dengan situs web pesaing?
  • Bisakah saya mengetahui mengapa sebuah situs web tidak berfungsi?
  • Bagaimana cara mengetahui lonjakan keluhan di situs secara real-time?
  • Apa itu waktu respons?
  • Apa itu ketidaktersediaan sumber daya?
  • Apa perbedaan antara istilah: malfungsi, kegagalan, cacat, kerusakan, dan gangguan?
  • Pemeriksaan situs web apa saja yang Anda sediakan?
  • Metode notifikasi apa saja yang tersedia?
  • Mekanisme anti-fraud apa yang terintegrasi ke dalam platform Anda?
  • Apakah Anda mengumpulkan data pribadi dalam keluhan?
  • Autentikasi
  • Batasan API
  • /api/v1/whitelist
  • /api/v1/alerts
  • /api/v1/alerts/filtered
  • /api/v1/branches
  • /api/v1/services
  • /api/v1/services/branch/{branch}
  • /api/v1/service/{service}/alerts
  • /api/v1/service/{service}/alerts/filtered
  • /api/v1/service/{service}/comments/date/{date}
  • /api/v1/service/{service}/graph/date/{date}
  • /api/v1/service/{service}/stats/date/{date}
  • /api/v1/service/{service}/problems/date/{date}
  • /api/v1/service/{service}/status
  • /api/v1/service/{service}/urls
  • Syarat Penggunaan
  • Kebijakan Privasi
  • Kebijakan Cookie

Autentikasi

Untuk menggunakan API, Anda harus memiliki akun aktif dalam sistem dan token otorisasi. Token otorisasi dapat dibuat di profil pribadi pada bagian «API».

  1. Buka profil pengguna Anda dengan mengklik ikon pengguna di sudut kanan atas layar.
  2. Pada menu yang terbuka «profil»; lalu, pada menu di sebelah kiri, pilih «API».
  3. Klik tombol «buat».
  4. Salin token yang diperoleh

Menggunakan token yang dibuat

Token yang dibuat harus disertakan dalam header HTTP Authorization untuk semua permintaan API.

Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU

Contoh permintaan untuk mengambil peristiwa aktif menggunakan utilitas curl (silakan ganti dengan token Anda):

curl --location 'https://detector404.id/api/v1/alerts' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Batasan API

Anda dapat meminta data untuk satu bulan, kuartal, atau tahun (tergantung pada izin akun Anda). Frekuensi permintaan ke API tunduk pada batasan berikut:

  1. Untuk mendapatkan informasi tentang alamat IP (geoip) — tidak lebih dari 15 permintaan per detik;
  2. Untuk semua jenis permintaan lainnya — tidak lebih dari 20 permintaan per detik.

"Daftar putih"

Metode untuk mendapatkan daftar alamat dari mana DownDetector melakukan pemeriksaan ketersediaan

URL

/api/v1/whitelist

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • ip - Alamat IP titik;
  • city - kota lokasi titik;
  • active - nilai boolean yang menunjukkan apakah titik tersebut sedang aktif saat ini.

Catatan

Metode ini menggunakan token otorisasi terpisah, tersedia untuk mitra berdasarkan permintaan.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/whitelist' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

[ { "ip": "146.185.199.33", "city": "Jakarta", "active": true }, { "ip": "95.46.196.233", "city": "Surabaya", "active": true }, { "ip": "5.101.218.215", "city": "Medan", "active": true } ]

Peristiwa

Metode untuk mengambil peristiwa aktif saat ini

URL

/api/v1/alerts

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan apakah permintaan berhasil;
  • error - opsional: string yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array data.

Array data terdiri dari objek dengan field wajib berikut:

  • id - pengidentifikasi peristiwa, bilangan bulat;
  • time - waktu mulai peristiwa, string dalam format ISO;
  • type - jenis peristiwa, string.

Jenis peristiwa yang mungkin dan field tambahan, spesifik untuk setiap jenis:

  • url - halaman tidak tersedia, field tambahan:

    • url - URL halaman yang dipantau;
    • service - nama layanan tempat halaman tersebut ditugaskan;
    • num - jumlah kota dari mana halaman ini tidak dapat diakses.
  • latency - penundaan respons yang signifikan untuk halaman dari penyedia tertentu di kota tertentu, dengan field tambahan:

    • url - URL halaman yang dipantau;
    • service - nama layanan tempat halaman tersebut ditugaskan;
    • provider - penyedia yang melaluinya penundaan lebih tinggi diamati;
    • place - kota tempat penundaan tinggi diamati;
    • num - nilai penundaan yang terukur, dalam detik.
  • isp - masalah dengan penyedia di kota, field tambahan:

    • provider - penyedia yang melaluinya sejumlah besar halaman tidak dapat diakses diamati;
    • place - kota tempat hal ini terjadi;
    • num - jumlah halaman yang tidak dapat diakses melalui penyedia.
  • city - masalah di kota, field tambahan:

    • place - kota tempat masalah mungkin terjadi;
    • num - jumlah titik pemantauan lain dari mana kota tersebut tidak dapat diakses.
  • complaints - lonjakan keluhan pengguna, field tambahan:

    • service - nama layanan yang dikeluhkan pengguna;
    • num - jumlah keluhan yang diterima selama 15 menit terakhir.
  • function - fungsi layanan tertentu telah berhenti bekerja, dengan field tambahan:

    • service - nama layanan;
    • function - nama fungsi;
    • num - pengidentifikasi numerik fungsi.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/alerts' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ { "id": 17112941194, "time": "2024-03-24T15:28:07.717409+00:00", "type": "complaints", "service": "RCTI", "num": 14 }, { "id": 17112941193, "time": "2024-03-24T15:28:07.717409+00:00", "type": "latency", "provider": "IndiHome", "place": "Bandung", "url": "https://bandungkota.go.id/", "service": "Kota Bandung", "num": 11.794 }, { "id": 17112926215, "time": "2024-03-24T15:03:41.542004+00:00", "type": "url", "url": "https://persija.id", "service": "Persija Jakarta", "num": 5 } ] }

Respons jika terjadi kesalahan:

``` { "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

```

Peristiwa Terfilter

Metode untuk mendapatkan peristiwa aktif saat ini yang melebihi ambang batas yang ditentukan di profil pengguna

URL

/api/v1/alerts/filtered

Metode

GET

Deskripsi data yang dikembalikan

Satu-satunya perbedaan dari metode /alerts adalah bahwa metode ini mengembalikan bukan semua peristiwa saat ini, tetapi hanya peristiwa yang nilai parameter tambahan num-nya tidak kurang dari ambang batas yang ditentukan di profil pengguna untuk jenis peristiwa tersebut.

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan apakah permintaan berhasil;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array data.

Array data terdiri dari objek dengan field wajib berikut:

  • id - pengidentifikasi peristiwa, bilangan bulat;
  • time - waktu mulai peristiwa, string dalam format ISO;
  • type - jenis peristiwa, string.

Jenis peristiwa yang mungkin dan field tambahan, spesifik untuk setiap jenis:

  • url - halaman tidak tersedia, field tambahan:

    • url - URL halaman yang dipantau;
    • service - nama layanan tempat halaman tersebut ditugaskan;
    • num - jumlah kota dari mana halaman ini tidak dapat diakses.
  • latency - penundaan respons yang signifikan dari halaman dari penyedia tertentu di kota tertentu, dengan field tambahan:

    • url - URL halaman yang dipantau;
    • service - nama layanan tempat halaman tersebut ditugaskan;
    • provider - penyedia yang melaluinya penundaan signifikan diamati;
    • place - kota tempat penundaan besar diamati;
    • num - nilai penundaan yang terukur, dalam detik.
  • isp - masalah dengan penyedia di kota, dengan field tambahan:

    • provider - penyedia yang melaluinya sejumlah besar halaman tidak dapat diakses diamati;
    • place - kota tempat hal ini terjadi;
    • num - jumlah halaman yang tidak dapat diakses melalui penyedia.
  • city - masalah di kota, dengan field tambahan:

    • place - kota tempat masalah mungkin terjadi;
    • num - jumlah titik pemantauan lain dari mana kota tersebut tidak dapat diakses.
  • complaints - lonjakan keluhan pengguna, dengan field tambahan:

    • service - nama layanan yang dikeluhkan pengguna;
    • num - jumlah keluhan yang diterima dalam 15 menit terakhir.
  • function - fungsi layanan tertentu telah berhenti bekerja, dengan field tambahan:

    • service - nama layanan;
    • function - nama fungsi;
    • num - pengidentifikasi numerik fungsi.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/alerts/filtered' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ { "id": 17112941194, "time": "2024-03-24T15:28:07.717409+00:00", "type": "complaints", "service": "RCTI", "num": 14 }, { "id": 17112941193, "time": "2024-03-24T15:28:07.717409+00:00", "type": "latency", "provider": "IndiHome", "place": "Bandung", "url": "https://bandungkota.go.id/", "service": "Kota Bandung", "num": 11.794 }, { "id": 17112926215, "time": "2024-03-24T15:03:41.542004+00:00", "type": "url", "url": "https://persija.id", "service": "Persija Jakarta", "num": 5 } ] }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Industri

Metode untuk mengambil daftar industri dalam klasifikasi layanan

URL

/api/v1/branches

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array string yang berisi nama-nama industri.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/branches' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ "Agriculture and Food Industry", "Energy", "International Resources", "Utilities and Public Services", "Metals and Mining", "Oil and Gas", "Defense Industry and Machinery", "Travel and Tourism", "Telecommunications" ] }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Layanan

Metode untuk mengambil daftar layanan

URL

/api/v1/services

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array data.

Array data terdiri dari objek dengan field wajib berikut:

  • name - nama layanan;
  • urlname - nama khusus layanan, yang diizinkan dalam URI;
  • ecosystem - nama ekosistem tempatnya berada, atau null;
  • urls - jumlah URL yang dipantau yang terkait dengan layanan;
  • brunches - array nama industri tempat layanan tersebut ditugaskan.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/services' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ { "name": "Provinsi Jawa Barat", "urlname": "provinsi-jawa-barat", "ecosystem": null, "urls": 1, "branches": [ "Daerah" ] }, { "name": "Bank BCA", "urlname": "bank-bca", "ecosystem": "BCA Ecosystem", "urls": 12, "branches": [ "Keuangan" ] } ] }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Layanan Industri

Metode untuk mendapatkan daftar layanan dalam industri tertentu

URL

/api/v1/services/branch/{branch}

Nilai yang dapat diganti:

  • {branch} - nama industri, yang layanan terkaitnya diminta.

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array data.

Array data terdiri dari objek dengan field wajib berikut:

  • name - nama layanan;
  • urlname - nama layanan khusus, yang diizinkan dalam URI;
  • ecosystem - nama ekosistem tempatnya berada, atau null;
  • urls - jumlah URL yang dipantau yang terkait dengan layanan dan industri yang ditentukan.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/services/branch/Finance' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ { "name": "Bank BCA", "urlname": "bank-bca", "ecosystem": "BCA Ecosystem", "urls": 12 }, { "name": "Bank Mandiri", "urlname": "bank-mandiri", "ecosystem": null, "urls": 5 } ] }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Peristiwa Layanan

Metode untuk mendapatkan peristiwa layanan aktif saat ini berdasarkan data pemantauan

URL

/api/v1/service/{service}/alerts

Nilai yang dapat diganti:

  • {service} - nama layanan yang datanya diminta;

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array data.

Array data terdiri dari objek dengan field wajib berikut:

  • id - pengidentifikasi peristiwa, bilangan bulat;
  • time - waktu mulai peristiwa, string dalam format ISO;
  • type - jenis peristiwa, string.

Jenis peristiwa yang mungkin dan field tambahan, spesifik untuk setiap jenis:

  • url - halaman tidak tersedia, field tambahan:

    • url - URL halaman yang dipantau;
    • service - nama layanan tempat halaman tersebut ditugaskan;
    • num - jumlah kota dari mana halaman ini tidak dapat diakses.
  • latency - penundaan respons yang signifikan dari halaman web dari penyedia tertentu di kota tertentu, dengan field tambahan:

    • url - URL halaman yang dipantau;
    • service - nama layanan tempat halaman tersebut ditugaskan;
    • provider - penyedia yang melaluinya penundaan signifikan diamati;
    • place - kota tempat penundaan besar diamati;
    • num - nilai penundaan yang terukur, dalam detik.
  • isp - masalah dengan penyedia di kota (berlaku jika layanan adalah penyedia komunikasi), dengan field tambahan:

    • provider - penyedia yang melaluinya sejumlah besar halaman tidak dapat diakses diamati;
    • place - kota tempat hal ini terjadi;
    • num - jumlah halaman yang tidak dapat diakses melalui penyedia.
  • complaints - lonjakan keluhan pengguna, dengan field tambahan:

    • service - nama layanan yang dikeluhkan pengguna;
    • num - jumlah keluhan yang diterima dalam 15 menit terakhir.
  • function - fungsi layanan tertentu telah berhenti bekerja, dengan field tambahan:

    • service - nama layanan;
    • function - nama fungsi;
    • num - pengidentifikasi numerik fungsi.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/service/Unired/alerts' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ { "id": 17350524178, "time": "2024-12-24T14:02:52.724695+00:00", "type": "url", "url": "https://gojek.com", "service": "Gojek", "place": "id", "num": 31, "private": false }, { "id": 17350524134, "time": "2024-12-24T14:02:15.269713+00:00", "type": "latency", "provider": "MyRepublic", "place": "Surabaya", "url": "https://gojek.com", "service": "Gojek", "num": 0.658, "private": false }, { "id": 17350521990, "time": "2024-12-24T13:59:14.799644+00:00", "type": "latency", "provider": "Telkomsel", "place": "Jakarta", "url": "https://gojek.com", "service": "Gojek", "num": 1.256, "private": false }, { "id": 17350486902, "time": "2024-12-24T13:10:06.590936+00:00", "type": "latency", "provider": "IndiHome", "place": "Makassar", "url": "https://gojek.com", "service": "Gojek", "num": 0.651, "private": false } ] }

Jawaban:

{ "success": true, "data": [ { "id": 17350524178, "time": "2024-12-24T14:02:52.724695+00:00", "type": "isp", "provider": "Biznet", "place": "Jakarta", "num": 152 }, { "id": 17350524134, "type": "complaints", "time": "2024-12-24T14:02:15.269713+00:00", "service": "Tokopedia", "num": 351 }, { "id": 17350521990, "time": "2024-12-24T13:59:14.799644+00:00", "type": "function", "service": "Tokopedia", "function": "Pesanan", "num": 101 } ] }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Peristiwa layanan terfilter

Metode untuk mengambil peristiwa layanan saat ini yang melebihi ambang batas yang ditentukan di profil pengguna

URL

/api/v1/service/{service}/alerts/filtered

Nilai yang dapat diganti:

  • {service} - nama layanan yang datanya diminta;

Metode

GET

Deskripsi data yang dikembalikan

Satu-satunya perbedaan dari metode /service/{service}/alerts adalah bahwa metode ini mengembalikan bukan semua peristiwa layanan saat ini, tetapi hanya peristiwa yang nilai parameter tambahan num-nya tidak kurang dari ambang batas yang ditentukan di profil pengguna untuk jenis peristiwa tersebut.

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array data.

Array data terdiri dari objek dengan field wajib berikut:

  • id - pengidentifikasi peristiwa, bilangan bulat;
  • time - waktu mulai peristiwa, string dalam format ISO;
  • type - jenis peristiwa, string.

Jenis peristiwa yang mungkin dan field tambahan, spesifik untuk setiap jenis:

  • url - halaman tidak tersedia, field tambahan:

    • url - URL halaman yang dipantau;
    • service - nama layanan tempat halaman tersebut ditugaskan;
    • num - jumlah kota dari mana halaman ini tidak dapat diakses.
  • latency - penundaan respons yang signifikan dari halaman web dari penyedia tertentu di kota tertentu, dengan field tambahan:

    • url - URL halaman yang dipantau;
    • service - nama layanan tempat halaman tersebut ditugaskan;
    • provider - penyedia yang melaluinya penundaan signifikan diamati;
    • place - kota tempat penundaan besar diamati;
    • num - nilai penundaan yang terukur, dalam detik.
  • isp - masalah dengan penyedia di kota (berlaku jika layanan adalah penyedia komunikasi), dengan field tambahan:

    • provider - penyedia yang melaluinya sejumlah besar halaman tidak dapat diakses diamati;
    • place - kota tempat hal ini terjadi;
    • num - jumlah halaman yang tidak dapat diakses melalui penyedia.
  • complaints - lonjakan keluhan pengguna, dengan field tambahan:

    • service - nama layanan yang dikeluhkan pengguna;
    • num - jumlah keluhan yang diterima dalam 15 menit terakhir.
  • function - fungsi layanan tertentu telah berhenti bekerja, dengan field tambahan:

    • service - nama layanan;
    • function - nama fungsi;
    • num - pengidentifikasi numerik fungsi.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/service/Unired/alerts/filtered' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ { "id": 17350524178, "time": "2024-12-24T14:02:52.724695+00:00", "type": "url", "url": "https://gojek.com", "service": "Gojek", "place": "id", "num": 31, "private": false }, { "id": 17350521990, "time": "2024-12-24T13:59:14.799644+00:00", "type": "latency", "provider": "Telkomsel", "place": "Jakarta", "url": "https://gojek.com", "service": "Gojek", "num": 1.256, "private": false } ] }

Jawaban:

{ "success": true, "data": [ { "id": 17350524178, "time": "2024-12-24T14:02:52.724695+00:00", "type": "isp", "provider": "Biznet", "place": "Jakarta", "num": 152 }, { "id": 17350524134, "type": "complaints", "time": "2024-12-24T14:02:15.269713+00:00", "service": "Tokopedia", "num": 351 }, { "id": 17350521990, "time": "2024-12-24T13:59:14.799644+00:00", "type": "function", "service": "Tokopedia", "function": "Pesanan", "num": 101 } ] }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Komentar

Metode untuk mengambil daftar komentar pengguna tentang layanan untuk hari tertentu

URL

/api/v1/service/{service}/comments/date/{date}

Nilai yang dapat diganti:

  • {service} - nama layanan yang komentarnya diminta;
  • {date} - tanggal, harus dalam format:
    • YYYY-MM-DD - untuk mengambil komentar pada hari yang ditentukan;
    • today - untuk mendapatkan komentar selama 24 jam terakhir.

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array data.

Array data terdiri dari objek dengan field wajib berikut:

  • time - waktu komentar, string dalam format ISO;
  • text - isi komentar;
  • author - nama penulis yang ditentukan, atau null;
  • likes - jumlah "suka" untuk komentar;
  • category - objek yang berisi informasi tentang kategori tempat komentar ditugaskan oleh sistem.

Objek category terdiri dari pasangan kunci-nilai, di mana kunci adalah salah satu kategori yang ditugaskan ke komentar, dan nilainya adalah array nama subkategori dalam kategori tersebut yang mungkin menjadi tempat komentar tersebut.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/service/Gosuslugi/comments/date/2024-03-19' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ { "time": "2024-03-19T08:08:31.643480+07:00", "text": "gangguan layanan pemerintah", "author": "Budi", "likes": 8, "category": { "Site failure": [ "The site does not open/load/functioning improperly" ] } } ] }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Grafik

Metode untuk mengambil data yang memungkinkan pembuatan grafik yang menggambarkan perilaku layanan pada hari tertentu

URL

/api/v1/service/{service}/graph/date/{date}

Nilai yang dapat diganti:

  • {service} - nama layanan yang datanya diminta;
  • {date} - tanggal, harus dalam format:
    • YYYY-MM-DD - untuk mengambil data pada hari yang ditentukan;
    • today - untuk mengambil data selama 24 jam terakhir.

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), objek yang berisi data.

Objek data memiliki field berikut:

  • latency - array titik yang mewakili waktu respons terukur dari sumber daya layanan (median selama interval 5 menit);
  • errors - array titik yang mewakili jumlah terukur upaya koneksi gagal ke sumber daya layanan (jumlah selama interval 5 menit);
  • totals - array titik yang menunjukkan jumlah total (berhasil dan gagal) upaya koneksi ke sumber daya layanan (jumlah selama interval 5 menit);
  • social - array titik dengan jumlah keluhan pengguna tentang layanan (total selama interval 5 menit);
  • social15 - sama seperti social, tetapi total selama interval 15 menit (sesuai dengan grafik default yang ditampilkan di situs web);

Semua array di atas terdiri dari array dua elemen, yang harus diinterpretasikan sebagai [waktu, nilai], di mana waktu adalah timestamp UNIX standar.

Contoh

Permintaan:

curl --location 'https://detector404.com/api/v1/service/Gosuslugi/graph/date/today' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": { "latency": [[1711289700, 186], [1711290000, 170]], "errors": [[1711290000, 3], [1711290300, 2]], "totals": [[1711290000, 8], [1711290300, 7]], "social": [[1711289700, 1], [1711290000, 1]] } }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Statistik

Metode untuk mendapatkan statistik tentang komentar dan keluhan tentang layanan

URL

/api/v1/service/{service}/stats/date/{date}

Nilai yang dapat diganti:

  • {service} - nama layanan yang datanya diminta;
  • {date} - tanggal, harus dalam format:
    • YYYY-MM - untuk mengambil data pada bulan yang ditentukan;
    • YYYY-MM-DD - untuk mengambil data pada hari yang ditentukan;
    • today - untuk mengambil data selama 24 jam terakhir.

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), objek yang berisi data.

Objek data memiliki field berikut:

  • regions - array yang berisi statistik keluhan berdasarkan wilayah, terdiri dari objek dengan field berikut:

    • region - nama wilayah;
    • percent - persentase keluhan yang berasal dari wilayah ini (dinormalisasi berdasarkan populasi dalam kasus wilayah Rusia);
  • complaints - array yang berisi statistik komentar berdasarkan kategori, terdiri dari objek dengan field berikut:

    • complaint - kategori tempat komentar tersebut;
    • percent - persentase komentar yang diatribusikan ke kategori ini;
    • detailed - array dengan rincian detail berdasarkan subkategori, masing-masing terdiri dari objek dengan field berikut:
      • type - nama subkategori;
      • percent - persentase komentar, relatif terhadap jumlah total, yang diatribusikan ke subkategori ini;

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/service/Gosuslugi/stats/date/2024-03' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": { "regions": [ { "region": "Jakarta dan Sekitarnya", "percent": 80.76923076923077 }, { "region": "Bali", "percent": 3.8461538461538463 } ], "complaints": [ { "complaint": "Site outage", "percent": 42.97520661157025, "detailed": [ { "type": "The site does not open / does not load / is not working.", "percent": 42.97520661157025 } ] }, { "complaint": "Personal account outage", "percent": 37.1900826446281, "detailed": [ { "type": "Cannot access the personal account/app/login", "percent": 30.578512396694215 }, { "type": "Problem with password or account recovery", "percent": 6.6115702479338845 } ] } ] } }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Lini waktu masalah

Metode untuk mendapatkan informasi tentang keberadaan masalah layanan dengan rincian per menit

URL

/api/v1/service/{service}/problems/date/{date}

Nilai yang dapat diganti:

  • {service} - nama layanan yang datanya diminta;
  • {date} - tanggal, harus dalam format:
    • YYYY-MM - untuk mengambil data pada bulan yang ditentukan;
    • YYYY-MM-DD - untuk mengambil data pada hari yang ditentukan;

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array yang berisi data.

Array data terdiri dari objek dengan field berikut:

  • time - string yang mewakili waktu (format ISO), menggunakan zona waktu Moskow;
  • errors - boolean yang menunjukkan adanya ketidaktersediaan sumber daya dari beberapa kota;
  • complaints - boolean yang menunjukkan apakah terdapat lonjakan keluhan pada waktu yang ditentukan.

Catatan

Metode ini secara implisit menggunakan ambang batas yang ditetapkan oleh pengguna di profilnya: untuk jumlah kota dari mana ketidaktersediaan sumber daya dianggap bermasalah, dan untuk jumlah keluhan selama 15 menit terakhir, di mana lonjakan keluhan dianggap sebagai masalah.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/service/Gosuslugi/problems/date/2024-03-15' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ { "time": "2024-03-15 00:00+07:00", "errors": false, "complaints": false }, { "time": "2024-03-15 00:01+07:00", "errors": false, "complaints": false } ] }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

Status

Metode untuk mengambil status layanan saat ini berdasarkan data pemantauan

URL

/api/v1/service/{service}/status

Nilai yang dapat diganti:

  • {service} - nama layanan yang datanya diminta;

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), objek yang berisi data.

Objek data memiliki field berikut:

  • down - objek di mana kunci adalah URL yang saat ini ditandai sebagai tidak tersedia, dan nilai yang sesuai adalah array nama kota di mana ketidaktersediaan URL diamati;
  • social - jika lonjakan keluhan terdeteksi untuk layanan ini, maka jumlah keluhan selama 15 menit terakhir; jika tidak, false.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/service/Gosuslugi/status' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": { "down": { "https://pedulilindungi.id": ["Kota Semarang"] }, "social": false } }

Jawaban:

{ "success": true, "data": { "down": { "https://pedulilindungi.id": ["Kota Semarang"] }, "social": 95 } }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }

URL

Metode untuk mendapatkan daftar halaman yang dipantau

URL

/api/v1/service/{service}/urls

Nilai yang dapat diganti:

  • {service} - nama layanan yang datanya diminta;

Metode

GET

Deskripsi data yang dikembalikan

Jika berhasil, mengembalikan objek JSON dengan:

  • success - nilai boolean yang menunjukkan keberhasilan permintaan;
  • error - opsional. String yang menjelaskan kesalahan jika success: false;
  • data - jika permintaan berhasil (success: true), array URL yang terkait dengan layanan tertentu yang saat ini dipantau.

Contoh

Permintaan:

curl --location 'https://detector404.id/api/v1/service/Gosuslugi/urls' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Jawaban:

{ "success": true, "data": [ "https://layanan.go.id", "https://pedulilindungi.id", "https://akun.layanan.go.id" ] }

Respons jika terjadi kesalahan:

{ "success": false, "error": "Terjadi kesalahan selama eksekusi permintaan; silakan periksa parameternya." }