Catalog of every stock perp and tokenized stock agents can trade
Catalog of every stock perp and tokenized stock agents can trade: Hyperliquid trade.xyz, Aster and Lighter perps plus Solana xStocks and Ondo Global Markets tokens (2,200+ markets). Per market: ticker, venue, symbol or mint, underlying, type (US stock, ETF, index, intl, pre-IPO), live and tradable-now flags. Use first to see which venues list a ticker and get the exact symbol before calling /quote, /funding or /gaps. Same data is free at GET /catalog.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://perp-gap-api.perpgap.workers.dev/catalog/full
| Category | Market data |
|---|---|
| Provider host | perp-gap-api.perpgap.workers.dev |
| Networks | eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 2 from 2 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"method": "GET",
"queryParams": {
"group": "1",
"ticker": "TSLA"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"additionalProperties": false,
"properties": {
"compact": {
"description": "Optional: '1' drops ids, names and ISINs.",
"enum": [
"1"
],
"examples": [
"1"
],
"type": "string"
},
"format": {
"description": "Optional: csv for a flat table.",
"enum": [
"json",
"csv"
],
"examples": [
"csv"
],
"type": "string"
},
"group": {
"description": "Optional: '1' groups markets by ticker (where can I trade X?).",
"enum": [
"1"
],
"examples": [
"1"
],
"type": "string"
},
"instrument": {
"description": "Optional: perps only or tokenized stocks only.",
"enum": [
"perp",
"token"
],
"examples": [
"perp"
],
"type": "string"
},
"ticker": {
"description": "Optional comma-separated tickers.",
"examples": [
"TSLA,NVDA"
],
"type": "string"
},
"tradable": {
"description": "Optional: '1' keeps markets that accept orders right now.",
"enum": [
"1"
],
"examples": [
"1"
],
"type": "string"
},
"type": {
"description": "Optional comma-separated types: us_equity, us_etf, index, intl_equity, pre_ipo, other.",
"examples": [
"us_equity"
],
"type": "string"
},
"venue": {
"description": "Optional comma-separated venues: hyperliquid-xyz, aster, lighter, xstocks-solana, ondo-gm.",
"examples": [
"aster,lighter"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"description": "Error responses are JSON {error: string}: 400 unknown venue; 402 payment required; 502 storage error.",
"properties": {
"count": {
"type": "integer"
},
"freshness": {
"type": [
"object",
"null"
]
},
"generated_at": {
"type": "string"
},
"rows": {
"items": {
"properties": {
"ids": {
"type": "object"
},
"instrument": {
"enum": [
"perp",
"token"
],
"type": "string"
},
"live": {
"type": "boolean"
},
"mark": {
"type": [
"number",
"null"
]
},
"multiplier": {
"type": [
"number",
"null"
]
},
"quote_asset": {
"type": "string"
},
"symbol": {
"type": "string"
},
"ticker": {
"type": "string"
},
"tradable_now": {
"type": [
"boolean",
"null"
]
},
"type": {
"enum": [
"us_equity",
"us_etf",
"index",
"intl_equity",
"pre_ipo",
"other"
],
"type": "string"
},
"underlying": {
"type": "string"
},
"venue": {
"enum": [
"hyperliquid-xyz",
"aster",
"lighter",
"xstocks-solana",
"ondo-gm"
],
"type": "string"
}
},
"required": [
"ticker",
"venue",
"symbol",
"type",
"instrument",
"live"
],
"type": "object"
},
"type": "array"
},
"tickers": {
"description": "group=1 mode",
"items": {
"type": "object"
},
"type": "array"
},
"venues": {
"type": "object"
}
},
"required": [
"count"
],
"type": "object"
},
"type": {
"type": "stri