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.