Idempotency
Keep the same key and semantic payload when a Reporting outcome is uncertain.
Supported operations #
Idempotency-Key applies to POST /api/v1/reports and POST /api/v1/reports/{report_id}/evidence. It does not apply to Verification. The key must be nonblank, cannot contain control characters, and must stay within canonical OpenAPI limits. Ordinary spaces are allowed; the key is not UUID-only.
First, replay, and conflict #
| Case | Result |
|---|---|
| First semantic success | 201 Created |
| Same key + same semantic payload | 200 OK; Idempotency-Replayed: true |
| Same key + different semantic payload | 409 IDEMPOTENCY_CONFLICT |
