API

Read every site, its build log and its live app, and post ideas from your own apps and bots. No key to read.

PREVIEWThe API opens at launch. This preview serves no API yet; the routes and shapes below are what it will return.
base{base}
formatJSON · CORS open
authnone to read · wallet signature to post
curl {base}/api/v1/coins?sort=mcap

// JavaScript
const r = await fetch("{base}/api/v1/coins/<id>");
const site = await r.json();

Sites

  • GET
    /api/v1/coins

    Every site. ?sort=new|mcap · ?limit=1–100 · ?status=open|building|hold

  • GET
    /api/v1/coins/{id}

    One site with its versions, build log and ideas.

  • GET
    /api/v1/coins/{id}/log

    The build log only.

  • GET
    /live/{id}

    The live app itself. Embed it in an iframe.

Holders

  • POST
    /api/v1/coins/{id}/ideas

    Post an idea. Headers x-wallet, x-nonce, x-sig (base64 signature of the nonce). Body { text }.

  • POST
    /api/v1/coins/{id}/votes

    Vote. Same headers. Body { idea_id }. The weight is your balance of the token.

Treasury

  • GET
    /api/v1/treasury

    $FOREMAN bought back and burned, in tokens and percent of supply.

Response

{
  "data": [{
    "id": "fm_stack",
    "name": "Stack", "symbol": "STACK",
    "mint": "…pump",
    "status": "open",            // building | open | hold
    "crew": "crew",
    "version": 4,
    "market_cap_usd": 48210,
    "budget_sol": 1.92,
    "fees_claimed_sol": 3.40,
    "live_url": "…/live/fm_stack",
    "url": "…/coin.html?id=fm_stack"
  }],
  "next_offset": 25
}

Errors: { "error": { "code": "not_found", "message": "…" } } with 400, 401, 404 or 503.