Sync-Convert

About Sync-Convert

The problem we started with

Most exchange rate APIs hand you a number and nothing else. You cannot tell whether it was captured a second ago or last Friday, which source produced it, or whether the provider had quietly fallen back to a stale cache. When a customer disputes a converted amount, you have no way to reconstruct what the rate actually was when you quoted it.

That is fine until it isn't. It stops being fine the first time you have to explain a pricing discrepancy to a finance team.

What we do differently

Every response carries its own provenance: as_of, the exact millisecond the tick was captured; age_ms, how old it was when we served it; source_tier, which class of source produced it; and stale, set when every live source is unavailable and we are serving the last known value.

Freshness becomes something you can assert in a test and log alongside a transaction, rather than a claim in our marketing copy.

How the rates are produced

Rates are normalised against a single pivot currency and cross rates are derived on read, never stored. This means EUR/USD and USD/EUR can never drift apart, because there is only ever one number.

Incoming ticks are compared against the European Central Bank's daily reference. Anything deviating by more than 2% is quarantined and alerted rather than served — that catches a source returning an inverted or decimal-shifted rate before it reaches your application.

Crypto prices come directly from major exchange feeds. Rates are held as decimals from ingestion to response and never round-tripped through a floating point number.

How we charge

One upstream feed is cached and served to every customer, so serving fresh rates costs us nothing per tenant. Withholding freshness from cheaper plans would be an artificial paywall, so we don't: the price differences are volume, WebSocket streaming and history depth.

You are billed in call credits rather than raw requests, so a single rate lookup does not cost the same as a multi-year time series. And if we raise list prices, existing customers keep the terms they signed up on — permanently.

On data licensing

Redistributing market data to third parties is a specific right that most affordable data plans explicitly forbid. We take that seriously: our ingestion layer refuses to serve any source we do not hold redistribution rights for, which means we cannot accidentally build on data we are not allowed to resell to you.