Build & operate
API reference
Public read endpoints for markets, accounts, prices, and buyback history. The API does not sign transactions.
Base URL and data conventions
https://app.fiatex.trade/apiRead responses are JSON. Integer monetary values are decimal strings, not floating-point numbers. Timestamps are Unix seconds. Native-USDC amounts use 18 decimals. Quote amounts use that currency’s decimals: USDC and EURC 6, cirBTC 8, MARCO and fx currencies 18. FiatEx token amounts use 18. A missing live price is null, not zero. The config response includes external currency metadata and pool keys.
Read endpoints need no API key. Responses are uncached at the HTTP layer; price reads may use a five-second in-process cache. Treat all quotes and indexed data as time-sensitive. This API is not a price reservation or an execution guarantee.
curl -fsS https://app.fiatex.trade/api/config
curl -fsS 'https://app.fiatex.trade/api/assets?kind=token&offset=0'Read endpoints
| Request | Returns |
|---|---|
GET /config | Deployment status and addresses, currency feeds, fee bounds, supply and bonding settings, and buyback support. |
GET /assets | Up to 25 items. Optional kind=token or currency, q (up to 64 characters), and offset (0 to 100000). Follow nextOffset until null. |
GET /assets/:token | Indexed asset, position, current price and market cap, supply/burn/queue totals, and current bonding progress when available. |
GET /assets/:token/trades | Latest 100 trades, newest block and log first. |
GET /assets/:token/buybacks | Latest 100 executions with quoteSpent, tokensBurned, timestamp, and transactionHash. |
GET /buybacks/pending | Up to 100 queued token addresses with lastBuybackAt. Pass the returned next address as after. This is a discovery queue, not a guarantee of executability. |
GET /accounts/:account | Up to 200 nonzero holdings and 200 launches, plus creator-wallet payments and buyback allocations grouped by quote asset. feeCredits lists claimable, totalDeferred, and totalClaimed balances by quote asset for that beneficiary. |
GET /fx/:code | Creation rate, observation/expiry times, and oracle update payload. Requires an active verified deployment. |
GET /metadata/config | Whether uploads are enabled, maximum image size, and accepted file types. |
GET /health, GET /ready | Ponder process health/readiness. These checks do not certify active contracts or live trading. |
Fields that need careful interpretation
supply is current supply; initialSupply is the original mint. burnedSupply includes all holder burns, while buybackTokensBurned includes only buyback executions. pendingBuybackQuote is still queued, and buybackQuoteSpent is cumulative actual spending.
creatorFeeBps is the full creator tax, even when some of it goes to buyback. buybackShareBps is a share of that tax. Account-level creatorFees are wallet payments, not the full creator-tax amount.
External-router trades can have null trader or nativeUsdcAmount fields. The indexer knows the pool’s quote amounts but cannot invent the end-user wallet or a whole multihop route’s USDC result. Identify the source router and use the units provided.
POST /metadata
This endpoint accepts multipart/form-data with exactly four fields: name, symbol, image, and publicUpload set to the string true. The request Origin must match the configured launchpad origin. The server returns status 201 with uri, image, name, and symbol after both files are pinned.
It is intended for the launch form, not an unrestricted public pinning service. Pinata credentials stay on the server. The current per-process limits are five attempts per minute, 100 per day, and two concurrent uploads; these reset on process restart and are not user authentication.
Errors and inactive deployments
Errors use an error string. Invalid query values or addresses return 400; an unindexed asset returns 404. Uploads can return 403 for origin rejection, 415 for a wrong content type, 429 for limits, 502 for provider failure, or 503 when unavailable. Read-service/RPC failures also return 503.
When contracts are inactive, the configuration reports not_deployed, listings and pending queues are empty, and FX creation quotes are unavailable. Do not interpret those empty responses as evidence of a live market with zero volume.
A transaction can confirm before its asset is indexed. Retry the lookup after a short delay and check the receipt separately. Consumers should tolerate unknown fields, validate amounts and addresses, and reject a mismatched deployment.
