Skip to content
ubi.fun
Esc
navigateopen⌘Jpreview
On this page

REST data API

Markets, prices, candles, holders, and activity from our indexer. Public, no auth, cached at the edge.

Base URL: https://api.ubi.fun (Arc mainnet). Everything is public JSON over GET, no API key; abusive request rates are limited per IP, and most responses carry cache headers, so respect them and you will never be throttled. Addresses are lowercase hex throughout; USDC amounts use 6 decimals, coin amounts 18.

Markets

Endpoint What it returns
GET /markets Market list, newest first. limit, offset. sort=marketCap reorders the returned page by market cap (it does not rank the full set). addresses=0x..,0x.. (max 50) fetches specific coins. q= searches name and symbol, prefix matches first
GET /coin/:address/details Everything a market row carries plus description, volume24hEth, trades24h, priceChange24h, and the full fairLaunch state
GET /coin/:address/ohlcv OHLCV candles for charting. interval and limit query params
GET /coin/:address/activity Recent swaps for one coin. limit
GET /coin/:address/holders Holder list with balances
GET /token/:tokenId ERC721 metadata for a Flaunch NFT (standard name / description / image / attributes)

Every market row (list and details alike) carries identity (address, tokenId, creator, treasury, tokenUri, image), live pricing (priceUsd, marketCapUsd, sqrtPriceX96), and trading stats: lifetime txns and traders, volume24hUsd, athUsd, priceChangePercent for 1h/6h/24h windows, and a 48-point sparkline.

Launch timing rides on the same row: launchedAt (unix seconds), and the anti-sniper fair-launch window as fairLaunchStartsAt, fairLaunchEndsAt, fairLaunchEnded, and fairLaunchTokens (the initial fixed-price allocation, raw 18-decimal units, null when the launch had no window). The timestamps are event-derived, so fairLaunchEndsAt reflects an early close when the allocation sells out, and a coin is in its window exactly when startsAt <= now < endsAt and fairLaunchEnded is false. creatorFeeAllocation is the launcher’s permanent creator/BidWall split in hundredths of a percent (9000 = 90% creator / 10% floor), set once at launch with no setter.

poolId is the Uniswap v4 pool identifier: the keccak256 hash of the pool key. v4 pools live inside the PoolManager singleton and have no contract address of their own, so this bytes32 value is the canonical pair identifier; pairAddress is the same value under the name screener-style tooling expects. Coin details additionally serve the full poolKey (currency0, currency1, fee, tickSpacing, hooks) for quoting or swapping on-chain, verified server-side: it is only non-null when hashing it reproduces poolId.

Social links (website, twitter, telegram, discord) are read from the coin’s immutable metadata document and are null when the creator set none. Both metadata schemas in the wild are understood: ours (website / external_url, twitter, telegram, discord) and the Flaunch SDK’s (external_link, websiteUrl, twitterUrl, telegramUrl, discordUrl). Links are served only when they are scheme-safe (http, https, or schemeless).

Platform-wide

Endpoint What it returns
GET /activity Curated platform ticker (what the app’s live ticker reads): buys of $25 or more, every launch, and creator or holder claims of $1 or more. Not a raw swap feed; use /coin/:address/activity for that
GET /stats Platform totals: creator earnings, lifetime volume, and the USDC/USD rate
GET /health Indexer heartbeat: chain id, build, last indexed block and its update timestamp. Check this before trusting freshness

Holder pool (UBI)

Endpoint What it returns
GET /ubi/status Current epoch state of the daily USDC pool
GET /ubi/epoch/:day One day’s epoch: pool size and distribution
GET /ubi/:address An address’s cumulative entitlement and Merkle proof; pair with URD.claimed(account, reward) on-chain to compute what is still claimable
GET /user/:address/rewards An address’s referral earnings (history and totals) and creator withdrawal totals
GET /user/:address/activity An address’s swap history. limit

Uploads

POST /upload accepts a multipart image file plus metadata text fields (name, symbol, description, and optional website, twitter, telegram, discord links), pins both, and returns { tokenUri, image } as ipfs:// URIs ready for a launch. To iterate on metadata without re-pinning the image, pass an imageCid text field (the CID from a previous upload) instead of the file. IP rate limited; intended for launch flows, not bulk storage.

Example

curl -s 'https://api.ubi.fun/markets?sort=marketCap&limit=3'
curl -s 'https://api.ubi.fun/coin/0x.../details'
curl -s 'https://api.ubi.fun/health'

Field names are self-describing; treat absent fields as not-yet-indexed rather than zero. If you need something the API does not serve, the same data is all on-chain: Contracts and events lists the events our indexer builds these responses from.

Was this page helpful?