Chord Account and health API
Your key, and the service's own health.
Your key, and the service's own health.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/getchord-xyz:getchord-xyz-account-and-health-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Chord Account and health API
version: '2026-10-05'
summary: Trade, data and agent endpoints for eight EVM chains (Ethereum 1, Arbitrum One 42161, Base 8453, BNB Chain 56, Avalanche 43114, Monad 143, Arc 5042, Robinhood Chain 4663) and Solana (data and swaps).
description: 'Chord is a non-custodial trading app and on-chain data index. The API has three kinds of endpoint:
- **Trade**: `/quote` finds the best route across every venue on the chain; `/swap` turns it into a transaction you sign yourself. Chord never holds funds or keys.
- **Read**: every swap on the chain, rolled up by token, venue and hour, from Chord''s own index — tokens, launches, holders, top wallets, portfolio PnL, liquidity positions and pools. No key needed. Avalanche, Base, BNB Chain, Arbitrum One and Ethereum have the same rollups under `/chains/{chain}/*`; Solana has its own data family under `/chains/solana/*` (base58 addresses, case-sensitive) and its swaps under `/sol/trade/*`.
- **Agent**: the analyst (`/ask`) and the streams.
Amounts are decimal strings in the token''s smallest unit. Timestamps are Unix seconds unless the field is `updatedAt` (milliseconds). `GET /portfolio/{wallet}` and `/portfolio/{wallet}/activity` differ on both: amounts there are in whole tokens and every time is in milliseconds. Reads answer anonymous callers at 60 requests a minute per IP; an `X-API-Key` header raises that to your plan. Every non-2xx body is `{ error, message }`.'
contact:
name: Chord
url: https://getchord.xyz/developer
x-logo:
url: https://getchord.xyz/chord/pwa-192x192.png?v=20261019
servers:
- url: https://api.getchord.xyz/v1
description: Production
tags:
- name: Account and health
description: Your key, and the service's own health.
paths:
/relayers:
get:
tags:
- Account and health
operationId: relayers
summary: Relayer gas health
description: 'For each chain Chord''s relayer pays gas on (Monad gasless swaps, Robinhood Permit2 swaps, Arc CCTP mints): its address, native balance, current gas price and the estimated transactions that balance still covers. `ok` = above the floor; the cross-chain planner stops routing through a relayer that is not ok.'
parameters:
- name: force
in: query
required: false
schema:
type: string
enum:
- '1'
description: Re-read now instead of the 60 s cache.
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
minTx:
type: integer
description: The floor.
relayers:
type: array
items:
type: object
properties:
chainId:
type: integer
description: ''
name:
type: string
description: ''
symbol:
type: string
description: ''
role:
type: string
description: ''
configured:
type: boolean
description: ''
address:
type:
- string
- 'null'
pattern: ^0x[a-fA-F0-9]{40}$
description: EVM address, hex, case-insensitive.
balance:
type:
- string
- 'null'
pattern: ^\d+$
description: Amount in the token's smallest unit, as a decimal string. Never a float.
gasPrice:
type:
- string
- 'null'
pattern: ^\d+$
description: Amount in the token's smallest unit, as a decimal string. Never a float.
gasPerTx:
type: integer
description: ''
txRemaining:
type:
- integer
- 'null'
description: ''
ok:
type: boolean
description: ''
checkedAt:
type: integer
description: Unix time, milliseconds — when the server built this answer.
error:
type: string
description: ''
updatedAt:
type: integer
description: Unix time, milliseconds — when the server built this answer.
/me:
get:
tags:
- Account and health
operationId: me
summary: Your key's plan and usage
description: The limits Chord applies to an API key and the calls counted against them. Keys are made at getchord.xyz/ask under Settings, API. Not metered, and answered when the key's calls are used up.
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
email:
type:
- string
- 'null'
description: ''
tier:
type:
- string
- 'null'
enum:
- free
- build
- grow
- builder
- pro
- null
description: 'The plan in effect now: a paid plan past its end reads `free`. `null` for an unlimited key or a key with no plan on it.'
unlimited:
type: boolean
const: true
description: Present only on a key issued by the Chord team with no rate or call cap.
limits:
type: object
properties:
rpm:
type:
- integer
- 'null'
description: Requests a minute. `null` = no cap.
monthly:
type:
- integer
- 'null'
description: Calls in any 30 days. `null` = no cap.
priceUsd:
type:
- number
- 'null'
description: ''
label:
type: string
description: ''
usage:
type: object
properties:
today:
type: integer
description: ''
month:
type: integer
description: Calls in the trailing 30 days, today included.
description: 'The calls the cap counts: every key of the account when the key belongs to one.'
quota:
type: integer
description: A key's own call cap, in place of its plan's.
tierUntil:
type: integer
description: When the paid plan ends (ms).
expiresAt:
type: integer
description: When the key stops working (ms).
example:
email: you@example.com
tier: build
limits:
rpm: 100
monthly: 16000
priceUsd: 99
label: Build
usage:
today: 812
month: 9210
tierUntil: 1764547200000
'401':
description: Missing or unknown credential (`UNAUTHORIZED`).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- ApiKey: []
/health:
get:
tags:
- Account and health
operationId: health
summary: Service health
description: Engine, cache and pool-sync state. `503` when the routing engine is unreachable.
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: ''
version:
type: string
description: ''
uptime:
type: number
description: Seconds.
engine:
type: object
properties:
status:
type: string
description: ''
latencyMs:
type: integer
description: ''
redis:
type: object
properties:
status:
type: string
description: ''
poolCount:
type: integer
description: ''
lastSyncBlock:
type: integer
description: ''
example:
status: ok
version: 0.1.0
uptime: 494.311362193
engine:
status: ok
latencyMs: 1
redis:
status: ok
poolCount: 1649
lastSyncBlock: 106412042
'503':
description: The lane behind this endpoint is not ready or not enabled here (`NOT_READY`, `CHAIN_NOT_ENABLED`, `NOT_ENABLED`, `*_UNAVAILABLE`). Retry later; do not treat it as an empty answer.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Error:
type: object
properties:
error:
type: string
description: Stable machine code, e.g. `INVALID_PARAMS`, `NOT_READY`, `RATE_LIMIT_EXCEEDED`.
message:
type: string
description: For humans.
statusCode:
type: integer
description: HTTP status, when included.
description: Every non-2xx body.
required:
- error
example:
error: INVALID_PARAMS
message: amount must be an integer string in the token's smallest unit
securitySchemes:
ApiKey:
type: apiKey
in: header
name: X-API-Key
description: Optional on every read. A key from getchord.xyz/developer raises the rate limit to your plan and meters usage per key. Required for `?only=` on quotes and for the Ask agent API.
Session:
type: http
scheme: bearer
description: A Google sign-in session minted by the app (`nts_…`). Only the browser surfaces use it; agents use `ApiKey`.