XML rate feeds

Public, unauthenticated XML rate feed for catalog listings.

Public, unauthenticated XML feed for catalog listings and rate monitors. One <item> per active pair, with <minamount> and <maxamount> bounds expressed in the source asset.

Live feed — point your aggregator at this URL.

/api/rates.xml

URLs

URLNotes
/api/rates.xmlPer-receive-network margin from the admin rate panel.
/rates/float.xmlByte-identical alias of /api/rates.xml: same snapshot, same ETag.

Response shape

Sample body
<?xml version="1.0" encoding="UTF-8"?>
<rates>
  <item>
    <from>BTC</from>
    <to>USDTTRC20</to>
    <in>1</in>
    <out>62450.12</out>
    <amount>120000</amount>
    <minamount>0.0002</minamount>
    <maxamount>0.08</maxamount>
  </item>
  <item>
    <from>ETH</from>
    <to>BTC</to>
    <in>1</in>
    <out>0.05418000</out>
    <amount>10</amount>
    <minamount>0.005</minamount>
    <maxamount>10</maxamount>
  </item>
</rates>

Each <item> encodes one active pair:

  • <from> and <to>: asset codes in the catalog dialect used by listing aggregators (BTC, USDTTRC20). Pairs whose source or destination is not in the catalog map are skipped.
  • <in>1</in>: the literal 1 (one unit of source).
  • <out>: receive amount for one unit of source, after the rate and the destination network fee.
  • <amount>: reserve depth in destination units, derived from the configured USD reserve floor at the current USD price.
  • <minamount> and <maxamount>: deposit window in source units. Both are quantised to the source asset’s precision and derived from the per-pair USD floor (default $1) and ceiling (default $5,000).

Field names minamount and maxamount are the post-2026-05-13 rename. Older mirror sites may still emit frommin and frommax; our feeds use the new canonical spelling.

Caching and ETag

Every response includes an ETag header (16-hex-char digest between quotes). Send it back as If-None-Match and the server returns HTTP 304 with no body when the snapshot has not changed. Snapshots are refreshed in the background and held briefly in-process per route, so polling does not amplify backend load. There is no per-caller rate limit on these endpoints.

Empty-state safety

When the rate feed is temporarily unavailable, the route returns HTTP 200 with an empty but well-formed <rates/> document instead of an error. Listing aggregators treat the absence of items as “exchange temporarily out of catalog” rather than as a parser failure.

Discovery

Point your aggregator registration at either URL. Because /api/rates.xml and /rates/float.xml are byte-identical aliases, your listing remains stable even if we collapse the URL space later. The recommended canonical URL is /rates/float.xml.

The XML feed pairs naturally with referral links: substitute the <from> and <to> values from each <item> into your /r/{code}?from=…&to=… URL template per row. The visitor lands on the homepage with that pair pre-filled, and any order they create earns per-code afftax automatically.

Partner API.
Same engine as 0trace.

A private partner integration surface. Signed quotes, server-side pricing, webhook delivery, multiple reference codes, and a self-serve cabinet — all backed by the production exchange engine.

Support

Questions? Answers.

Get the latest updates

Follow us on X

The 0trace team will never ask for KYC or AML. We retain no logs, metadata, or tracking cookies.

Learn more