Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tap-unirate

PyPI Meltano License

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.

Streams

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).

Install

pip install tap-unirate

Requires Python 3.10+ (matching the Meltano Singer SDK).

Or add it to a Meltano project:

meltano add extractor tap-unirate

Configuration

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

Usage

Standalone

# 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-jsonl

Example config.json:

{
  "api_key": "YOUR_UNIRATE_API_KEY",
  "base_currency": "USD"
}

Meltano

meltano config tap-unirate set api_key $UNIRATE_API_KEY
meltano config tap-unirate set base_currency EUR
meltano run tap-unirate target-jsonl

See examples/ for a sample config and the full discovery flow.

Development

pip install -e ".[test]"
pytest
ruff check tap_unirate tests

All 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.

Status

v0.1.0 — initial release. 3 streams. Built on singer-sdk >= 0.40.

Other UniRate clients

UniRate ships official client libraries and framework integrations across the ecosystem, all maintained under the UniRate-API org.

Get a free API key at unirateapi.com.

License

MIT.

Links

About

Singer tap for the UniRate API — currency exchange rates, currencies, and VAT rates for Meltano / ELT pipelines.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages