The VMArea Public API supports Stripe-style idempotent retries on every write endpoint, so a network blip or client crash never leaves you wondering whether aDocumentation Index
Fetch the complete documentation index at: https://vmarea.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
POST actually went through.
How it works
Send anIdempotency-Key header on any POST, PUT, PATCH, or DELETE request to /api/public/v1/*. Replays of the same key by the same API token return the original response — same status, same body — without re-executing the endpoint.
| Aspect | Detail |
|---|---|
| Header | Idempotency-Key |
| Format | 1–255 ASCII printable characters (UUID4 ideal) |
| Applies to | POST / PUT / PATCH / DELETE write routes |
| Cache window | 24 hours from the original response |
| Replay marker | Response carries Idempotency-Replayed: true |
| Concurrent replay | 409 Conflict while the first request is still in flight |
5xx responses | NOT cached — safe to retry with the same key |
GET / HEAD | Header ignored (these are already idempotent) |
Picking a key
Generate a fresh value per logical operation — typically a UUID4 — and reuse it only when retrying that exact request. Use different keys for different operations; use the same key for retries of the same operation.Example
Caveats
The cache key is
(API token user, Idempotency-Key). A different token from the same account is treated as a different caller.- Request bodies are not checksummed — sending a different body with a reused key still returns the original response. Keep one key per operation.
- Binary downloads (PDF invoices, etc.) are out of scope: replays of those endpoints will re-execute.
- Idempotency is best-effort. If the cache is briefly unavailable, requests are let through rather than failed; in that rare window a retry may produce a duplicate side effect. Pair this header with normal defensive patterns for true at-most-once semantics.