Skip to main content
Kirim header Idempotency-Key pada request POST. Bila jawaban tidak sampai (timeout, koneksi putus), kirim ulang request yang sama persis dengan key yang sama: resource tidak dibuat dua kali.

Aturan

  • Key: 1–255 karakter ASCII yang terlihat (tanpa spasi). UUID acak per operasi adalah pilihan yang baik. Key tidak valid → 400 idempotency_key_invalid.
  • Hanya berlaku untuk POST. PUT, PATCH, dan DELETE mengabaikan header ini.
  • Jawaban request pertama disimpan 24 jam, per organisasi.
  • Request ulang dengan key, method, path, dan body yang sama mendapat jawaban yang sama persis (status dan body) dengan header Idempotent-Replayed: true, tanpa menjalankan aksi lagi.
  • Key yang sama dengan method, path, atau body berbeda → 422 idempotency_key_reused. Buat key baru untuk operasi baru.
  • Request pertama masih berjalan → 409 idempotency_in_progress. Ulangi sebentar lagi.
  • Jawaban 5xx tidak disimpan, jadi request boleh diulang dengan key yang sama dan akan dijalankan lagi.
  • Jawaban 4xx (mis. 422 saldo tidak cukup) disimpan dan di-replay seperti jawaban sukses. Setelah memperbaiki penyebabnya, kirim dengan key baru.

Password tidak pernah disimpan

Beberapa jawaban POST memuat password: reset password admin database, user database baru, dan rotasi password user. Password tidak ikut disimpan untuk replay. Pada replay, field password berisi null:
Bila password hilang karena itu, buat password baru dengan POST /databases/{id}/reset-password (admin) atau POST /databases/{id}/users/{username}/rotate-password (user lain). Lihat Database.

Kapan memakainya

Pakai Idempotency-Key untuk setiap POST yang membuat resource berbayar atau menjalankan aksi: VM, volume, snapshot, floating IP, database, load balancer, backup, dan sejenisnya. Simpan key bersama catatan operasi di sistem Anda, supaya retry otomatis memakai key yang sama.