# What a 304 means

> ETags, If-None-Match and why an unchanged board costs nothing.

## The label

Data replies, /v2/sports, /v2/events and /v2/bookmakers carry an ETag: a label of the decompressed content, with -gz inside the quotes on the gzip copy. It changes when, and only when, those bytes change. /v2/pricing and /v2/openapi.json carry the body's SHA-256 instead.

## The 304

Send the ETag back as If-None-Match. If the body would be the same, the reply is 304 Not Modified. It has an empty body and costs nothing, and it still counts toward the flood cap. Keep the rows you have. A call the balance can't cover is refused 402 even with If-None-Match.

## Pacing

Keyed replies carry Cache-Control: private, max-age=2, must-revalidate. Poll at the pace your product needs: an unchanged board costs you only a 304.

Source: https://oddsrelay.io/docs/guides/conditional-requests · the API contract: https://api.oddsrelay.io/v2/openapi.json
