Idempotency
Send an Idempotency-Key header with any POST request. If you use the same key within 24 hours, ListBee returns the original cached response instead of executing the request again.
Idempotency keys expire after 24 hours. After expiry, the same key is treated as a new request and will execute again.
When to use it
Use an idempotency key whenever you are not sure whether a request succeeded.
Common scenarios:
- Network timeout before you receive a response
- Connection reset mid-request
- Client crash after sending but before receiving
- Retry logic that may fire even when the original succeeded
Without an idempotency key, retrying a POST /v1/listings after a timeout creates a second listing. With one, the retry returns the original listing.
Which endpoints support it
All POST endpoints under /v1/* accept Idempotency-Key. This includes:
POST /v1/account/signupPOST /v1/account/verifyPOST /v1/account/stripe-keyPOST /v1/account/stripe/connectPOST /v1/api-keysPOST /v1/listings
GET, PUT, and DELETE requests are inherently idempotent and do not use the header.
How it works
- First request with key
abc-123→ request executes, response cached for 24 hours. - Second request with same key
abc-123and same body → cached response returned, no side effects. - Request with key
abc-123and a different body →409 idempotency_conflict.
The key is scoped to your API key. Two different accounts can use the same idempotency key without conflict.
Example
Use a UUID as the idempotency key. Generate it once before the first attempt and reuse it on every retry.
Conflict response
If you send the same key with a different request body, ListBee returns 409 Conflict:
This protects against accidentally reusing a key for a different operation.
Next steps
- Rate limits — idempotent retries hit the cache, not the rate limiter.
- Errors — handle
idempotency_conflict(409) when keys are reused with different bodies.