> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nordicfinancialnews.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Caching

> Use ETags and conditional requests to save bandwidth and reduce API usage.

The Nordic Financial News API supports HTTP caching with ETags on individual resource endpoints (e.g. fetching a single article or company by ID). Send a conditional request with the `If-None-Match` header, and the API returns `304 Not Modified` if the resource has not changed, saving bandwidth and reducing your monthly usage count.

## How ETag caching works

<Steps>
  <Step title="Make a request">
    The response includes an `ETag` header with a unique identifier for the current state of the resource.

    ```bash theme={"dark"}
    curl -i -H "Authorization: Bearer $API_KEY" \
      "https://nordicfinancialnews.com/api/v1/articles/art_abc123def"
    ```

    ```http Response headers theme={"dark"}
    HTTP/1.1 200 OK
    ETag: "a1b2c3d4e5f6"
    ```
  </Step>

  <Step title="Send the ETag on subsequent requests">
    Include the `If-None-Match` header with the ETag value:

    ```bash theme={"dark"}
    curl -i -H "Authorization: Bearer $API_KEY" \
      -H 'If-None-Match: "a1b2c3d4e5f6"' \
      "https://nordicfinancialnews.com/api/v1/articles/art_abc123def"
    ```
  </Step>

  <Step title="Receive a 304 if unchanged">
    If the resource hasn't changed, the API returns `304 Not Modified` with no body:

    ```http theme={"dark"}
    HTTP/1.1 304 Not Modified
    ```
  </Step>
</Steps>

## Why use ETag caching

* **Save bandwidth** by not re-downloading unchanged data
* **Reduce monthly usage** since `304 Not Modified` responses do not count against your monthly quota
* **Faster responses** with no response body to parse

## When ETag caching is not available

ETags are not supported in these cases:

* Requests that include the `q` (search) parameter
* Requests that include the `updated_after` parameter
* List endpoints (only individual resource endpoints support ETags)
