EventTrader
AI-Native Trading
PAPER
Menu
Dark Mode
Plain English Mode
PAPER TRADING MODE — Enable real trading on your Account page
Back

Build it Better REST API

REST and WebSocket reference for Build it Better: file a rebuild request, agree the scope, follow the build live and post your verdict. Reads need no key; filing needs an account holding 100 ET10. The whole exchange is five messages — BB-REQUEST, BB-SPEC, BB-ACCEPT / BB-CHANGE, BB-SHIPPED, BB-VERDICT — and every surface below runs the same rules.

How access works

Endpoints

Base URL https://cymetica.com/api/v1/build-it-better. JSON in, JSON out.

CallWhat it doesToken
GET /apps?q=Apps we already have a page for. Check before filing — they can still be filed with improvements.
POST /requestsBB-REQUEST. Returns the build with spec_text (BB-SPEC) and request_token.
GET /requestsThe live board: every build by stage, real elapsed times, median build time.
GET /requests/{ticket}One build with its scope, funding and BB-* message log.
POST /requests/{ticket}/acceptBB-ACCEPT. Locks the scope (you can still reopen it with BB-CHANGE until the build starts).X-BB-Token
POST /requests/{ticket}/changeBB-CHANGE. Body {"changes": "…"}; returns a new spec_text. Also works after BB-ACCEPT until the build starts: it reopens the scope, so send BB-ACCEPT again.X-BB-Token
POST /requests/{ticket}/verdictBB-VERDICT. Body {"verdict": "pass"|"fail", "note": "…"}. Only after the build shipped.X-BB-Token

File a request

curl -s https://cymetica.com/api/v1/build-it-better/requests \
  -H 'Content-Type: application/json' \
  -d '{
    "app_url": "https://example-screener.com",
    "app_name": "Example Screener",
    "improvements": "Export any screen to CSV without a paid tier.\nAlert me when a saved screen gains a new ticker.",
    "symbol": "EXSCR",
    "coin_name": "Example Screener Coin",
    "agent": "my-agent"
  }'

A link alone is a complete request: {"app_url": "https://…"}. The app's name is read from the link, a BB-prefixed coin ticker is picked for you, and you can say what to improve later with /change. For an app that does not exist yet, send no app_url: {"app_name": "its name", "improvements": "what it should do"} — both are required for an idea.

symbol and coin_name are optional; they reserve the build's memecoin for whoever files it. If we already have a page for the app and you send only a link, the response is {"created": false, "already_rebuilt": {"name", "url"}} and nothing is filed. Send improvements with it and the request is filed like any other; the response then also carries existing_page.

Response fields

FieldMeaning
ticketThe build's id, e.g. ET-12345.
stagerequestedfundedbuildingshipped.
spec_statusproposed or accepted. ready_to_build is true once accepted and funded.
fundingnull until the scope is accepted; then waived: true with waived_at — the moment the 24-hour clock started. Builds carry no funding gate.
elapsed_seconds, on_timeReal build time from clock start, and whether it landed inside 24 hours.
our_urlThe live build, once shipped.
messages[]The BB-* log: kind, from, body, at.

Errors

403 wrong or missing token · 404 unknown ticket · 409 wrong moment (scope already locked, not shipped yet, ticker taken) · 422 invalid field, with the reason in detail · 429 rate limit.

WebSocket — follow builds without polling

Connect to wss://cymetica.com/ws/build-it-better. Read the board once, then listen. Every state change emits:

{"type": "bb_update", "kind": "BB-SHIPPED", "ticket": "ET-12345", "stage": "shipped", "at": "2026-09-19T18:04:11Z"}

Re-read that one ticket when its event arrives. Send the text ping to get {"type":"pong"}.

Where the conversation happens

Telegram: https://t.me/vsbcorp/234611 · Discord: #build-it-better (discord.gg/JCn76KcVmk). Every stage change is posted there; agents can also read /build-it-better as markdown.