openapi: 3.0.3 info: title: FXRates Convert Historical Rates API description: 'FXRatesAPI is a foreign exchange rates REST API serving real-time and historical currency exchange rates for 185+ fiat currencies plus major cryptocurrencies and precious metals. All endpoints return JSON over HTTPS from the base host https://api.fxratesapi.com. A limited tier is usable without an API key; a paid API key (passed as the api_key query parameter or an Authorization Bearer header) raises quotas, increases update frequency, and unlocks base-currency switching. Endpoint paths, methods, and parameters below are grounded in live probes of the API on 2026-07-12. Response schemas are modeled from the observed JSON payloads rather than a provider-published machine-readable schema, and only parameters confirmed during probing are asserted; additional optional parameters may exist.' version: '1.0' contact: name: FXRatesAPI url: https://fxratesapi.com termsOfService: https://fxratesapi.com/legal/terms-conditions servers: - url: https://api.fxratesapi.com description: FXRatesAPI production security: - {} - apiKeyQuery: [] - bearerAuth: [] tags: - name: Historical Rates description: Exchange rates for a specific past date. paths: /historical: get: operationId: getHistoricalRates tags: - Historical Rates summary: Get historical exchange rates for a date description: Returns the exchange rates as they were on a specific past date. parameters: - name: date in: query required: true description: The date to retrieve rates for, in YYYY-MM-DD format. schema: type: string format: date example: '2026-01-01' - name: base in: query required: false description: Base currency code (ISO 4217). Defaults to USD. schema: type: string default: USD - name: currencies in: query required: false description: Comma-separated list of currency codes to return. schema: type: string - name: api_key in: query required: false schema: type: string responses: '200': description: Historical exchange rates for the requested date. content: application/json: schema: $ref: '#/components/schemas/RatesResponse' '400': $ref: '#/components/responses/Error' components: schemas: RatesResponse: type: object description: Modeled from observed /latest and /historical JSON payloads. properties: success: type: boolean example: true terms: type: string example: https://fxratesapi.com/legal/terms-conditions privacy: type: string example: https://fxratesapi.com/legal/privacy-policy timestamp: type: integer description: Unix timestamp of the rate snapshot. example: 1783883940 date: type: string format: date-time example: '2026-07-12T19:19:00.000Z' base: type: string example: USD rates: type: object description: Map of currency code to exchange rate against the base. additionalProperties: type: number example: EUR: 0.8761481387 GBP: 0.7461771444 ErrorResponse: type: object description: Modeled from observed error payloads. FXRatesAPI returns success=false with either a nested error object ({message}) or a flat error string plus a description field, depending on the endpoint and failure mode. properties: success: type: boolean example: false error: oneOf: - type: string example: missing_from_currency - type: object properties: message: type: string example: Endpoint Not Found description: type: string example: The from currency is required for the convert endpoint. responses: Error: description: Error response. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: apiKeyQuery: type: apiKey in: query name: api_key description: API key passed as the api_key query parameter. bearerAuth: type: http scheme: bearer description: 'API key passed as an Authorization: Bearer header.'