Frankfurter is a free and open-source currency data API that tracks reference exchange rates published by central banks.
The API is publicly available at https://api.frankfurter.dev.
docker run -d -p 8080:8080 \
-e FRED_API_KEY=your_key \
-e TCMB_API_KEY=your_key \
--pull always \
lineofflight/frankfurterBoth API keys are optional. The app runs without them.
FRED_API_KEYenables Federal Reserve (FRED) data. Register at fred.stlouisfed.org for a free key.TCMB_API_KEYenables Turkish Central Bank data. Register at evds3.tcmb.gov.tr for a free key.
Data is fetched asynchronously on startup, so some endpoints may return empty results briefly until the initial backfill completes. To avoid this, you can mount a volume to persist data across container restarts:
docker run -d -p 8080:8080 \
-e DATABASE_URL=sqlite:///app/data/frankfurter.sqlite3 \
-v ./data:/app/data \
--pull always \
lineofflight/frankfurter| Cloud Provider | Deploy Button |
|---|---|
| AWS | |
| DigitalOcean | |
| Render |
Generated by DeployStack.io
- beancount-exchangerates: a Beancount price source plugin using this API
- frankfurte-rs: Rust library and CLI to interface with this API
Frankfurter is built with Ruby. To contribute:
- Fork.
- Install dependencies with
bundle install. - Run tests with
APP_ENV=test bundle exec rake. - Push your changes to a feature branch.
- Open a pull request.
- Migrate to SQLite
- Add API versioning in path
- Multiple data providers (ECB, BOC, TCMB)
- v2 API with normalized response format
- Deploy as a blockchain oracle