Skip to content

Idempotency

Write requests (POST, PATCH, DELETE) accept an Idempotency-Key header so a retry — after a network blip or timeout — never applies the action twice.

curl -X POST https://rmhstudios.com/api/v1/posts \
  -H "Authorization: Bearer $RMH_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5f3a9c2e-1b7d-4e2a-9c8b-2f1a0d6e4b3c" \
  -d '{"content":"Posted exactly once"}'
  • The first request for a given key is processed and its response stored.
  • A retry with the same key and body replays the stored response and adds Idempotency-Replayed: true. No second action occurs.
  • Reusing a key with a different body returns 409 idempotency_conflict.
  • Stored responses expire after ~24 hours.

Generate a unique key (e.g. a UUID v4) per logical operation.