---
title: "Read observed Treasury changes since a saved cursor"
method: POST
path: "/v1/rwa/updates"
tags: ["treasury", "changes", "monitoring", "evidence"]
---

# Read observed Treasury changes since a saved cursor

`POST /v1/rwa/updates`

## Request

- Base URL: `https://api.402rates.com`
- URL: `https://api.402rates.com/v1/rwa/updates`
- Auth: none declared

Free cursor-based Treasury change notices. Default instrument scope retains version 1; opt-in market scope uses version 2 and separate cursors. Fifteen-minute capture; up to 90-day retention subject to source permissions. Field names and digests, no paid market values. No reconstruction before the first baseline.

## Request body

- object
  - `scope` 'instrument' | 'market': instrument retains the version-1 feed; market selects version 2 with its own cursor and source permissions.
  - `cursor` string: next_cursor from an earlier response; an expired cursor requires a fresh baseline.
  - `limit` integer

## Response `200`

Successful response

- object
  - `report_version` '1.0.0' | '2.0.0', required
  - `status` string, required
  - `threshold_bps` number
  - `data` object[]
  - `scope` 'market'

## Other responses

- `400`: Invalid input
- `405`: POST required
- `413`: Input exceeds 196608 bytes
- `415`: application/json required
- `429`: Free request limit reached

---

[API](https://skmtc.dev/402rates/apis/402rates-com.md) · [All operations](https://skmtc.dev/402rates/apis/402rates-com/llms.txt) · [OpenAPI document](https://skmtc.dev/402rates/apis/402rates-com/revisions/483a9d0a3f0b?raw)
