Mobula: onchain data and execution APIs
Data APIs for prices, trades, wallets. Execution APIs for swaps and perps. Demo host needs no key.
devrels.xyz/a/281Mobula is real-time onchain trading and wallet infrastructure. The product is an API: market data, wallets, trades, then swap and perp execution on the same stack. Site: mobula.io. Docs: docs.mobula.io. Index: /llms.txt.
Intro copy says latency, coverage, and consistency. Data APIs cover 40-plus chains, including Solana. GitHub org MobulaFi. X: @MobulaIO.
Two hosts
Production is https://api.mobula.io/api/2. You need a key from admin.mobula.io. Demo is https://demo-api.mobula.io/api/2. Demo needs no key and is rate-limited. Docs say queries without keys are not production-ready.
Send the static key as Authorization or x-api-key. Bearer works on the Authorization header. Short-lived JWTs exist on paid plans. Those must be Authorization: Bearer only. Create them with POST /api/2/auth/tokens. The key-generation page still shows an /api/1 wallet example. Current data docs use /api/2. Start there.
| Piece | Job |
|---|---|
| Data APIs | Prices, OHLCV, trades, Pulse, wallets, labels |
| Execution APIs | Swaps, perps, alpha bridge |
| WebSocket | Pool, trade, and PnL streams |
| GraphQL | Explorer under /api-reference/graphql |
| TypeScript SDK | @mobula_labs/sdk |
A first price call
Docs tell you to query by address, not ticker. Solana wrapped SOL:
curl "https://api.mobula.io/api/2/token/price?address=So11111111111111111111111111111111111111112&blockchain=Solana" \
-H "Authorization: YOUR_KEY"Wallet holdings accept EVM and Solana addresses. GET /api/2/wallet/holdings is still marked alpha. Docs say fall back to /wallet/portfolio if it misbehaves. Pulse is the bonded / bonding / new-launch feed.
SDK and execution
Install @mobula_labs/sdk. Construct MobulaClient with the key from the dashboard. Data example in the docs is fetchMarketData. Swap example is getSwapQuote with chain, tokens, amount, slippage. Do not invent REST swap paths beyond what those pages print. Bridge quote / execute / status are labeled alpha and cover EVM, Solana, and HyperLiquid.
import { MobulaClient } from "@mobula_labs/sdk"
const client = new MobulaClient({ apiKey: process.env.MOBULA_KEY })
const marketData = await client.fetchMarketData({ asset: "bitcoin" })Support
Telegram t.me/mobuladevelopers. Discord, Slack, and [email protected]. Docs claim response times under an hour.
Keep reading
Create a customer request, get a grant, charge. Sandbox Network API. Keys expire in 30 days.
One key, chainid per chain. MCP for live data. Docs MCP needs no key. CLI: brew install etherscan/etherscan-cli/etherscan.
Give an agent live web context with POST https://api.exa.ai/search, or point MCP at mcp.exa.ai/mcp.
Get new articles in your inbox
Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.
