Developers · Public API v1
Build on STRK.TRADE.
Connect bots, wallets and applications to Starknet market discovery, live execution quotes and non-custodial trading. No private keys, seed phrases or user custody.
Start integrating
Market data
Discover launches, trading pairs, socials and live public market statistics.
REST + TypeScript
Call JSON endpoints from any stack or use the typed reference client.
Non-custodial
STRK.TRADE prepares calls. The end user reviews, signs and submits them.
Base URL
https://strk.trade/api/v1API endpoints
/api/v1/markets/{tokenAddress}Read metadata, socials, quote asset and live statistics for one market.
/api/v1/quotes/tradeRequest a live exact-input STRK buy or token sell quote.
/api/v1/transactions/tradePrepare ordered Starknet calls for the user's wallet to sign.
Market filters
Use q, quote, sort, limit and offset. Sort supports new, volume, market-cap and change.
Response format
Successful responses return JSON under data. Lists also include pagination in meta. Errors return a stable error.code and message.
1. Discover markets
Fetch the newest indexed markets, then use each market's address for quotes and transaction preparation. Public market responses include the pair asset, metadata, socials, image, statistics and terminal URL.
const response = await fetch(
"https://strk.trade/api/v1/markets?sort=new&limit=20"
);
const { data: markets, meta } = await response.json();
console.log(markets[0].address, markets[0].quote.symbol);2. Request a live quote
Quotes are exact-input and expire after five minutes. For buy, the amount is denominated in STRK. For sell, it is denominated in the launched token. slippageBps: 100 means 1%.
const response = await fetch("https://strk.trade/api/v1/quotes/trade", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
tokenAddress: "0x...",
side: "buy",
amount: "10",
slippageBps: 100,
account: "0x..."
})
});
const { data: quote } = await response.json();Always display estimatedAmount, minimumAmount, the route and slippage before asking the user to continue.
3. Prepare and sign the trade
Request fresh ordered calls immediately before execution. STRK.TRADE returns unsigned Starknet calls; the connected Argent, Braavos or compatible account signs and submits them.
const response = await fetch("https://strk.trade/api/v1/transactions/trade", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
tokenAddress: "0x...",
side: "buy",
amount: "10",
slippageBps: 100,
account: starknetAccount.address
})
});
const { data: prepared } = await response.json();
await starknetAccount.execute(prepared.calls);Integration flow
Discover
Load an indexed market and retain its Starknet token address.
Quote
Request the current route, output and protected minimum.
Prepare
Build fresh ordered calls for the connected account.
Sign
Let the user review and execute from their own wallet.
Access, limits and security
No API key
Public v1 endpoints currently work without credentials and support browser CORS.
Fresh execution
Quotes and prepared calls expire after five minutes. Never reuse an old payload.
Wallet-owned
Never send a private key or seed phrase. Signing always happens in the user's wallet.
- • Quote requests are limited to 30 per minute per client; transaction preparation is limited to 15.
- • Validate addresses, amounts, minimum output and chain ID before wallet execution.
- • API v1 currently prepares direct Starknet STRK trades. SOL settlement and token launches are not exposed yet.
- • Use HTTP status codes plus
error.codefor recovery; do not retry invalid requests.
TypeScript SDK and partnerships
A typed TypeScript reference client is available for partner integrations. Until the public registry package is released, REST is the canonical production interface and works from TypeScript, Python, Rust or any HTTP-capable stack.
