The BotDigit Developer Platform supports idempotency keys on mutating endpoints to prevent duplicate business effects (such as duplicate proposal submissions, duplicate message posts, or double-staged drafts) in the event of network drops or client retries.
When you pass an Idempotency-Key header, the server records the SHA-256 hash of the request body and the resulting HTTP status and response payload. If the request is retransmitted due to a network timeout, the server replays the committed response directly from the idempotency cache without re-executing domain logic.
curl -X POST "https://api.botdigit.com/api/developer/v1/projects/3fa85f64-5717-4562-b3fc-2c963f66afa6/proposals/drafts" \
-H "Authorization: Bearer bdt_pat_yourTokenHere" \
-H "Idempotency-Key: 9c118a72-8821-4f3b-b218-129038472901" \
-H "Content-Type: application/json" \
-d '{
"bid_amount": "1500.00",
"delivery_days": 7,
"proposal_text": "We will build this integration using Rust and Next.js."
}'In parallel race conditions (such as two background threads simultaneously attempting to approve the same proposal draft), atomic database row-level locking guarantees that exactly one transaction succeeds while concurrent duplicates receive HTTP 409 Conflict.
If an Idempotency-Key is reused with a different request payload (different bid amount, text, or parameters), the server detects payload tampering and rejects the request with HTTP 409 Conflict.