---
title: "Every exchange rate this workspace has asserted"
method: GET
path: "/v1/exchange-rates"
tags: ["exchange-rates"]
---

# Every exchange rate this workspace has asserted

`GET /v1/exchange-rates`

## Request

- Base URL: `https://api.indraft.io`
- URL: `https://api.indraft.io/v1/exchange-rates`
- Auth: HTTP bearer

Every rate this workspace has asserted, with when it was asserted and by whom. Indraft never invents a rate: a converted total is refused until you supply one, because a number nobody chose is worse than no number.

## Response `200`

Success

- object
  - `items` object[], required
    - `id` string, required
    - `from` string, required
    - `to` string, required
    - `ratePpm` integer, required
    - `effectiveFrom` string, required
    - `sourceLabel` string, required
    - `assertedByActorId` string, required
    - `assertionKind` string, required
    - `createdAt` string, required
  - `requestId` string, required

## Other responses

- `401`: No credential, or one that has been revoked.
- `403`: Authenticated, and this capability is not held.
- `429`: Infrastructure protection tripped. This is not a product quota.
- `500`: A defect on our side. The hint says so, and carries an incident id.

---

[API](https://skmtc.dev/indraft/apis/indraft-api.md) · [All operations](https://skmtc.dev/indraft/apis/indraft-api/llms.txt) · [OpenAPI document](https://skmtc.dev/indraft/apis/indraft-api/revisions/d9bb05346d66?raw)
