Error body
Errors use anerror object containing a machine-readable code, a message and optional field details (path, problem). The implementation may return the first failing semantic check; it does not guarantee a complete list of every problem in one response.
Handling responses
Per-endpoint
403 scope checks and a rate-limiter returning 429 are not currently implemented by the API. Their presence in earlier documentation did not establish that they were active. Repeated candidates and removals are not rejected: identity is gall_id plus post_no, a repeat is stored and counted once, and a retry cannot revive a removed post.
Late responses and undelivered data
DCinside skips late or stale scores for that decision cycle. This is separate from reliable delivery: preserve unacknowledged candidates, images and removals until they can be reconciled. The next request’s current engagement alone cannot recover missing candidate metadata. After an uncertain timeout, retrieve the stored response or replay the original request with the same ID and body. If no completed result is found, include that cycle’s candidates and removals again in the next cycle, as described in Conventions. Verify restart recovery in the deployed environment. An HTTP500 does not itself prove an alert was sent; no-data alert delivery is a separate rehearsal check.