---
title: "Get spot FX price"
method: GET
path: "/api-regulated/v1/fx-spot-prices/{currencyPair}"
tags: ["SpotRates"]
---

# Get spot FX price

`GET /api-regulated/v1/fx-spot-prices/{currencyPair}`

## Request

- Base URL: `https://api.currencyguard.com`
- URL: `https://api.currencyguard.com/api-regulated/v1/fx-spot-prices/{currencyPair}`
- Auth: HTTP bearer

Returns the current spot FX price containing bid, ask, and mid rates for the specified currency pair. The response includes state information (VALID/ERROR) and metadata about the price source. Prices are typically updated in real-time from market data providers.

## Path parameters

- `currencyPair` string, required

## Response `200`

Spot price retrieved successfully. Returns FXPriceStateDTO with current bid/ask/mid rates.

- FXPriceStateDTO: Container for FX spot price data with state information. The 'value' field contains bid/ask/mid rates and can be present even when valid=false (stale/approximate data).
  - `valid` boolean, required: Whether the price data is currently valid (true) or in an error/degraded state (false). When false, the value may still be present (stale/approximate data).
  - `errorMessages` string[]: List of error messages explaining why the state is invalid. Empty/null when valid=true. Can contain multiple accumulated errors from different sources.
  - `valueTimestamp` string, required: ISO 8601 timestamp indicating when the underlying data was produced at the source (business time). This represents the data's original timestamp.
  - `emissionTimestamp` string, required: ISO 8601 timestamp indicating when our system emitted this state (system/processing time). This represents when the wrapper was created.
  - `subscriptionSource` string: Market data subscription channel identifier. Used for debugging and monitoring data flows.
  - `emissionSource` string: Identifier of the market data provider or internal pricing engine that produced this data. Diagnostic detail for internal use only — omitted from responses to non-internal callers.
  - `infoMessages` string[]: Informational messages providing context about the price state (e.g., validation details, reference source checks). Do not affect validity. Diagnostic detail for internal use only — omitted from responses to non-internal callers.
  - `value` FXPriceDTO: Foreign exchange price data containing bid, ask, and mid rates for a currency pair
    - `symbol` string: Currency pair symbol.
    - `timestamp` string: Timestamp when the price was recorded (ISO 8601 format).
    - `bid` number: Bid price - the rate at which the market will buy the base currency.
    - `ask` number: Ask price - the rate at which the market will sell the base currency.
    - `mid` number: Mid price - the average of bid and ask prices

## Other responses

- `400`: Invalid currency pair format - must be 6 characters (3-letter base + 3-letter quote currency) — [`http/malformed-request`](/problems/http/malformed-request/)
- `401`: Not authenticated - valid JWT token required — [`security/authentication-failed`](/problems/security/authentication-failed/)
- `403`: Access denied - requires REGULATED or INTERNAL role — [`security/insufficient-permissions`](/problems/security/insufficient-permissions/)
- `422`: Currency pair not found or not active in the system — [`validation/validation-error`](/problems/validation/validation-error/)
- `500`: Server error - internal processing failure — [`server/internal-error`](/problems/server/internal-error/)

---

[API](https://skmtc.dev/currencyguard/apis/currencyguard-trading-system-api-external.md) · [All operations](https://skmtc.dev/currencyguard/apis/currencyguard-trading-system-api-external/llms.txt) · [OpenAPI document](https://skmtc.dev/currencyguard/apis/currencyguard-trading-system-api-external/revisions/a1f3f854190d?raw)
