Strk.trade logo
/
Back to Strk.trade

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

API availableStable v1Starknet mainnet

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/v1

API endpoints

GET/api/v1

API status, version, documentation and endpoint discovery.

GET/api/v1/markets

Discover indexed markets and filter by pair, volume or market cap.

GET/api/v1/markets/{tokenAddress}

Read metadata, socials, quote asset and live statistics for one market.

POST/api/v1/quotes/trade

Request a live exact-input STRK buy or token sell quote.

POST/api/v1/transactions/trade

Prepare 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

01

Discover

Load an indexed market and retain its Starknet token address.

02

Quote

Request the current route, output and protected minimum.

03

Prepare

Build fresh ordered calls for the connected account.

04

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.code for 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.