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

# Overview

> Public endpoints for supported assets and real-time quotes backed by the Colombian TRM.

<Note>
  These endpoints are public and do not require authentication.
</Note>

Use this API section to list supported assets and create time-bound exchange quotes between fiat and supported digital assets.

QASH retrieves the TRM in real time from SETICAP, the official source for the Colombian interbank market, and applies the effective spread before returning the final rate.

## Endpoints

| Method | Endpoint                         | Description                                                  |
| ------ | -------------------------------- | ------------------------------------------------------------ |
| `GET`  | `/api/v1/exchanges/assets`       | Return the assets available for conversion                   |
| `POST` | `/api/v1/exchanges/quote/public` | Return a real-time public quote between two supported assets |

## Supported conversion pairs

| From  | To    | Supported |
| ----- | ----- | --------- |
| `USD` | `COP` | Yes       |
| `COP` | `USD` | Yes       |

## Rate calculation

For TRM-based conversions, QASH applies a spread before returning the final effective rate.

| Direction                        | Formula                           |
| -------------------------------- | --------------------------------- |
| USD-denominated asset to COP leg | `rate = TRM × (1 − spread)`       |
| COP leg to USD-denominated asset | `rate = 1 / (TRM × (1 + spread))` |

The `rate` field in the response already includes the effective spread applied by QASH.

## Error handling

| HTTP status | Cause                                                             |
| ----------- | ----------------------------------------------------------------- |
| `400`       | Missing fields or invalid `fromAmount`                            |
| `503`       | TRM unavailable because SETICAP is down and the cache has expired |
| `500`       | Internal service error                                            |

<Warning>
  Quotes expire after 30 seconds. Request a new quote immediately before processing an operation.
</Warning>
