# Forex Quote

> Returns real-time forex pair quote.

`GET https://api.bavest.co/v2/forex/quote/{pair}`

Group: Forex. Route id: `v2_forex_quote_pair`. Included in: Growth.

## Authentication

Send your API key in the `x-api-key` header on every request. No key yet? Sign up at https://dashboard.bavest.co/sign-up (free trial). The examples read the key from the `BAVEST_API_KEY` environment variable.

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `pair` | path | string | yes | Currency pair (e.g., `EURUSD`, `GBPJPY`) Example `EURUSD`. |

## Response

200 Successful response (`application/json`).

| Field | Type | Always present | Description |
|---|---|---|---|
| `data` | ForexQuote | no | Real-time forex pair quote. |
| `data.symbol` | string | yes | Currency pair symbol. Example: `EURUSD`. |
| `data.price` | number (double) | yes | Current market price. Example: `1.15577`. |
| `data.change` | number (double) | no | Absolute price change from previous close. Example: `-0.00015`. |
| `data.changesPercentage` | number (double) | no | Percentage price change from previous close. Example: `-0.01297668`. |
| `data.dayHigh` | number (double) | no | Highest price during the trading day. Example: `1.15724`. |
| `data.dayLow` | number (double) | no | Lowest price during the trading day. Example: `1.15476`. |
| `data.open` | number (double) | no | Opening price for the trading day. Example: `1.1559`. |
| `data.previousClose` | number (double) | no | Previous trading day closing price. Example: `1.15592`. |
| `data.timestamp` | string (date-time) | no | Quote timestamp (ISO 8601) Example: `2026-03-30T11:59:59`. |
| `meta` | ResponseMeta | no | Response envelope metadata. Always present on a 200: `time` is set by `core/response.py` on every successful response. Errors carry the same block, built by the same code, so a client parses one meta shape whether the call succeeded or failed. |
| `meta.time` | integer | no | Server-side processing time in milliseconds. Example: `17`. |
| `meta.parameters` | object | no | Echo of the request parameters the endpoint resolved. |

## Example request

```bash
curl 'https://api.bavest.co/v2/forex/quote/EURUSD' \
  -H "x-api-key: $BAVEST_API_KEY"
```

## Example response

```json
{
  "data": {
    "symbol": "EURUSD",
    "price": 1.1275,
    "change": 0.0030201,
    "changesPercentage": 0.26858,
    "open": 1.12435,
    "previousClose": 1.12448,
    "dayHigh": 1.12758,
    "dayLow": 1.12246,
    "timestamp": "2026-10-02T14:00:18"
  },
  "meta": {
    "parameters": {
      "pair": "EURUSD"
    },
    "time": 16
  }
}
```

## Errors

| Status | Meaning |
|---|---|
| 400 | Invalid request parameters. Returned when required query parameters are missing, have invalid types, or violate constraints (e.g., providing both symbol and isin when they are mutually exclusive). |
| 401 | Missing or invalid API key. |
| 404 | Resource not found. |
| 429 | Rate limit exceeded. Retry after the `Retry-After` header interval. |
| 500 | An unexpected error occurred on the server. If the issue persists, contact support with the X-Request-Id header value. |
| 502 | Upstream data provider returned an error or is temporarily unavailable. Retry after a short delay. |
| 504 | The request timed out waiting for a response from the upstream data provider. This may occur for complex queries or during peak load. |
| default | An unexpected error occurred on the server. If the issue persists, contact support with the X-Request-Id header value. |

- `403` from the gateway: the API key is invalid or switched off.
- `429` with message `Limit Exceeded`: the monthly quota of the key is used up. With `Too Many Requests`: the key is throttled, or this route is not in the key's plan. Wait for `Retry-After` when it is sent.

## Links

- HTML page: https://dashboard.bavest.co/docs/v2_forex_quote_pair
- OpenAPI: https://dashboard.bavest.co/openapi.json (YAML: https://dashboard.bavest.co/openapi.yaml)
- Authentication: https://dashboard.bavest.co/docs/authentication.md
- MCP server for AI agents: https://dashboard.bavest.co/docs/mcp.md
- All routes: https://dashboard.bavest.co/llms.txt
