# Client generates one key per logical operation POST /v1/webhooks Idempotency-Key: a1b2c3-... # Timeout? Retry with the SAME key: # server detects the replay, returns the original result -- # the webhook is created once, not twice
The pattern (popularized by payment APIs) matters wherever a retry after an ambiguous failure could duplicate a side effect. Reads don't need it - GETs are naturally idempotent - which is why odds polling never involves the header but write endpoints benefit from it.
Odds retrieval in ParlayAPI is all GETs - retry those freely. The header pattern belongs in your own pipeline's write paths (order placement, webhook registration, bet logging), paired with the retry discipline described under Retry-After.