Developers · Terminal API v1

Build on CoinlyFans

Terminals and bots can read every coin's fee share: who it pays, what it collected, payouts and burns. Read-only, free and open.

No API key

Open GET endpoints, no sign-up

300 / min

Per client address, 15 s cache

CORS *

Call it straight from the browser

Quick start

Base URL https://api.coinlyfans.fun/api/v1. Everything answers JSON and no header is needed. Start with the list, then read one coin's fees.

curl "https://api.coinlyfans.fun/api/v1/coins?fee_sharing=native&limit=5"
curl "https://api.coinlyfans.fun/api/v1/coins/3Aeyo7rj51KqwrvLtUZiq1e9wnySsPDsFHBJ4ivaboob/fees"
curl "https://api.coinlyfans.fun/api/v1/coins/3Aeyo7rj51KqwrvLtUZiq1e9wnySsPDsFHBJ4ivaboob/payouts?limit=20"

Machine-readable contract: openapi.json.

Try it

GEThttps://api.coinlyfans.fun/api/v1/coins?limit=1

Endpoints

EndpointWhat you get
GET /coinsEvery coin with a recorded fee split. Filters: fee_sharing (native, lp or std), since (ISO date). Paged with limit and cursor.
GET /coins/{mint}One coin: mint, ticker, name, image, pair, fee sharing mode, fee tier, holder reward, charity and links.
GET /coins/{mint}/feesWho the creator fee pays and in what shares: fee tier, split in bps (holders, charity, $CF buyback-burn, LP), holder reward mode with basket mints, charity, fee wallet, claim cadence (about every 3 minutes) and payout redirects.
GET /coins/{mint}/earningsClaimed creator-fee totals and recent claim transactions, from recorded ledger rows only.
GET /coins/{mint}/payoutsHolder payout totals and recent transactions. Charity donations are listed separately when the coin has a charity.
GET /coins/{mint}/burnsRecorded burns. A figure that is not tracked comes back as available: false with a reason, never an estimate.
GET /openapi.jsonThe OpenAPI 3.1 document for everything on this page.

Paging and formats

  • Lists take limit (1 to 200, default 50). When there is more, the answer has next_cursor: send it back as cursor. total is the full filtered count.
  • Token amounts and lamports are decimal strings, so nothing loses precision. Times are ISO 8601 in UTC.
  • Shares come as basis points (_bps) and as percents (_pct), always of the gross creator fee.
  • Only recorded data is returned. Anything not tracked is null or available: false with a reason, never made up.

Example: GET /coins/{mint}/fees

A charity coin on a wBTC pair: 50% donated to BCRF in SOL, 50% paid to holders in $BTC.

{
  "data": {
    "mint": "3Aeyo7rj51KqwrvLtUZiq1e9wnySsPDsFHBJ4ivaboob",
    "fee_sharing": "native",
    "fee_tier_bps": 300,
    "fee_tier_pct": 3,
    "split": {
      "cf_buyback_burn_bps": 0,
      "lp_bps": 0,
      "charity_bps": 5000,
      "holders_bps": 5000,
      "cf_buyback_burn_pct": 0,
      "lp_pct": 0,
      "charity_pct": 50,
      "holders_pct": 50,
      "unit": "percent_of_gross_creator_fee"
    },
    "split_note": "Of each claimed creator-fee credit: 50% is donated in SOL to the named charity through Donate.gg; 50% is paid to holders. Percentages are of the gross credit.",
    "cuts_apply": false,
    "holder_reward": {
      "mode": "btc",
      "mint": "C5xph2yL6gMdxmuLGxJBkGpmuDFfyi5fqkBNhvL6pump",
      "symbol": "BTC",
      "quote_mint": "3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh"
    },
    "charity": {
      "id": "bcrf",
      "name": "Breast Cancer Research Foundation",
      "ein": "13-3727250",
      "website": "https://www.bcrf.org/",
      "provider": "donate.gg",
      "asset": "SOL",
      "sharePct": 50,
      "platformFeeBps": 300
    },
    "fee_wallet": "63hBJ4cvCbKcmRdRRzR9J3hUUAfstHaXECJeP1G38Qcj",
    "claim_cadence": {
      "interval_ms": 180000,
      "interval_seconds": 180,
      "note": "Creator fees are claimed into the fee wallet about every 180 seconds when the fee crank is running."
    },
    "payout_redirects": [],
    "on_chain": {
      "fee_sharing": "pump.fun fee-sharing config pays 100% of creator fees to the fee_wallet."
    }
  },
  "meta": { "updated_at": "2026-11-13T22:55:13.789Z", "api_version": "v1" }
}

Charity and cuts

  • Charity coins: 50% of the creator fee is donated in SOL to the named charity (Breast Cancer Research Foundation, through Donate.gg) and 50% goes to holders. The answer shows charity_bps: 5000 and holders_bps: 5000, plus the charity's details. Charity works with any holder reward, baskets included.
  • 5/10 cuts: a small list of mints sends 5% to a $CF buyback-burn and 10% to the LP before anything else. For those, cuts_apply is true and the split already includes cf_buyback_burn_bps: 500 and lp_bps: 1000. Holders and charity share what is left. Every other coin shows 0 for both.
  • Claims: creator fees land in the fee wallet and are claimed about every 3 minutes, then paid out. payout_redirects lists any payout sent to a different wallet.

Errors and rate limits

Every error has the same shape:

{ "error": { "code": "rate_limited", "message": "Limit is 300 requests a minute for this address." } }
StatusCodeMeaning
400bad_limit, bad_cursor, bad_since, bad_fee_sharing, invalid_mintA parameter is not one the endpoint takes. The message says what is allowed.
404not_foundNo such coin or endpoint.
429rate_limitedOver 300 requests a minute. Wait the seconds in Retry-After.
5xxinternalOur side. Retry with a short backoff.

Every answer carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, plus an ETag. Send it back as If-None-Match and an unchanged answer comes back as an empty 304.

Versioning

v1 only gains fields. Nothing in it is renamed or removed; a breaking change ships as v2, announced 90 days ahead. v1 is read-only: it does not launch coins and takes no keys.