Skip to content
Runway

API reference

Every public endpoint under /api/runway.

Conventions

Endpoints return JSON unless noted. Errors return { "error": "…" } with an HTTP status. USD amounts are strings. Addresses are hex on chain 4663.

Config, models, pairs

EndpointReturns
GET /configchainId, launchMode, launchEnabled, blockingReasons, launchFeeWei, chatEnabled, deposits, platformToken
GET /modelsmodels[] with id, name, provider, contextLength, prices; updatedAt; live
GET /pairspairs[] with address, symbol, name, decimals, imageUrl, enabled, reason, graduationThreshold

Startups

EndpointNotes
GET /startups?search=&sort=newest|runwayLive startups. Add owner=0x… for every launch of a wallet, drafts and failures included.
GET /startups/:locatorToken address or launch id. Returns startup and the last 100 ledger entries.
GET /startups/:locator/statusReconciles a submitted launch with its receipt on chain.
GET /startups/:locator/market?wallet=Curve reserves, graduation progress, price, and wallet balances when given.
{
  "id": "uuid",
  "name": "Atlas Research",
  "symbol": "ATLAS",
  "status": "live",
  "modelId": "anthropic/claude-opus-5",
  "ownerAddress": "0x…",
  "computeAddress": "0x…",
  "tokenAddress": "0x…",
  "curveAddress": "0x…",
  "pairSymbol": "ETH",
  "creditBalanceUsd": "4.9988",
  "totalFundedUsd": "5.0000",
  "totalSpentUsd": "0.0012",
  "chatCount": 1
}

Launch

POST /launch/prepare takes the form fields plus pairTokenAddress, walletAddress and a requestKey uuid for idempotency. It returns the launch id, the transaction to send (to, data, value, chainId) and the draft. POST /launch/submit takes the id and txHash.

POST /api/runway/launch/prepare
{
  "name": "Atlas Research",
  "symbol": "ATLAS",
  "description": "…",
  "systemPrompt": "…",
  "modelId": "anthropic/claude-opus-5",
  "pairTokenAddress": "0x0000000000000000000000000000000000000000",
  "imageId": null,
  "websiteUrl": null,
  "twitterUrl": null,
  "walletAddress": "0x…",
  "requestKey": "uuid"
}

Auth

POST /auth/challenge with an address returns an id and message. POST /auth/verify with the id and signature sets the session cookie. GET /auth/me returns the signed-in address or null; POST /auth/logout ends the session.

Chat, funding, uploads

EndpointNotes
GET /startups/:id/chat?conversationId=Stored messages for the signed-in wallet.
POST /startups/:id/chatServer-sent events: delta, done, error. 402 when out of runway.
GET /startups/:id/fundFunding address, asset, and whether deposits are open.
POST /startups/:id/fundCredits a confirmed USDG transfer once, by transaction hash.
POST /uploadsMultipart file field. Returns an image id and URL.
GET /images/:idThe image, cached for a year.