filterNetworkTokensGet tokens on one network matching numeric thresholds, returned under 'results' with has_next_page and next_cursor. Read-only and keyless. Choose this over getTopTokens when the user gives numeric constraints or a time window. Use for 'tokens with FDV over $10M on Base', 'newly created tokens today', or 'low-liquidity high-volume tokens'. Optional filters (AND-combined): volume_24h_min/max, liquidity_usd_min/max, fdv_min/max, txns_24h_min, price_change_percentage_24h_min/max, created_after/created_before (Unix timestamps). Also network (required); limit (default 50, max 100); cursor to page; sort_by (default 'volume_usd_24h', alias order_by); sort_dir asc/desc (default 'desc', alias sort).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"limit": {
"type": "number",
"default": 50,
"description": "OPTIONAL: Number of items per page (default: 50, max: 100)"
},
"cursor": {
"type": "string",
"description": "OPTIONAL: Pagination cursor. Pass `next_cursor` from a previous response to fetch the next page. Replaces the old page number."
},
"volume_24h_min": {
"type": "number",
"description": "OPTIONAL: Minimum 24h volume in USD"
},
"volume_24h_max": {
"type": "number",
"description": "OPTIONAL: Maximum 24h volume in USD"
},
"liquidity_usd_min": {
"type": "number",
"description": "OPTIONAL: Minimum token liquidity in USD"
},
"liquidity_usd_max": {
"type": "number",
"description": "OPTIONAL: Maximum token liquidity in USD"
},
"fdv_min": {
"type": "number",
"description": "OPTIONAL: Minimum fully diluted valuation in USD"
},
"fdv_max": {
"type": "number",
"description": "OPTIONAL: Maximum fully diluted valuation in USD"
},
"txns_24h_min": {
"type": "number",
"description": "OPTIONAL: Minimum number of transactions in 24h"
},
"price_change_percentage_24h_min": {
"type": "number",
"description": "OPTIONAL: Minimum 24h price change, in percent. Negatives are allowed, so -20 finds tokens down at least 20%. This is the only price-change window tokens carry; for 6h, 1h or 5m use getNetworkPoolsFilter."
},
"price_change_percentage_24h_max": {
"type": "number",
"description": "OPTIONAL: Maximum 24h price change, in percent"
},
"created_after": {
"type": "number",
"description": "OPTIONAL: Only tokens created after this UNIX timestamp"
},
"created_before": {
"type": "number",
"description": "OPTIONAL: Only tokens created before this UNIX timestamp"
},
"sort_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"fdv_usd",
"created_at",
"price_change_percentage_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"txns",
"price_change",
"fdv",
"price_usd"
],
"description": "OPTIONAL (preferred): Field to sort by (default: 'volume_usd_24h'). Prefer the canonical names; short legacy names are still accepted. The REST API calls this parameter order_by."
},
"order_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"fdv_usd",
"created_at",
"price_change_percentage_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"txns",
"price_change",
"fdv",
"price_usd"
],
"description": "OPTIONAL: alias of sort_by; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes order_by, so use this name when calling the REST API directly."
},
"sort_dir": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL (preferred): Sort direction (default: 'desc'). The REST API calls this parameter sort."
},
"sort": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL: alias of sort_dir; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes sort, so use this name when calling the REST API directly."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Token contract address (chain-canonical form)."
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"chain": {
"type": "string"
},
"decimals": {
"type": "number"
},
"fdv": {
"type": [
"number",
"null"
],
"description": "Fully-diluted valuation in USD."
},
"added_at": {
"type": "string",
"description": "ISO 8601 timestamp when DexPaprika first indexed this token."
}
},
"additionalProperties": true
}
},
"has_next_page": {
"type": "boolean"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"query": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getCapabilitiesGet the static agent onboarding guide for this server: supported workflows, network name synonyms (mapping words like 'eth' to the canonical slug 'ethereum'), recommended call sequences, and common pitfalls. Read-only and keyless. Read it once at the start of a session before your first query, or when asked 'how do I use this API?', 'what order should I call things in?', or 'which slug maps to eth?'. This returns onboarding docs, not live market data; for the actual list of network slugs use getNetworks, and for coverage totals use getStats. Takes no parameters beyond a short rationale.Input schema{
"type": "object",
"properties": {
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"server": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
},
"required": [
"name",
"version"
],
"additionalProperties": true
},
"stats": {
"type": "object",
"properties": {
"networks": {
"type": "number"
},
"tokens_approx": {
"type": "number"
},
"pools_approx": {
"type": "number"
},
"free_tier": {
"type": "boolean"
},
"key_required_to_start": {
"type": "boolean"
},
"free_tier_credits_per_month": {
"type": "number"
},
"free_key_credits_per_month": {
"type": "number"
},
"free_tier_requests_per_minute": {
"type": "number"
},
"free_tier_max_data_delay_seconds": {
"type": "number"
},
"limits_url": {
"type": "string",
"description": "Live source for the quota and rate figures above, which change."
},
"pricing_url": {
"type": "string"
}
},
"required": [
"networks",
"tokens_approx",
"pools_approx",
"free_tier",
"key_required_to_start",
"free_tier_credits_per_month",
"free_key_credits_per_month",
"free_tier_requests_per_minute",
"free_tier_max_data_delay_seconds",
"limits_url",
"pricing_url"
],
"additionalProperties": true
},
"network_synonyms": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Canonical network id -> common alternates an agent might try."
},
"workflows": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Named tool sequences for common agent tasks."
},
"common_pitfalls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Known edge cases agents should be aware of."
},
"documentation": {
"type": "string"
},
"agent_skills": {
"type": "string"
}
},
"required": [
"server",
"stats",
"network_synonyms",
"workflows",
"common_pitfalls",
"documentation",
"agent_skills"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getDexPoolsGet the pools belonging to one specific DEX on one network, e.g. all Uniswap v3 pools on ethereum. Proxies /networks/{network}/pools/search with a dex_name filter (the old /networks/{network}/dexes/{dex}/pools endpoint was removed): rows come back under 'results' with cursor pagination (has_next_page + next_cursor), and the 24h volume field is volume_usd_24h. Read-only and keyless. Narrower than getNetworkPools (a single exchange, not the whole chain). Use for 'show me Raydium pools', 'top pairs on PancakeSwap', or 'liquidity on Orca'. Get the dex id from getNetworkDexes or search first, and pass that response's dex_id field ('uniswap_v3'), matched case-insensitively. Do not pass its dex_name field ('Uniswap V3'): a human display name returns HTTP 200 with an empty results[] rather than an error, so an empty answer here usually means the wrong form of the name was sent. Params: network (required slug); dex (required id, e.g. 'uniswap_v3'; the REST API calls this query parameter dex_name); limit (default 10, max 100); cursor (pass previous next_cursor to page); sort_by (default 'volume_usd_24h', canonical *_24h fields, short legacy names still accepted, alias order_by); sort_dir 'asc'/'desc' (default 'desc', alias sort). The old page number is gone: page 2 and above return an error pointing at cursor.Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"dex": {
"type": "string",
"description": "REQUIRED: the dex_id field from getNetworkDexes (e.g., 'uniswap_v3'), matched case-insensitively. Do not pass that response's dex_name field, the human display name (e.g., 'Uniswap V3'): it returns an empty results[] instead of an error, so a wrong value looks like a real but empty answer. The REST API calls this parameter dex_name."
},
"limit": {
"type": "number",
"default": 10,
"description": "OPTIONAL: Number of items per page (default: 10, max: 100)"
},
"cursor": {
"type": "string",
"description": "OPTIONAL: Pagination cursor. Pass `next_cursor` from a previous response to fetch the next page (read `has_next_page` to know if more remain). Replaces the old page number."
},
"page": {
"type": "number",
"description": "SUPERSEDED: the replacement endpoint is cursor-paginated and ignores page. page=1 (or 0) still works as the first page; page=2 or above returns a structured error telling you to use cursor."
},
"sort_dir": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL (preferred): Sort direction (default: 'desc'). The REST API calls this parameter sort."
},
"sort": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL: alias of sort_dir; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes sort, so use this name when calling the REST API directly."
},
"sort_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"created_at",
"price_usd",
"price_change_percentage_24h",
"price_change_percentage_6h",
"price_change_percentage_1h",
"price_change_percentage_5m",
"volume_usd",
"transactions",
"last_price_change_usd_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"liquidity"
],
"description": "OPTIONAL (preferred): Field to sort by (default: 'volume_usd_24h'). Prefer the canonical *_24h names; short legacy names such as volume_usd are still accepted and normalized. The REST API calls this parameter order_by."
},
"order_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"created_at",
"price_usd",
"price_change_percentage_24h",
"price_change_percentage_6h",
"price_change_percentage_1h",
"price_change_percentage_5m",
"volume_usd",
"transactions",
"last_price_change_usd_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"liquidity"
],
"description": "OPTIONAL: alias of sort_by; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes order_by, so use this name when calling the REST API directly."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"dex",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Pool contract address."
},
"chain": {
"type": "string",
"description": "Network slug (e.g. 'ethereum'). Note: also exposed as 'network' on some endpoints."
},
"dex_id": {
"type": "string"
},
"dex_name": {
"type": "string"
},
"fee": {
"type": [
"number",
"null"
],
"description": "Pool fee (units depend on DEX; null for some DEXes)."
},
"created_at": {
"type": "string",
"description": "ISO 8601 pool-creation timestamp."
},
"created_at_block_number": {
"type": "number"
},
"tokens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Token contract address (chain-canonical form)."
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"chain": {
"type": "string"
},
"decimals": {
"type": "number"
},
"fdv": {
"type": [
"number",
"null"
],
"description": "Fully-diluted valuation in USD."
},
"added_at": {
"type": "string",
"description": "ISO 8601 timestamp when DexPaprika first indexed this token."
}
},
"additionalProperties": true
}
},
"last_price": {
"type": [
"number",
"null"
]
},
"last_price_usd": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"has_next_page": {
"type": "boolean"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"query": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getKeyStatusReport whether this server is sending an API key and which plan the API sees. Use when calls are being rate limited or refused, or when the user asks whether their DexPaprika key is working. Takes no arguments and reads no market data.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getNetworkDexesList the DEXes (exchanges) operating on one network, such as Uniswap on ethereum or Raydium on solana, returned under 'dexes' with page_info (page, total_pages). Read-only and keyless. Use for 'which DEXes are on Base?', 'does Solana have Orca?', or to get a dex id to feed into getDexPools. Scope is a single network; call getNetworks first for the slug. Params: network (required slug); limit (default 10, max 100); page (default 1, 1-indexed); sort_by (only 'pool'; legacy alias order_by); sort_dir 'asc' or 'desc' (default 'desc'; legacy alias sort).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"page": {
"type": "number",
"default": 1,
"description": "OPTIONAL: Page number for pagination (default: 1, 1-indexed)"
},
"limit": {
"type": "number",
"default": 10,
"description": "OPTIONAL: Number of items per page (default: 10, max: 100)"
},
"sort_dir": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL (preferred): Sort direction, 'asc' or 'desc' (default: 'desc'). The REST API calls this parameter sort."
},
"sort": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL: alias of sort_dir; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes sort, so use this name when calling the REST API directly."
},
"sort_by": {
"type": "string",
"enum": [
"pool"
],
"description": "OPTIONAL (preferred): Field to sort by (only 'pool'). The REST API calls this parameter order_by."
},
"order_by": {
"type": "string",
"enum": [
"pool"
],
"description": "OPTIONAL: alias of sort_by; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes order_by, so use this name when calling the REST API directly."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"dexes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"dex_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"dex_name": {
"type": "string"
},
"chain": {
"type": "string"
},
"network_id": {
"type": "string"
},
"protocol": {
"type": "string"
},
"volume_usd_24h": {
"type": "number"
},
"txns_24h": {
"type": "number"
},
"pools_count": {
"type": "number"
}
},
"additionalProperties": true
}
},
"page_info": {
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Items per page in the request."
},
"page": {
"type": "number",
"description": "Current page number (1-indexed)."
},
"total_items": {
"type": "number",
"description": "Total number of items across all pages."
},
"total_pages": {
"type": "number",
"description": "Total number of pages available."
}
},
"additionalProperties": true
}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getNetworkPoolsGet the top liquidity pools across a whole network, ranked by 24h volume by default, returned under 'results' with has_next_page and next_cursor. Read-only and keyless. This is the primary chain-wide pool discovery tool. Use for 'biggest pools on ethereum', 'top trading pairs on Base', or 'most active pools on Solana'. Narrow to one exchange with getDexPools, or apply numeric/time filters with getNetworkPoolsFilter. Params: network (required slug); limit (default 10, max 100); cursor (pass previous next_cursor to page); sort_by (default 'volume_usd_24h', canonical *_24h fields, alias order_by); sort_dir 'asc' or 'desc' (default 'desc', alias sort).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"limit": {
"type": "number",
"default": 10,
"description": "OPTIONAL: Number of items per page (default: 10, max: 100)"
},
"cursor": {
"type": "string",
"description": "OPTIONAL: Pagination cursor. Pass `next_cursor` from a previous response to fetch the next page. Replaces the old page number."
},
"sort_dir": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL (preferred): Sort direction (default: 'desc'). The REST API calls this parameter sort."
},
"sort": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL: alias of sort_dir; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes sort, so use this name when calling the REST API directly."
},
"sort_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"created_at",
"price_usd",
"price_change_percentage_24h",
"price_change_percentage_6h",
"price_change_percentage_1h",
"price_change_percentage_5m",
"volume_usd",
"transactions",
"last_price_change_usd_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"liquidity"
],
"description": "OPTIONAL (preferred): Field to sort by (default: 'volume_usd_24h'). Prefer the canonical *_24h names; short legacy names are still accepted. The REST API calls this parameter order_by."
},
"order_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"created_at",
"price_usd",
"price_change_percentage_24h",
"price_change_percentage_6h",
"price_change_percentage_1h",
"price_change_percentage_5m",
"volume_usd",
"transactions",
"last_price_change_usd_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"liquidity"
],
"description": "OPTIONAL: alias of sort_by; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes order_by, so use this name when calling the REST API directly."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Pool contract address."
},
"chain": {
"type": "string",
"description": "Network slug (e.g. 'ethereum'). Note: also exposed as 'network' on some endpoints."
},
"dex_id": {
"type": "string"
},
"dex_name": {
"type": "string"
},
"fee": {
"type": [
"number",
"null"
],
"description": "Pool fee (units depend on DEX; null for some DEXes)."
},
"created_at": {
"type": "string",
"description": "ISO 8601 pool-creation timestamp."
},
"created_at_block_number": {
"type": "number"
},
"tokens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Token contract address (chain-canonical form)."
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"chain": {
"type": "string"
},
"decimals": {
"type": "number"
},
"fdv": {
"type": [
"number",
"null"
],
"description": "Fully-diluted valuation in USD."
},
"added_at": {
"type": "string",
"description": "ISO 8601 timestamp when DexPaprika first indexed this token."
}
},
"additionalProperties": true
}
},
"last_price": {
"type": [
"number",
"null"
]
},
"last_price_usd": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"has_next_page": {
"type": "boolean"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"query": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getNetworkPoolsFilterGet pools on one network filtered by numeric thresholds, returned under 'results' with has_next_page and next_cursor. Read-only and keyless. Choose this over getNetworkPools when the user gives numeric constraints or a time window. Use for 'pools over $1M liquidity on Base', 'pools created in the last 24h', or 'high-volume low-liquidity pairs'. Optional filters (AND-combined): volume_24h_min/max, volume_7d_min/max, liquidity_usd_min/max, txns_24h_min, created_after/created_before (Unix timestamps). Also network (required); limit (default 50, max 100); cursor to page; sort_by (default 'volume_usd_24h', alias order_by); sort_dir asc/desc (default 'desc', alias sort).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"limit": {
"type": "number",
"default": 50,
"description": "OPTIONAL: Number of items per page (default: 50, max: 100)"
},
"cursor": {
"type": "string",
"description": "OPTIONAL: Pagination cursor. Pass `next_cursor` from a previous response to fetch the next page. Replaces the old page number."
},
"volume_24h_min": {
"type": "number",
"description": "OPTIONAL: Minimum 24h volume in USD"
},
"volume_24h_max": {
"type": "number",
"description": "OPTIONAL: Maximum 24h volume in USD"
},
"volume_7d_min": {
"type": "number",
"description": "OPTIONAL: Minimum 7d volume in USD"
},
"volume_7d_max": {
"type": "number",
"description": "OPTIONAL: Maximum 7d volume in USD"
},
"liquidity_usd_min": {
"type": "number",
"description": "OPTIONAL: Minimum pool liquidity in USD"
},
"liquidity_usd_max": {
"type": "number",
"description": "OPTIONAL: Maximum pool liquidity in USD"
},
"txns_24h_min": {
"type": "number",
"description": "OPTIONAL: Minimum number of transactions in 24h"
},
"price_change_percentage_24h_min": {
"type": "number",
"description": "OPTIONAL: Minimum 24h price change, in percent. Negatives are allowed, so -20 finds pools down at least 20%."
},
"price_change_percentage_24h_max": {
"type": "number",
"description": "OPTIONAL: Maximum 24h price change, in percent"
},
"price_change_percentage_6h_min": {
"type": "number",
"description": "OPTIONAL: Minimum 6h price change, in percent"
},
"price_change_percentage_6h_max": {
"type": "number",
"description": "OPTIONAL: Maximum 6h price change, in percent"
},
"price_change_percentage_1h_min": {
"type": "number",
"description": "OPTIONAL: Minimum 1h price change, in percent"
},
"price_change_percentage_1h_max": {
"type": "number",
"description": "OPTIONAL: Maximum 1h price change, in percent"
},
"price_change_percentage_5m_min": {
"type": "number",
"description": "OPTIONAL: Minimum 5m price change, in percent. The shortest window we carry, so it is the one to reach for on 'what is moving right now'."
},
"price_change_percentage_5m_max": {
"type": "number",
"description": "OPTIONAL: Maximum 5m price change, in percent"
},
"created_after": {
"type": "number",
"description": "OPTIONAL: Only pools created after this UNIX timestamp"
},
"created_before": {
"type": "number",
"description": "OPTIONAL: Only pools created before this UNIX timestamp"
},
"sort_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"created_at",
"price_usd",
"price_change_percentage_24h",
"price_change_percentage_6h",
"price_change_percentage_1h",
"price_change_percentage_5m",
"volume_usd",
"transactions",
"last_price_change_usd_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"liquidity"
],
"description": "OPTIONAL (preferred): Field to sort by (default: 'volume_usd_24h'). Prefer the canonical *_24h names; short legacy names are still accepted. The REST API calls this parameter order_by."
},
"order_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"created_at",
"price_usd",
"price_change_percentage_24h",
"price_change_percentage_6h",
"price_change_percentage_1h",
"price_change_percentage_5m",
"volume_usd",
"transactions",
"last_price_change_usd_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"liquidity"
],
"description": "OPTIONAL: alias of sort_by; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes order_by, so use this name when calling the REST API directly."
},
"sort_dir": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL (preferred): Sort direction (default: 'desc'). The REST API calls this parameter sort."
},
"sort": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL: alias of sort_dir; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes sort, so use this name when calling the REST API directly."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Pool contract address."
},
"chain": {
"type": "string",
"description": "Network slug (e.g. 'ethereum'). Note: also exposed as 'network' on some endpoints."
},
"dex_id": {
"type": "string"
},
"dex_name": {
"type": "string"
},
"fee": {
"type": [
"number",
"null"
],
"description": "Pool fee (units depend on DEX; null for some DEXes)."
},
"created_at": {
"type": "string",
"description": "ISO 8601 pool-creation timestamp."
},
"created_at_block_number": {
"type": "number"
},
"tokens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Token contract address (chain-canonical form)."
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"chain": {
"type": "string"
},
"decimals": {
"type": "number"
},
"fdv": {
"type": [
"number",
"null"
],
"description": "Fully-diluted valuation in USD."
},
"added_at": {
"type": "string",
"description": "ISO 8601 timestamp when DexPaprika first indexed this token."
}
},
"additionalProperties": true
}
},
"last_price": {
"type": [
"number",
"null"
]
},
"last_price_usd": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"has_next_page": {
"type": "boolean"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"query": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getNetworksList every blockchain network DexPaprika indexes, each row carrying its network id (slug), 24h volume, transaction count, and pool count. Read-only and keyless. Start here (or getCapabilities) to get the exact network slug that nearly every other tool requires as its 'network' argument. Use for 'which chains do you support?', 'is Base/Solana/Arbitrum covered?', or 'what is the slug for Polygon?'. Returns the full array with no pagination or sorting; takes no parameters beyond a short rationale. For platform-wide totals rather than a per-network list use getStats.Input schema{
"type": "object",
"properties": {
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"networks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"display_name": {
"type": "string",
"description": "Human-readable network name (e.g. 'Ethereum')."
},
"id": {
"type": "string",
"description": "Network slug for use in other endpoints (e.g. 'ethereum')."
},
"volume_usd_24h": {
"type": "number",
"description": "Total 24h trading volume across all pools on this network, USD."
},
"txns_24h": {
"type": "number",
"description": "Total transactions in the last 24h on this network."
},
"pools_count": {
"type": "number",
"description": "Number of indexed pools on this network."
}
},
"additionalProperties": true
},
"description": "All supported blockchain networks with current 24h volume + indexing stats."
}
},
"required": [
"networks"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getPoolDetailsGet the full current snapshot for one pool by address: its two tokens, current price, liquidity/TVL, 24h volume, and transaction counts, returned as a single pool object (not a list). Read-only and keyless. Use after search or getNetworkPools surfaces a pool, or for 'price/TVL of this pool?' or 'details for pool 0x...'. Returns live values only; for historical candles use getPoolOHLCV, and for the raw swap feed use getPoolTransactions. Params: network (required slug); pool_address (required, e.g. '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640'); inversed (optional bool, default false, flips the token price ratio to token1/token0).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"pool_address": {
"type": "string",
"description": "REQUIRED: Pool address or identifier (e.g., '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640')"
},
"inversed": {
"type": "boolean",
"default": false,
"description": "OPTIONAL: Whether to invert the price ratio (default: false)"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"pool_address",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"chain": {
"type": "string"
},
"factory_id": {
"type": "string"
},
"dex_id": {
"type": "string"
},
"dex_name": {
"type": "string"
},
"created_at": {
"type": "string"
},
"created_at_block_number": {
"type": "number"
},
"fee": {
"type": [
"number",
"null"
]
},
"tokens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Token contract address (chain-canonical form)."
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"chain": {
"type": "string"
},
"decimals": {
"type": "number"
},
"fdv": {
"type": [
"number",
"null"
],
"description": "Fully-diluted valuation in USD."
},
"added_at": {
"type": "string",
"description": "ISO 8601 timestamp when DexPaprika first indexed this token."
}
},
"additionalProperties": true
}
},
"token_reserves": {
"type": "array",
"items": {}
},
"last_price": {
"type": [
"number",
"null"
]
},
"last_price_usd": {
"type": [
"number",
"null"
]
},
"price_time": {
"type": "string"
},
"price_stats": {}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getPoolOHLCVGet historical OHLCV candles (open, high, low, close, volume) for one pool over a time range, returned as a time-series array. Read-only and keyless. Use for 'price history of this pair', 'hourly chart for the last week', 'candles since Jan 1', or backtesting; for the single current price use getPoolDetails instead. Params: network (required); pool_address (required); start (required; Unix timestamp, RFC3339, or yyyy-mm-dd); end (optional, capped to 1 year after start); interval one of '1m','5m','10m','15m','30m','1h','6h','12h','24h' (default '24h'); limit (default 100, max 366 candles); inversed (optional bool, default false).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"pool_address": {
"type": "string",
"description": "REQUIRED: Pool address or identifier"
},
"start": {
"type": "string",
"description": "REQUIRED: Start time for historical data (Unix timestamp, RFC3339 timestamp, or yyyy-mm-dd format)"
},
"end": {
"type": "string",
"description": "OPTIONAL: End time for historical data (max 1 year from start)"
},
"limit": {
"type": "number",
"default": 100,
"description": "OPTIONAL: Number of data points to retrieve (default: 100, max: 366)"
},
"interval": {
"type": "string",
"enum": [
"1m",
"5m",
"10m",
"15m",
"30m",
"1h",
"6h",
"12h",
"24h"
],
"default": "24h",
"description": "OPTIONAL: Interval granularity (default: '24h')"
},
"inversed": {
"type": "boolean",
"default": false,
"description": "OPTIONAL: Whether to invert the price ratio for alternative pair perspective (default: false)"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"pool_address",
"start",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"ohlcv": {
"type": "array",
"items": {
"type": "object",
"properties": {
"time_open": {
"type": "string",
"description": "ISO 8601 timestamp of bucket open."
},
"time_close": {
"type": "string",
"description": "ISO 8601 timestamp of bucket close (inclusive at 23:59:59 for 24h)."
},
"open": {
"type": "number"
},
"high": {
"type": "number"
},
"low": {
"type": "number"
},
"close": {
"type": "number"
},
"volume": {
"type": "number",
"description": "Trade volume in the bucket, in pair-quote units (or USD where applicable)."
}
},
"additionalProperties": true
},
"description": "Open-High-Low-Close-Volume rows ordered by time_open ascending."
}
},
"required": [
"ohlcv"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getPoolTransactionsGet one pool's recent individual swap transactions, newest first, returned under 'transactions' (paginate with page, or a cursor). Read-only and keyless. These are per-trade records, not aggregated candles (use getPoolOHLCV) or a summary snapshot (use getPoolDetails). Use for 'recent trades on this pool', 'who swapped in the last hour', or 'raw transaction feed'. Params: network (required); pool_address (required); limit (default 10, max 100); page (default 1, up to 100 pages) or cursor (a transaction id); from (optional Unix seconds, inclusive, capped to the last 7 days); to (optional Unix seconds, exclusive, must be after from).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"pool_address": {
"type": "string",
"description": "REQUIRED: Pool address or identifier"
},
"page": {
"type": "number",
"default": 1,
"description": "OPTIONAL: Page number for pagination, up to 100 pages (default: 1, 1-indexed)"
},
"limit": {
"type": "number",
"default": 10,
"description": "OPTIONAL: Number of items per page (default: 10, max: 100)"
},
"cursor": {
"type": "string",
"description": "OPTIONAL: Transaction ID used for cursor-based pagination"
},
"from": {
"type": "number",
"description": "OPTIONAL: Filter transactions starting from this UNIX timestamp (inclusive). Results always capped to last 7 days."
},
"to": {
"type": "number",
"description": "OPTIONAL: Filter transactions up to this UNIX timestamp (exclusive). Must be after 'from'."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"pool_address",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"transactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"block_number": {
"type": "number"
},
"block_timestamp": {
"type": "string"
},
"pool_id": {
"type": "string"
},
"token0": {},
"token1": {},
"amount_usd": {
"type": "number"
}
},
"additionalProperties": true
}
},
"page_info": {
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Items per page in the request."
},
"page": {
"type": "number",
"description": "Current page number (1-indexed)."
},
"total_items": {
"type": "number",
"description": "Total number of items across all pages."
},
"total_pages": {
"type": "number",
"description": "Total number of pages available."
}
},
"additionalProperties": true
}
},
"required": [
"transactions",
"page_info"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getStatsGet platform-wide totals for DexPaprika: the number of networks, DEXes, pools, and tokens indexed, returned as a single summary object. Read-only and keyless. Use for 'how much data do you cover?', 'how many chains or pools total?', or a one-line coverage summary. These are ecosystem-wide counts, not per-network figures; use getNetworks for the per-chain breakdown, or getCapabilities for onboarding docs. Takes no parameters beyond a short rationale.Input schema{
"type": "object",
"properties": {
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"chains": {
"type": "number",
"description": "Total chains indexed."
},
"factories": {
"type": "number",
"description": "Total DEX factory contracts indexed."
},
"pools": {
"type": "number",
"description": "Total pools indexed across all chains."
},
"tokens": {
"type": "number",
"description": "Total tokens indexed."
}
},
"required": [
"chains",
"factories",
"pools",
"tokens"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getTokenDetailsGet one token's data and metadata by contract address on one network: multi-timeframe price and volume metrics, plus name, website, Twitter, and Telegram links, returned as a single token object. Read-only and keyless. Use for 'price and volume for 0x... on Base' or 'tell me about this token'. If you only have a symbol like WETH, call search first to resolve the address and network. For many tokens' prices at once use getTokenMultiPrices; for the pools holding this token use getTokenPools. Params: network (required slug); token_address (required contract address, e.g. 'JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN' on solana).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"token_address": {
"type": "string",
"description": "REQUIRED: Token contract address (e.g., 'JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN' for Jupiter on Solana)"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"token_address",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"chain": {
"type": "string"
},
"decimals": {
"type": "number"
},
"total_supply": {
"type": [
"number",
"string"
],
"description": "Raw on-chain total supply. Big numbers may overflow JS Number, so handle as string for tokens with 18+ decimals."
},
"description": {
"type": "string"
},
"website": {
"type": "string"
},
"has_image": {
"type": "boolean"
},
"added_at": {
"type": "string"
},
"price_stats": {},
"summary": {}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getTokenMultiPricesGet current USD prices for up to 10 tokens on the same network in one batched call, returned as a prices array plus a missing_tokens list. Read-only and keyless. Tokens that cannot be priced come back in missing_tokens rather than being dropped, so check that list for partial failures. Use for 'prices for these tokens', 'compare the price of X, Y and Z', or building a portfolio/dashboard snapshot. For one token with full metadata and multi-timeframe stats use getTokenDetails. Params: network (required slug, all tokens must share it); tokens (required array of 1 to 10 contract addresses).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks"
},
"tokens": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 10,
"description": "REQUIRED: Up to 10 token contract addresses on the same network."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"tokens",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"prices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"chain": {
"type": "string"
},
"id": {
"type": "string",
"description": "Token contract address."
},
"price_usd": {
"type": [
"number",
"null"
],
"description": "Current USD price; null if not available."
}
},
"additionalProperties": true
},
"description": "USD prices for the requested tokens, in input order."
},
"missing_tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "Input tokens that upstream could not price (invalid address, no liquidity, unknown contract). Empty array when all input tokens were resolved."
}
},
"required": [
"prices"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getTokenPoolsGet the liquidity pools that contain a specific token on one network, returned under 'results' with has_next_page and next_cursor. Read-only and keyless. Use for 'which pools hold WETH on ethereum?' or 'liquidity venues for 0x...'. Network-scoped, so run search first if unsure of the network; unknown addresses return empty results, not an error. For the token's own price use getTokenDetails. Params: network (required); token_address (required); limit (default 10, max 100); cursor to page; sort_by (default 'volume_usd_24h', alias order_by); sort_dir asc/desc (default 'desc', alias sort). Extra params such as inversed or paired_token_address are unsupported and error.Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"token_address": {
"type": "string",
"description": "REQUIRED: Token contract address. Results are restricted to pools on the given network containing this token. Unknown addresses return empty results, not an error."
},
"limit": {
"type": "number",
"default": 10,
"description": "OPTIONAL: Number of items per page (default: 10, max: 100)"
},
"cursor": {
"type": "string",
"description": "OPTIONAL: Pagination cursor. Pass `next_cursor` from a previous response to fetch the next page. Replaces the old page number."
},
"sort_dir": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL (preferred): Sort direction (default: 'desc'). The REST API calls this parameter sort."
},
"sort": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL: alias of sort_dir; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes sort, so use this name when calling the REST API directly."
},
"sort_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"created_at",
"price_usd",
"price_change_percentage_24h",
"price_change_percentage_6h",
"price_change_percentage_1h",
"price_change_percentage_5m",
"volume_usd",
"transactions",
"last_price_change_usd_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"liquidity"
],
"description": "OPTIONAL (preferred): Field to sort by (default: 'volume_usd_24h'). Prefer the canonical *_24h names; short legacy names are still accepted. The REST API calls this parameter order_by."
},
"order_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"created_at",
"price_usd",
"price_change_percentage_24h",
"price_change_percentage_6h",
"price_change_percentage_1h",
"price_change_percentage_5m",
"volume_usd",
"transactions",
"last_price_change_usd_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"liquidity"
],
"description": "OPTIONAL: alias of sort_by; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes order_by, so use this name when calling the REST API directly."
},
"inversed": {
"type": "boolean",
"description": "UNSUPPORTED: the replacement endpoint has no pair-perspective flip. Passing true returns a structured error; invert prices client-side (1/price) instead."
},
"reorder": {
"type": "boolean",
"description": "UNSUPPORTED (deprecated alias of inversed): passing true returns a structured error."
},
"paired_token_address": {
"type": "string",
"description": "UNSUPPORTED: the replacement endpoint cannot filter by a second token. Passing it returns a structured error; filter results[].tokens client-side for pair queries."
},
"address": {
"type": "string",
"description": "UNSUPPORTED (deprecated alias of paired_token_address): passing it returns a structured error."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"token_address",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Pool contract address."
},
"chain": {
"type": "string",
"description": "Network slug (e.g. 'ethereum'). Note: also exposed as 'network' on some endpoints."
},
"dex_id": {
"type": "string"
},
"dex_name": {
"type": "string"
},
"fee": {
"type": [
"number",
"null"
],
"description": "Pool fee (units depend on DEX; null for some DEXes)."
},
"created_at": {
"type": "string",
"description": "ISO 8601 pool-creation timestamp."
},
"created_at_block_number": {
"type": "number"
},
"tokens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Token contract address (chain-canonical form)."
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"chain": {
"type": "string"
},
"decimals": {
"type": "number"
},
"fdv": {
"type": [
"number",
"null"
],
"description": "Fully-diluted valuation in USD."
},
"added_at": {
"type": "string",
"description": "ISO 8601 timestamp when DexPaprika first indexed this token."
}
},
"additionalProperties": true
}
},
"last_price": {
"type": [
"number",
"null"
]
},
"last_price_usd": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"has_next_page": {
"type": "boolean"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"query": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
getTopTokensGet the top tokens on one network ranked by volume, liquidity, transactions, FDV, or 24h price change, returned under 'results' with has_next_page and next_cursor. Read-only and keyless. Use for 'top gainers on Solana', 'highest-volume tokens on Base', or 'biggest tokens by FDV on ethereum'. For arbitrary numeric filters or a time window use filterNetworkTokens instead. Params: network (required slug); limit (default 50, max 100); cursor (pass previous next_cursor to page); sort_by (default 'volume_usd_24h', alias order_by), noting that ranking by raw price is unsupported and silently falls back to volume; sort_dir asc/desc (default 'desc', alias sort).Input schema{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "REQUIRED: Network ID from getNetworks (e.g., 'ethereum', 'solana')"
},
"limit": {
"type": "number",
"default": 50,
"description": "OPTIONAL: Number of items per page (default: 50, max: 100)"
},
"cursor": {
"type": "string",
"description": "OPTIONAL: Pagination cursor. Pass `next_cursor` from a previous response to fetch the next page. Replaces the old page number."
},
"sort_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"fdv_usd",
"created_at",
"price_change_percentage_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"txns",
"price_change",
"fdv",
"price_usd"
],
"description": "OPTIONAL (preferred): Field to sort by (default: 'volume_usd_24h'). Prefer the canonical names; short legacy names are still accepted. The REST API calls this parameter order_by."
},
"order_by": {
"type": "string",
"enum": [
"volume_usd_24h",
"volume_usd_7d",
"volume_usd_30d",
"liquidity_usd",
"txns_24h",
"fdv_usd",
"created_at",
"price_change_percentage_24h",
"volume_24h",
"volume_7d",
"volume_30d",
"txns",
"price_change",
"fdv",
"price_usd"
],
"description": "OPTIONAL: alias of sort_by; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes order_by, so use this name when calling the REST API directly."
},
"sort_dir": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL (preferred): Sort direction (default: 'desc'). The REST API calls this parameter sort."
},
"sort": {
"type": "string",
"enum": [
"asc",
"desc"
],
"description": "OPTIONAL: alias of sort_dir; both are accepted. Not deprecated at the REST layer: api.dexpaprika.com itself takes sort, so use this name when calling the REST API directly."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"network",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Token contract address (chain-canonical form)."
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"chain": {
"type": "string"
},
"decimals": {
"type": "number"
},
"fdv": {
"type": [
"number",
"null"
],
"description": "Fully-diluted valuation in USD."
},
"added_at": {
"type": "string",
"description": "ISO 8601 timestamp when DexPaprika first indexed this token."
}
},
"additionalProperties": true
}
},
"has_next_page": {
"type": "boolean"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"query": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |
searchSearch across ALL networks at once for tokens, pools, and DEXes by name, symbol, or address, returning three arrays: 'tokens', 'pools', and 'dexes'. Read-only and keyless. This is the cross-chain entry point when you do not yet know which network something lives on; once you have a network slug from the results, switch to the network-scoped tools. Use for 'find PEPE', 'what is the address for USDC', or 'which chain is this token on?'. No matches returns empty arrays, not an error. Params: query (required; a name, symbol, or contract address, e.g. 'uniswap', 'bitcoin', or '0x...'); limit (optional, caps results per category, applied client-side).Input schema{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "REQUIRED: Search term (e.g., 'uniswap', 'bitcoin', or a token address)"
},
"limit": {
"type": "number",
"description": "OPTIONAL: Max results per category (tokens/pools/dexes), applied client-side"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. 1-2 sentence rationale for this call (e.g. \"User asked for X; calling Y to fetch Z\"). Logged for MCP improvement, never shown to end users. No PII or secrets. See the server `instructions` field for the full convention and worked examples."
}
},
"required": [
"query",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"tokens": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Token contract address (chain-canonical form)."
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"chain": {
"type": "string"
},
"decimals": {
"type": "number"
},
"fdv": {
"type": [
"number",
"null"
],
"description": "Fully-diluted valuation in USD."
},
"added_at": {
"type": "string",
"description": "ISO 8601 timestamp when DexPaprika first indexed this token."
}
},
"additionalProperties": true
}
},
"pools": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Pool contract address."
},
"chain": {
"type": "string",
"description": "Network slug (e.g. 'ethereum'). Note: also exposed as 'network' on some endpoints."
},
"dex_id": {
"type": "string"
},
"dex_name": {
"type": "string"
},
"fee": {
"type": [
"number",
"null"
],
"description": "Pool fee (units depend on DEX; null for some DEXes)."
},
"created_at": {
"type": "string",
"description": "ISO 8601 pool-creation timestamp."
},
"created_at_block_number": {
"type": "number"
},
"tokens": {
"type": "array",
"items": {
"$ref": "#/properties/tokens/items"
}
},
"last_price": {
"type": [
"number",
"null"
]
},
"last_price_usd": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"dexes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"dex_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"dex_name": {
"type": "string"
},
"chain": {
"type": "string"
},
"network_id": {
"type": "string"
},
"protocol": {
"type": "string"
},
"volume_usd_24h": {
"type": "number"
},
"txns_24h": {
"type": "number"
},
"pools_count": {
"type": "number"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"readOnlyHint": true,
"idempotentHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | Read onlyNon-destructiveIdempotentOpen world | — |