A Singer tap for UniRateAPI, built on the Meltano Singer SDK. Pull live currency exchange rates, the supported-currency list, and country VAT rates into any Singer target or Meltano ELT pipeline.
| Stream | Endpoint | Primary key | Description |
|---|---|---|---|
currencies |
GET /api/currencies |
code |
One record per supported ISO 4217 currency code. |
exchange_rates |
GET /api/rates?from=<base> |
base_currency, currency |
Latest rate for every target currency against the configured base. |
vat_rates |
GET /api/vat/rates |
country_code |
Standard VAT rate per country (ISO 3166-1 alpha-2). |
Historical rates and time series are Pro-gated on the UniRate API and are intentionally not exposed by this tap (they return HTTP 403 on the free tier).
pip install tap-unirateRequires Python 3.10+ (matching the Meltano Singer SDK).
Or add it to a Meltano project:
meltano add extractor tap-unirate| Setting | Required | Default | Description |
|---|---|---|---|
api_key |
yes | — | UniRate API key. Get a free one at https://unirateapi.com. |
base_currency |
no | USD |
Base currency (ISO 4217) for the exchange_rates stream. |
base_url |
no | https://api.unirateapi.com |
Override the API base URL (mainly for testing). |
Full config reference:
tap-unirate --about --format=markdown# Discover the catalog
tap-unirate --config config.json --discover > catalog.json
# Sync records (Singer messages on stdout)
tap-unirate --config config.json --catalog catalog.json | target-jsonlExample config.json:
{
"api_key": "YOUR_UNIRATE_API_KEY",
"base_currency": "USD"
}meltano config tap-unirate set api_key $UNIRATE_API_KEY
meltano config tap-unirate set base_currency EUR
meltano run tap-unirate target-jsonlSee examples/ for a sample config and the full discovery flow.
pip install -e ".[test]"
pytest
ruff check tap_unirate testsAll tests are fully mocked with requests-mock
— no live API calls, no key required. The suite combines the Singer SDK's
standard tap tests (get_tap_test_class) with per-stream record assertions.
v0.1.0 — initial release. 3 streams. Built on singer-sdk >= 0.40.
UniRate ships official client libraries and framework integrations across the ecosystem, all maintained under the UniRate-API org.
- Languages: Python · Node.js / TypeScript · Go · Rust · Java · Ruby · PHP · .NET · Swift
- Data / orchestration: Airflow · dbt · LangChain
- Workflow / no-code: n8n · Google Sheets · MCP server
Get a free API key at unirateapi.com.
MIT.
- UniRate API docs: https://unirateapi.com/docs
- Meltano Singer SDK: https://sdk.meltano.com
- Issues: https://github.com/UniRate-API/tap-unirate/issues