Frankfurter · Capability
Frankfurter API — Rates
Frankfurter API — Rates. 2 operation(s). Lead operation: Frankfurter Get Exchange Rates. Self-contained Naftiko capability covering one Frankfurter business surface.
What You Can Do
GET
Getrates
— Frankfurter Get Exchange Rates
/v1/rates
GET
Getrate
— Frankfurter Get a Single Exchange Rate Pair
/v1/rate/{base}/{quote}
MCP Tools
get-exchange-rates
Frankfurter Get Exchange Rates
read-only
idempotent
get-single-exchange-rate-pair
Frankfurter Get a Single Exchange Rate Pair
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Frankfurter API — Rates
description: 'Frankfurter API — Rates. 2 operation(s). Lead operation: Frankfurter Get Exchange Rates. Self-contained Naftiko capability covering one Frankfurter business surface.'
tags:
- Frankfurter
- Currency Exchange
- Rates
created: '2026-05-29'
modified: '2026-05-29'
binds: []
capability:
consumes:
- type: http
namespace: v2-rates
baseUri: https://api.frankfurter.dev/v2
description: Frankfurter API — Rates business capability. Self-contained, no shared references. Public, no authentication required.
resources:
- name: rates
path: /rates
operations:
- name: getRates
method: GET
description: Frankfurter Get Exchange Rates
inputParameters:
- name: date
in: query
type: string
required: false
description: Specific date (YYYY-MM-DD). Cannot be combined with from/to.
- name: from
in: query
type: string
required: false
description: Start of date range (YYYY-MM-DD)
- name: to
in: query
type: string
required: false
description: End of date range (YYYY-MM-DD). Defaults to today.
- name: base
in: query
type: string
required: false
description: 'Base currency (default: EUR)'
- name: quotes
in: query
type: string
required: false
description: Comma-separated list of quote currencies to include
- name: providers
in: query
type: string
required: false
description: Comma-separated list of data providers to include
- name: group
in: query
type: string
required: false
description: Downsample rates by time period. Only applies to date ranges.
- name: expand
in: query
type: string
required: false
description: "Comma-separated list of optional fields to include per record. Currently supports `providers`, which adds an array of `{ key, rate }` objects per record showing each provider's
individual rate. Outliers excluded from the blend (and providers whose rate was overridden by a currency peg) are flagged with `excluded: true`. The field is omitted on synthesized peg
rows where no provider published the quote. In CSV output, the `providers` column is encoded as `KEY:RATE` pairs joined by `|`, with a trailing `*` on excluded entries (e.g. `ECB:0.92|FED:1.50*`)."
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: rate-base-quote
path: /rate/{base}/{quote}
operations:
- name: getRate
method: GET
description: Frankfurter Get a Single Exchange Rate Pair
inputParameters:
- name: base
in: path
type: string
required: true
description: ''
- name: quote
in: path
type: string
required: true
description: ''
- name: date
in: query
type: string
required: false
description: Specific date (YYYY-MM-DD). Cannot be combined with from/to.
- name: providers
in: query
type: string
required: false
description: Comma-separated list of data providers to include
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
namespace: v2-rates-rest
port: 8080
description: REST adapter for Frankfurter API — Rates. One Spectral-compliant resource per consumed operation, prefixed with /v1.
resources:
- path: /v1/rates
name: v1-rates
description: REST surface for Frankfurter Get Exchange Rates.
operations:
- method: GET
name: getRates
description: Frankfurter Get Exchange Rates
call: v2-rates.getRates
with:
date: rest.date
from: rest.from
to: rest.to
base: rest.base
quotes: rest.quotes
providers: rest.providers
group: rest.group
expand: rest.expand
outputParameters:
- type: object
mapping: $.
- path: /v1/rate/{base}/{quote}
name: v1-rate-base-quote
description: REST surface for Frankfurter Get a Single Exchange Rate Pair.
operations:
- method: GET
name: getRate
description: Frankfurter Get a Single Exchange Rate Pair
call: v2-rates.getRate
with:
base: rest.base
quote: rest.quote
date: rest.date
providers: rest.providers
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: v2-rates-mcp
port: 9090
transport: http
description: MCP adapter for Frankfurter API — Rates. One verb-noun tool per consumed operation, routed inline through this capability's consumes block.
tools:
- name: get-exchange-rates
description: Frankfurter Get Exchange Rates
hints:
readOnly: true
destructive: false
idempotent: true
call: v2-rates.getRates
with:
date: tools.date
from: tools.from
to: tools.to
base: tools.base
quotes: tools.quotes
providers: tools.providers
group: tools.group
expand: tools.expand
outputParameters:
- type: object
mapping: $.
- name: get-single-exchange-rate-pair
description: Frankfurter Get a Single Exchange Rate Pair
hints:
readOnly: true
destructive: false
idempotent: true
call: v2-rates.getRate
with:
base: tools.base
quote: tools.quote
date: tools.date
providers: tools.providers
outputParameters:
- type: object
mapping: $.