API
The data behind the site, over HTTPS
The Arbsuite API serves live Solana arbitrage observations: landed arbs with per-leg routes, provider evidence, wallet P&L aggregates, the engine's tracked-mint registry, and the token and market leagues behind Tokens and Markets.
Authentication is one header: an account key as a bearer token, or on x-arbsuite-key. The customer API requires a paid account key. See
Authentication below.
Keys are created in Account on the paid plans. Questions: [email protected]
Base URL
https://api.arbsuite.com/v1
The same versioned API is available at https://arbsuite.com/api/v1. All documented operations are GET reads. Replace path placeholders such as {mint} and set SINCE to a Unix timestamp before running an example.
Authentication
Every request carries an account key. Keys are created in Account on Searcher (5 keys) and Searcher+ (10 keys) and Researcher (25 keys); the secret is shown
once and can be revoked there. Send it as a bearer token, or in x-arbsuite-key:
Authorization: Bearer ars_… x-arbsuite-key: ars_…
A key acts as its account's plan: the same windows, row caps, budgets and export sizes as the site. Missing, malformed or revoked keys return 401; a plan without API access returns 403. Keys are read-only: they cannot change accounts, preferences, billing or operator settings. Keep them on your server, not in browser code, URLs, screenshots or public repositories.
Limits by plan
| Plan | API keys | Requests / min | Heavy / min | Heavy in flight | History rows / day | Export rows | Exports / day |
|---|---|---|---|---|---|---|---|
| Guest | — | 600 | 120 | 4 | 50,000 | — | — |
| Normal | — | 600 | 120 | 4 | 250,000 | — | — |
| Searcher | 5 | 2,400 | 600 | 16 | 10,000,000 | 100,000 | 200 |
| Searcher+ | 10 | 4,800 | 1,200 | 32 | 25,000,000 | 250,000 | 500 |
| Researcher | 25 | 9,600 | 2,400 | 64 | 100,000,000 | 500,000 | 1,000 |
Requests and heavy queries are per minute. All keys and browser sessions share the account allowance; creating more keys does not increase it. Live first-page reads do not spend the history-row budget, but still count as requests and are rate limited. History, deeper pages and exports are metered. Heavy in flight is the plan ceiling; process-wide safety limits also apply. At most two export streams and four live feeds can be open per account. Follow Retry-After on 429 and use exponential backoff with jitter.
Error bodies
| Status | Body | When |
|---|---|---|
| 400 | {error:'invalid', message} | A malformed request. |
| 401 | {error:'auth', message} | No key, or a revoked one. |
| 403 | {error:'plan', needs, feature, message} | The plan lacks the feature; needs names the lowest plan that has it. |
| 403 | {error:'csrf'} or {error:'step_up'} | Browser sessions only: a cross-site request, or a fresh wallet signature is needed. |
| 409 | {error:'invalid', message} | The wallet belongs to another account. |
| 429 | {error:'budget', resets_at} | The daily row or export budget is spent. |
| 429 | {error:'ask_quota', next_at, plan} | The Ask Arbie allowance is spent. |
| 429 | {error:'rate limited', bucket, retry_after} | A per-minute limit; wait retry_after seconds. |
| 503 | {error:'unavailable'} or {error:'lockdown'} | Sign-in is not configured, or paused. |
Every error is JSON with cache-control: no-store.
Arbitrage receipts
/arbsLanded arbitrage observations with decoded routes, fee breakdowns and evidence-backed landing attribution.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/arbs?since=$SINCE&limit=25" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| limit | integer | Maximum rows. The plan and endpoint impose protective caps. |
| offset | integer | Zero-based offset; default 0. |
| wallet, provider, bot, submission, client, dex, mint, pool | string | Optional exact filters. |
Response
| Field | Type | Notes |
|---|---|---|
| total | integer | Matching observations. |
| items[] | object[] | Receipts: signature, observed_at, slot, transaction_index, fee_payer, token_mint, route, legs. |
| items[].profit_lamports | number | Modeled net profit after costs, in lamports. May be non-positive. |
| items[].tip_lamports, priority_fee_lamports | number | Landing tip and priority fee, counted once in costs. |
| items[].landing_channel, landing_kind, landing_confidence | string | Attribution and its confidence. Not proof beyond the observed evidence. |
| items[].legs | object[] | Decoded venues, canonical market addresses, inputs and outputs; unresolved routes retain fallback fingerprints. |
Live snapshot
/arbs/latestSmall recent receipt snapshot for reconciliation after a stream disconnect.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/arbs/latest?limit=25" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| limit | integer | Requested recent rows. |
Response
| Field | Type | Notes |
|---|---|---|
| items[] | object[] | Recent receipts in the same item shape as /arbs. |
Live feed
/arbs/streamServer-Sent Events, not WebSockets. Use a server-side streaming client that can send the Authorization header. Reconnect and reconcile with /arbs/latest; this is a best-effort feed, not a durable delivery guarantee.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/arbs/stream" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| Last-Event-ID | header | Optional last received SSE event id. |
Response
| Field | Type | Notes |
|---|---|---|
| Content-Type | text/event-stream | SSE event framing; process incrementally, do not parse as one JSON response. |
| Connection lifetime | 5 minutes | Reconnects reauthenticate. At most four open streams per account; a process-wide cap also applies. |
Filter vocabulary
/arb-facetsAvailable filters and counts for a receipt window.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/arb-facets?since=$SINCE" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
Response
| Field | Type | Notes |
|---|---|---|
| facets | object | Filter values, companion labels and observation counts; entity lists are bounded. |
Time series
/arb-seriesTime-bucketed arbitrage economics, costs, attempts and landing breakdowns.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/arb-series?since=$SINCE&step=300" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| step | integer | Requested bucket width in seconds; the engine normalizes it. |
| wallet, bot | string | Optional scope. |
Response
| Field | Type | Notes |
|---|---|---|
| since, step_secs | integer | Actual series start and bucket width. |
| buckets[] | object[] | ts, count, net_lamports, gross_lamports, cost_lamports and fee/tip breakdowns. |
| buckets[].attempt_failed_count, attempt_noop_count | number | Attempt counters where collected. |
| by_asset, by_provider, by_bot, by_landing | object[] | Economics grouped by asset, provider, bot or landing method; coverage-dependent fields can be absent. |
Searcher rankings
/arb-walletsWallet rankings with landed economics and attempt costs.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/arb-wallets?since=$SINCE&limit=25" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| limit | integer | Maximum rows. The plan and endpoint impose protective caps. |
| offset | integer | Zero-based offset; default 0. |
| sort, dir | string | Sort such as after, net or count; asc or desc. |
Response
| Field | Type | Notes |
|---|---|---|
| since, total | integer | Actual window start and matching wallet count. |
| items[] | object[] | wallet, bot, count, net_lamports, gross_lamports, tip_lamports, fee_lamports and attempt/cashback fields when collected. |
Bot rankings
/botsSearcher wallets aggregated by attributed bot program. This is a bounded aggregate, not a bulk wallet export.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/bots?since=$SINCE" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
Response
| Field | Type | Notes |
|---|---|---|
| rows[] | object[] | Per-program aggregates. |
| wallets_total, wallets_seen | integer | Total active wallets and the number included. |
| complete | boolean | False means the upstream scan was truncated; do not treat it as a complete league. |
Wallet realized P&L events
/wallet-pnlCashback claim events and modeled realized P&L additions; this is not a complete wallet balance or total portfolio P&L.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/wallet-pnl?wallet=$WALLET&since=$SINCE" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| wallet | string | Solana searcher wallet public key. Required for wallet-specific endpoints. |
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| limit | integer | Maximum rows. The plan and endpoint impose protective caps. |
| offset | integer | Zero-based offset; default 0. |
Response
| Field | Type | Notes |
|---|---|---|
| items[] | object[] | signature, event_type, amount_lamports, fee_lamports, pnl_lamports, slot, observed_at. |
| count, amount_lamports, fee_lamports, pnl_lamports | number | Window totals. |
| cashback_balance | object | Observed claimable Pump and PumpSwap balances with observation time/slot. |
Wallet attempts
/wallet-attemptsFailed and no-op landed attempts, their costs and failure reasons. Paid keys receive the full paginated detail available to their plan.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/wallet-attempts?wallet=$WALLET&since=$SINCE&limit=25" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| wallet | string | Solana searcher wallet public key. Required for wallet-specific endpoints. |
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| limit | integer | Maximum rows. The plan and endpoint impose protective caps. |
| offset | integer | Zero-based offset; default 0. |
Response
| Field | Type | Notes |
|---|---|---|
| failed_count, noop_count | integer | Window attempt totals. |
| fee_lamports, processing_fee_lamports, priority_fee_lamports, tip_lamports | number | Burn and its components. |
| by_error[] | object[] | Grouped failure evidence. |
| items[] | object[] | Paginated observed attempts. |
Wallet competitive analysis
/wallet-insightsObserved missed-token and shared-slot comparisons. Expensive: cache results and request on demand.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/wallet-insights?wallet=$WALLET&since=$SINCE" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| wallet | string | Solana searcher wallet public key. Required for wallet-specific endpoints. |
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
Response
| Field | Type | Notes |
|---|---|---|
| mine | object | Window arbs, net_lamports, slots and tokens. |
| missed_tokens[] | object[] | Observed opportunities on tokens not traded by the wallet. |
| shared_slots | object | Overlap classifications and evidence samples; these are analytical classifications, not guaranteed counterfactual profit. |
Route rankings
/arb-routesDecoded route activity and economics.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/arb-routes?since=$SINCE&limit=25" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| limit | integer | Maximum rows. The plan and endpoint impose protective caps. |
| offset | integer | Zero-based offset; default 0. |
| wallet | string | Optional wallet scope. |
Response
| Field | Type | Notes |
|---|---|---|
| items[] | object[] | Route aggregates and associated observed economics. |
Mint aggregates
/arb-mintsEngine mint aggregates; use /tokens for the ledger token league and its contention fields.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/arb-mints?since=$SINCE&limit=25" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| limit | integer | Maximum rows. The plan and endpoint impose protective caps. |
| offset | integer | Zero-based offset; default 0. |
Response
| Field | Type | Notes |
|---|---|---|
| items[] | object[] | Per-mint window aggregates. |
Token league
/tokensLedger-backed token rankings, market coverage and contention economics.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/tokens?since=$SINCE&page=1&limit=25" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| page | integer | One-based page; default 1. |
| limit | integer | Rows per page, at most 100. |
| sort | string | Endpoint-specific ranking metric; default is the page default. |
| dir | asc | desc | Ranking direction. |
| step, q, dex | string | Optional chart width, search and venue filter. |
Response
| Field | Type | Notes |
|---|---|---|
| items[] | object[] | Token identity and window economics. |
| window | object | Whole-window denominators, net/gross lamports, searchers, decoded share and observed SOL/USD rate. |
| computed_at, reach | integer | Snapshot time and earliest ledger coverage, in Unix seconds. |
| contention fields | number | null | Attempt pressure, racing wallets and burn where the engine has coverage. |
Token dossier
/tokens/{mint}One token: window totals, series, markets, searchers and contention evidence.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/tokens/{mint}?since=$SINCE" \
-H "Authorization: Bearer $ARBSUITE_KEY" Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
Response
| Field | Type | Notes |
|---|---|---|
| totals, series | object | Window economics and chart data. |
| markets, searchers | object[] | Observed market and wallet breakdowns. |
| contention | object | null | Available attempt-pressure evidence; null is not zero. |
Market league
/marketsCanonical decoded pools and markets ranked by observed arbitrage.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/markets?since=$SINCE&page=1&limit=25" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| page | integer | One-based page; default 1. |
| limit | integer | Rows per page, at most 100. |
| sort | string | Endpoint-specific ranking metric; default is the page default. |
| dir | asc | desc | Ranking direction. |
| q, dex | string | Optional search or venue filter. |
Response
| Field | Type | Notes |
|---|---|---|
| items[] | object[] | Canonical address, venue, mints and window economics. |
| window | object | Whole-window economics and coverage denominators. |
| markets_total, computed_at | integer | Matching markets and snapshot time. |
| items[].liquidity | object | null | The pool's reserves after the last transaction that moved them: usd (the selected reserve side in USD, preferring quote), usd_side (quote or token), quote_usd (the quote valuation, null if unavailable), at and slot (that transaction), source, quote and token ({mint, amount as a decimal string, decimals}). Verified finalized reserves; reserve_value_usd sums only sides with supported current USD references; valuation_complete is false for a partial estimate. quote_valuation and token_valuation retain each unit price, source market, source time, admission metadata and expiry, including explicitly excluded unverified marks. valuation_status is priced, partial, unverified or unpriced. Cache reads enforce price and reserve expiry. USD remains an estimate and reserves do not measure executable depth; expired reserves retain raw evidence without a USD headline. Sortable by reserve_value_usd with sort=liquidity. |
Market dossier
/markets/{address}One canonical market: identity, totals, series, associated markets, winners and attempt contention.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/markets/{address}?since=$SINCE" \
-H "Authorization: Bearer $ARBSUITE_KEY" Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
Response
| Field | Type | Notes |
|---|---|---|
| market | object | null | Canonical market identity; null if no decoded leg has touched the address. |
| totals | object | null | Window arbs, searchers, economics and position/capital statistics. |
| contention | object | null | Known attempt activity, where observed. |
| liquidity | object | null | The reserves now (usd, at, slot, source, quote, token), the history over the window in buckets of step seconds (60 inside two days, 3600 beyond; series: ts, open, last, min, max, samples) and the figure the window opened at (start_usd). Every swap counted; a reserve, never executable depth. |
Landing channels
/sendersObserved provider/channel economics, positions and client distributions.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/senders?since=$SINCE" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| step | integer | Chart bucket size in seconds. |
Response
| Field | Type | Notes |
|---|---|---|
| senders[] | object[] | One row per landing path (channel and kind: a provider with both products is two rows, its bundles and its SWQoS landings) with observations and economics. |
| window, series, clients, shape | object | Totals, time series, client distribution and route/position shape. |
| thresholds | object | Thresholds used for economic inference; inferred channels must not be treated as proven delivery attribution. |
Landing-channel dossier
/senders/{channel}One channel’s searchers, validators, tokens, bid statistics and transaction positions.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/senders/{channel}?since=$SINCE" \
-H "Authorization: Bearer $ARBSUITE_KEY" Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| kind | bundle | swqos | Narrows a provider with both products to one of them; a one-product channel ignores it. |
Response
| Field | Type | Notes |
|---|---|---|
| searchers, validators, tokens | object[] | Channel-specific participants and economics. |
| bids, position | object | Quantiles and coverage counts. |
Validators
/validatorsBlock producers joined to landed observations and scheduled-slot-normalized economics.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/validators?since=$SINCE" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
Response
| Field | Type | Notes |
|---|---|---|
| rows[] | object[] | identity, self-reported client/version, scheduled_slots, mev_slots, arbs and net_lamports. |
| mapped_arbs, client_known_arbs | integer | Attribution coverage denominators. |
Token metadata
/metaDisplay metadata for a bounded list of token mints.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/meta?mints=$MINT" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| mints | string | Comma-separated public keys, at most 200. |
Response
| Field | Type | Notes |
|---|---|---|
| response | object | Token display metadata keyed by mint, as available. |
Entity lookup
/resolve/{q}Resolve a public key or transaction signature into known chain entities. API keys never receive an account’s private labels.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/resolve/{q}" \
-H "Authorization: Bearer $ARBSUITE_KEY" Request
Nothing to show
Response
| Field | Type | Notes |
|---|---|---|
| response | object | Known entity matches and receipt evidence; absence means not observed, not invalid on-chain. |
Top observations
/top-arbsHighest modeled net-profit observations in a window.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/top-arbs?since=$SINCE&limit=10" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| limit | integer | 1 to 25; default 10. |
Response
| Field | Type | Notes |
|---|---|---|
| items[] | object[] | Top observed receipts. |
Coverage horizon
/horizonEarliest observed arbitrage currently retained.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/horizon" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
Nothing to show
Response
| Field | Type | Notes |
|---|---|---|
| earliest | integer | null | Unix seconds; null if unknown. |
| checked_at | integer | Horizon check time. |
Partner capture
/partner-capturePublic-chain wallet capture on selected validator identities. This is separate from the private W4RD Partner API and its organization-scoped credentials.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/partner-capture?wallet=$WALLET&validators=$VALIDATORS&since=$SINCE" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
| Param | Type | Notes |
|---|---|---|
| wallet | string | Solana searcher wallet public key. Required for wallet-specific endpoints. |
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| validators | string | Required comma-separated validator identities. |
Response
| Field | Type | Notes |
|---|---|---|
| response | object | Partner-led versus other-slot capture, lost-race and window evidence for the selected wallet scope. |
Live blocks
/blocks/liveRecent observed blocks and their activity.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/blocks/live" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
Nothing to show
Response
| Field | Type | Notes |
|---|---|---|
| recent[] | object[] | Recent block summaries and coverage. |
Epoch grid
/blocks/epoch/{epoch}Activity grid for an observed epoch; use current for the latest observed epoch.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/blocks/epoch/{epoch}" \
-H "Authorization: Bearer $ARBSUITE_KEY" Request
Nothing to show
Response
| Field | Type | Notes |
|---|---|---|
| response | object | Epoch slots, leaders, activity grid and coverage metadata. |
Block receipts
/blocks/slot/{slot}Observed arbitrage and attempt receipts within one slot, in block order.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/blocks/slot/{slot}" \
-H "Authorization: Bearer $ARBSUITE_KEY" Request
Nothing to show
Response
| Field | Type | Notes |
|---|---|---|
| arbs[], attempts[] | object[] | Observed receipts; this is not every transaction in the chain block. |
Block detail
/blocks/cell/{slot}The block square’s metrics and first pages of arbs, searchers and pools. Further pages use /blocks/cell/{slot}/{list}, with list = arbs, searchers or pools and page starting at 1.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/blocks/cell/{slot}" \
-H "Authorization: Bearer $ARBSUITE_KEY" Request
Nothing to show
Response
| Field | Type | Notes |
|---|---|---|
| response | object | Block-square detail and bounded participant lists. |
Dataset downloads
/datasets/{name}Tracked tokens including intermediates, independent market analytics, or token tracking history. Mint rows contain tracking timestamps and required_by_mints, with no market metadata. Omit format for a JSON page; csv or json requests a capped export (json means NDJSON). History is retained registry change evidence, not unlimited chain history.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/datasets/{name}?limit=25" \
-H "Authorization: Bearer $ARBSUITE_KEY" Request
| Param | Type | Notes |
|---|---|---|
| limit | integer | Maximum rows. The plan and endpoint impose protective caps. |
| offset | integer | Zero-based offset; default 0. |
| format | csv | json | Optional download format; consumes one export allowance. |
Response
| Field | Type | Notes |
|---|---|---|
| items[], count, offset, limit, generated_at | object | Paginated snapshot envelope without a format parameter. |
| download | CSV | NDJSON | Raw identifiers and selected dataset columns, not private account labels. |
Table exports
/export/{table}Download arbs, searchers, tokens, markets, validators, senders or blocks. CSV by default, or newline-delimited JSON. Exports honor backpressure and stop fetching when disconnected.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/export/{table}?since=$SINCE&format=json" \
-H "Authorization: Bearer $ARBSUITE_KEY" Request
| Param | Type | Notes |
|---|---|---|
| since | integer | Window start in Unix seconds; supply it explicitly. |
| until | integer | Optional exclusive window end in Unix seconds. Omit for a rolling window. |
| format | csv | json | json returns application/x-ndjson, one object per line. |
Response
| Field | Type | Notes |
|---|---|---|
| X-Arbsuite-Rows-Max | header | Protective maximum rows for this export. |
| Content-Disposition | header | Suggested download filename. |
Key usage
/usageUsage for the authenticating key plus its account’s shared allowance. No accountId or keyId selector is accepted.
curl --fail-with-body -sS "https://api.arbsuite.com/v1/usage" \ -H "Authorization: Bearer $ARBSUITE_KEY"
Request
Nothing to show
Response
| Field | Type | Notes |
|---|---|---|
| keyId, scope, plan | string | Public key identifier, data:read scope and effective plan. |
| usage | object | UTC day, requests admitted to API limiting, historyRows and exports. |
| accountUsage | object | Shared account history rows and export usage/budgets. |
| limits | object | Plan rate and concurrency limits. Keys do not multiply the account allowance. |
Check actual since/until fields and X-Arbsuite-Clamped rather than assuming your requested window was served unchanged. Engine reads generally cap each window at 24 hours; arb-series, arb-wallets and arb-routes can stitch pinned multi-day windows. Ledger leagues and dossiers accept up to 7 days. Null and missing coverage fields do not mean zero. Lamports are 10⁻⁹ SOL; use an integer-safe JSON parser for values beyond JavaScript's safe integer range.
Revoking a key in Account clears this process’s cache immediately; external account/key changes can take up to 30 seconds to reach a cached key. Existing live streams end within five minutes and must reauthenticate. Account shows per-key daily requests, history rows and last use. Request telemetry is buffered and persisted every ten seconds; it is operational tracking, not an exactly-once billing ledger. The website's guest preview is intentionally public and limited; copying its requests does not confer paid or operator access.