Frankfurter API v1

Frozen v1 Frankfurter API. ECB-style reference rates with single-base aggregate response shape (rates keyed by quote currency). Maintained for backward compatibility; new integrations should use v2.

Documentation

Specifications

Examples

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-schema/v1-rates-on-date-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-schema/v1-rates-by-date-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-schema/v1-rates-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-schema/v1-currencies-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-schema/v1-amount-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-schema/v1-base-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-schema/v1-base-in-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-schema/v1-date-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-structure/v1-rates-on-date-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-structure/v1-rates-by-date-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-structure/v1-rates-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-structure/v1-currencies-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-structure/v1-amount-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-structure/v1-base-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-structure/v1-base-in-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/frankfurter/refs/heads/main/json-structure/v1-date-structure.json

Other Resources

OpenAPI Specification

frankfurter-v1-openapi.yml Raw ↑
openapi: 3.1.2
info:
  title: Frankfurter API
  description: Frankfurter is an open-source API for current and historical foreign exchange rates, sourcing currency data from public providers like the European Central Bank.
  version: 1.0.0
  license:
    name: MIT
    url: https://github.com/lineofflight/frankfurter/blob/main/LICENSE
  contact:
    url: https://github.com/lineofflight/frankfurter/issues
  x-generated-from: upstream
  x-last-validated: '2026-05-29'
servers:
  - url: https://api.frankfurter.dev/v1
tags:
  - name: current-rates
    description: Latest foreign exchange rates
  - name: historical-rates
    description: Historical exchange rates for specific dates and periods
  - name: metadata
    description: API reference data like available currencies
paths:
  /latest:
    get:
      tags:
        - current-rates
      summary: Frankfurter Get the Latest Rates
      description: Returns the last working day's rates
      parameters:
        - $ref: '#/components/parameters/base'
        - $ref: '#/components/parameters/symbols'
      responses:
        '200':
          description: Latest rates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ratesOnDate'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{date}:
    get:
      tags:
        - historical-rates
      summary: Frankfurter Get Rates for a Past Date
      description: Returns historical rates for the working day closest to the specified date
      parameters:
        - name: date
          in: path
          description: The date for the historical rates
          required: true
          schema:
            $ref: '#/components/schemas/date'
        - $ref: '#/components/parameters/base'
        - $ref: '#/components/parameters/symbols'
      responses:
        '200':
          description: Historical rates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ratesOnDate'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{start_date}..:
    get:
      tags:
        - historical-rates
      summary: Frankfurter Get Rates for a Time Period
      description: Returns historical rates for every day within a time period starting from the provided date until today.
      parameters:
        - $ref: '#/components/parameters/start_date'
        - $ref: '#/components/parameters/base'
        - $ref: '#/components/parameters/symbols'
      responses:
        '200':
          $ref: '#/components/responses/PeriodRateGetResponse'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{start_date}..{end_date}:
    get:
      tags:
        - historical-rates
      summary: Frankfurter Get Rates for a Time Period
      description: Returns historical rates for every day within a time period. The end date defaults to today if not provided.
      parameters:
        - $ref: '#/components/parameters/start_date'
        - $ref: '#/components/parameters/end_date'
        - $ref: '#/components/parameters/base'
        - $ref: '#/components/parameters/symbols'
      responses:
        '200':
          $ref: '#/components/responses/PeriodRateGetResponse'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /currencies:
    get:
      tags:
        - metadata
      summary: Frankfurter Get Available Currencies
      description: Returns a list of available currencies with their full names
      responses:
        '200':
          description: List of available currencies
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/currencies'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    base:
      name: base
      in: query
      description: Base currency to convert from
      required: false
      schema:
        $ref: '#/components/schemas/baseIn'
    symbols:
      name: symbols
      in: query
      description: Comma-separated list of currencies to convert to
      required: false
      schema:
        type: array
        description: A list of currencies
        items:
          $ref: '#/components/schemas/base'
        minItems: 1
      explode: false
      example: USD,GBP
    start_date:
      name: start_date
      in: path
      required: true
      description: The start date for the period
      schema:
        $ref: '#/components/schemas/date'
    end_date:
      name: end_date
      in: path
      required: true
      description: The end date for the period
      schema:
        $ref: '#/components/schemas/date'
  responses:
    PeriodRateGetResponse:
      description: Historical rates for the period
      content:
        application/json:
          schema:
            title: RatesDuringPeriod
            type: object
            properties:
              amount:
                $ref: '#/components/schemas/amount'
              base:
                $ref: '#/components/schemas/base'
              start_date:
                $ref: '#/components/schemas/date'
              end_date:
                $ref: '#/components/schemas/date'
              rates:
                $ref: '#/components/schemas/ratesByDate'
            required:
              - base
              - start_date
              - end_date
              - rates
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: not found
  schemas:
    amount:
      type: number
      description: The amount to convert
      exclusiveMinimum: 0
    date:
      type: string
      format: date
      example: '2024-01-15'
      description: Date in YYYY-MM-DD format, all dates stored in UTC.
    base:
      type: string
      enum:
        - AUD
        - BGN
        - BRL
        - CAD
        - CHF
        - CNY
        - CZK
        - DKK
        - EUR
        - GBP
        - HKD
        - HUF
        - IDR
        - ILS
        - INR
        - ISK
        - JPY
        - KRW
        - MXN
        - MYR
        - NOK
        - NZD
        - PHP
        - PLN
        - RON
        - SEK
        - SGD
        - THB
        - TRY
        - USD
        - ZAR
      description: The base currency code following ISO4217
    baseIn:
      allOf:
        - $ref: '#/components/schemas/base'
      default: EUR
    rates:
      type: object
      description: Exchange rates keyed by currency code
      propertyNames:
        $ref: '#/components/schemas/base'
      additionalProperties:
        type: number
        exclusiveMinimum: 0
        multipleOf: 1e-05
      minProperties: 1
      example:
        AUD: 1.91
        CAD: 1.8004
        CHF: 1.6168
        CYP: 0.58231
    ratesOnDate:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/amount'
        base:
          $ref: '#/components/schemas/base'
        date:
          $ref: '#/components/schemas/date'
        rates:
          $ref: '#/components/schemas/rates'
      required:
        - base
        - date
        - rates
    ratesByDate:
      type: object
      description: Mapping of date → rates object
      propertyNames:
        $ref: '#/components/schemas/date'
      additionalProperties:
        $ref: '#/components/schemas/rates'
      minProperties: 1
      example:
        '1999-01-04':
          AUD: 1.91
        '1999-01-05':
          AUD: 1.8944
        '1999-01-06':
          AUD: 1.882
    currencies:
      type: object
      propertyNames:
        $ref: '#/components/schemas/base'
      additionalProperties:
        type: string
        description: Full name of the currency
        minLength: 1
      minProperties: 1
      example:
        AUD: Australian Dollar
        BGN: Bulgarian Lev
        EUR: Euro
        USD: US Dollar