Overview

Welcome to the Covalent API!

The Covalent Unified API can be used to pull token balances, positions and historical granular transaction data from dozens of blockchain networks. This data enables hundreds of end-user use-cases like wallets, investor dashboards, taxation tools and as-of-yet unknown use-cases.

Switching from one blockchain network to another is simply changing the chain_name path parameter. It's really that simple.

One Unified API. One Billion Possibilities.

The Covalent API is RESTful. The API is designed around the main resources that's available through the web interface. Sample API calls are provided next to each method using cURL.

Broadly speaking, there are three classes of APIs:

  • Class A - APIs that return enriched blockchain data applicable to all blockchain networks, eg: token balances, transactions, log events, etc.

  • Class B - APIs maintained by Covalent for a specific protocol on a specific blockchain, eg: Constant Product AMMs (XY=K) on various blockchains.

  • Class C - APIs created and maintained by the community.

URL Patterns

The API Host for all requests is https://api.covalenthq.com/v1/. Some additional points to keep in mind:

  • The current version of the API is v1.

  • All requests are done over HTTPS (calls over plain HTTP will fail.)

  • The default return format for all endpoints is JSON, unless the query parameter format=csv is specified.

  • All requests require authentication.

Authentication

To access the Covalent API, you will need an API key. You can find your API key in the web interface. Various authentication mechanisms are available:

Authentication via Query parameter

curl -X GET https://api.covalenthq.com/v1/ENDPOINT/?key=API_KEY

Simply append key=API_KEY as a query parameter to all requests. The main advantage of this method is to embed the API endpoints within applications that do not support more sophisticated auth mechanisms, like Google Sheets or as IFrames.

Authentication via Basic Auth

curl -X GET https://api.covalenthq.com/v1/ENDPOINT/ \
     -u API_KEY:
     -H 'Content-Type: application/json'
     # The colon prevents curl from asking for a password.

Provide your API key as the basic auth username. You can find your API key in the web interface. You do not need to provide a password.

Use of $CQT (Covalent Query Token)

The Covalent API does not require the CQT token in order to use it. CQT is a staking and governance token and for every API call, CQT is market bought and distributed to the service providers who are fulfilling the API requests. This "fee switch" mechanism is yet to launch.

Response format

❴ 
    "data": ...,
    "error": false,
    "error_message": null,
    "error_code": null
❵

By default, the Covalent API returns JSON responses with the same shape for all endpoints. The main keys are data, error, error_message and error_code.

You can ask for a CSV format by sending the format=csv query parameter.

Supported Networks

Covalent supports over 100+ different blockchains all with the same unified API. For a full list see here.

Rate limiting & Premium Tier

We have a limit of 5 requests per second per API key for free users. Furthermore, free users are also limited to 100,000 credits per month, reset on the first of each month.

If you upgrade to a Premium Tier, you get access to higher rate limits and the ability to unlock flex credits.

Refresh rate

We classify the APIs as:

  • real time

  • batched

Real-time endpoints have a delay of 2 blocks – for example, on blockchains like Ethereum with block times of 15 seconds, the delay will be 30 seconds which on blockchains like Polygon with blocktimes of 3 seocnds, the delay will be 6 seconds.

Batched endpoints have a delay of 30 minutes.

Pagination

Certain endpoints take two parameters: page-size and page-number implementing offset-limit pagination.

Error codes

Covalent uses standard HTTP response codes to indicate the success or failure of an API request. In general: codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, etc.). Codes in the 5xx range indicate an error with Covalent's servers (these are rare).

CodeDescription
200 - OKEverything worked as expected.
400 - Bad RequestThe request could not be accepted, usually due to a missing required parameter.
401 - UnauthorizedNo valid API key was provided.
404 - Not FoundThe request path does not exist.
429 - Too Many RequestsYou are being rate-limited. Please see the rate limiting section for more information.
500, 502, 503 - Server ErrorsSomething went wrong on Covalent's servers. These are rare.

Support channels

Support is available via multiple channels:

Change log

Available here.


Class A

APIs that return enriched blockchain data applicable to all blockchain networks, eg: token balances, transactions, log events, etc.

Get token balances for address

GET/v1/{chainName}/address/{walletAddress}/balances_v2/

Commonly used to fetch the native, fungible (ERC20), and non-fungible (ERC721 & ERC1155) tokens held by an address. Response includes spot prices and other metadata.

Each API Call Currently Costs: 1.00 Credits.

Show BalancesResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/balances_v2/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get historical token balances for address

GET/v1/{chainName}/address/{walletAddress}/historical_balances/

Used to fetch the historical native, fungible (ERC20), and non-fungible (ERC721 & ERC1155) tokens held by an address at a given block height or date. Response includes daily prices and other metadata.

Each API Call Currently Costs: 1.00 Credits.

Show HistoricalBalancesResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/historical_balances/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get historical portfolio value over time

GET/v1/{chainName}/address/{walletAddress}/portfolio_v2/

Commonly used to render a daily portfolio balance for an address broken down by the token. The timeframe is user-configurable, defaults to 30 days.

Each API Call Currently Costs: 2.00 Credits per 30 days.

Show PortfolioResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/portfolio_v2/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get ERC20 token transfers for address

GET/v1/{chainName}/address/{walletAddress}/transfers_v2/

Commonly used to render the transfer-in and transfer-out of a token along with historical prices from an address.

Each API Call Currently Costs: 0.05 Credits per item.

Show Erc20TransfersResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/transfers_v2/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get token holders as of any block height (v2)

GET/v1/{chainName}/tokens/{tokenAddress}/token_holders_v2/

Commonly used to get a list of all the token holders for a specified ERC20 or ERC721 token. Returns historic token holders when block-height is set (defaults to latest). Useful for building pie charts of token holders.

Each API Call Currently Costs: 2.00 Credits.

Show TokenHoldersResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/tokens/{tokenAddress}/token_holders_v2/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get NFTs for address

GET/v1/{chainName}/address/{walletAddress}/balances_nft/

Commonly used to render the NFTs (including ERC721 and ERC1155) held by an address.

Each API Call Currently Costs: 1.00 Credits.

Show NftAddressBalanceNftResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/balances_nft/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get NFTs from contract with metadata

GET/v1/{chainName}/nft/{contractAddress}/metadata/

Commonly used to get NFT token IDs with metadata from a collection. Useful for building NFT card displays.

Each API Call Currently Costs: 15.00 Credits.

Show NftMetadataResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/nft/{contractAddress}/metadata/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get single NFT with cached metadata from contract

GET/v1/{chainName}/nft/{contractAddress}/metadata/{tokenId}/

Commonly used to get a single NFT metadata by token ID from a collection. Useful for building NFT card displays.

Each API Call Currently Costs: 2.00 Credits.

info

This endpoint defaults to serving cached metadata for certain chains. If attempted on a non-cached chain, it issues a warning, advising the setting of with-uncached=true.

For any given asset, if it's cached, the asset_cached field on the response returns true, providing the URL and other related data. If not cached yet, asset_cached shows false, with null values for the URL and other fields.

Show NftMetadataResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/nft/{contractAddress}/metadata/{tokenId}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get single NFT with external metadata from contract

GET/v1/{chainName}/tokens/{contractAddress}/nft_metadata/{tokenId}/

Commonly used to get a single NFT with metadata by token ID from a collection. Useful for building NFT card displays.

Each API Call Currently Costs: 1.00 Credits.

info

This endpoint does not leverage our cached NFT metadata and relies on external, third parties for off-chain data. Response times vary, depending on external NFT data provider performance. Support all chains.

Show NftMetadataResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/tokens/{contractAddress}/nft_metadata/{tokenId}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get NFT transactions for contract

GET/v1/{chainName}/tokens/{contractAddress}/nft_transactions/{tokenId}/

Commonly used to get all transactions of an NFT token. Useful for building a transaction history table or price chart.

Each API Call Currently Costs: 0.10 Credits per item.

Show NftTransactionsResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/tokens/{contractAddress}/nft_transactions/{tokenId}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get traits for a collection

GET/v1/{chainName}/nft/{collectionContract}/traits/

Commonly used to fetch and render the traits of a collection as seen in rarity calculators.

Each API Call Currently Costs: 2.00 Credits.

Show NftCollectionTraitsResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/nft/{collectionContract}/traits/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get trait summary for collection

GET/v1/{chainName}/nft/{collectionContract}/traits_summary/

Commonly used to calculate rarity scores for a collection based on its traits.

Each API Call Currently Costs: 5.00 Credits.

Show NftCollectionTraitSummaryResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/nft/{collectionContract}/traits_summary/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get attributes for a collection trait

GET/v1/{chainName}/nft/{collectionContract}/traits/{trait}/attributes/

Commonly used to get the count of unique values for traits within an NFT collection.

Each API Call Currently Costs: 2.00 Credits.

Show NftCollectionAttributesForTraitResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/nft/{collectionContract}/traits/{trait}/attributes/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get chain collections

GET/v1/{chainName}/nft/collections/

Commonly used to fetch the list of NFT collections with downloaded and cached off chain data like token metadata and asset files.

Each API Call Currently Costs: 0.01 Credits.

Show ChainCollectionResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/nft/collections/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Check ownership in NFT collection

GET/v1/{chainName}/address/{walletAddress}/collection/{collectionContract}/

Commonly used to verify ownership of NFTs (including ERC-721 and ERC-1155) within a collection.

Each API Call Currently Costs: 1.00 Credits.

Show NftOwnershipForCollectionResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/collection/{collectionContract}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Check ownership in NFT collection for specific token

GET/v1/{chainName}/address/{walletAddress}/collection/{collectionContract}/token/{tokenId}/

Commonly used to verify ownership of a specific token (ERC-721 or ERC-1155) within a collection.

Each API Call Currently Costs: 1.00 Credits.

Show NftOwnershipForCollectionResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/collection/{collectionContract}/token/{tokenId}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get token approvals for address

GET/v1/{chainName}/approvals/{walletAddress}/

Commonly used to get a list of approvals across all token contracts categorized by spenders for a wallet’s assets.

Each API Call Currently Costs: 2.00 Credits.

Show ApprovalsResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/approvals/{walletAddress}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get a transaction

GET/v1/{chainName}/transaction_v2/{txHash}/

Commonly used to fetch and render a single transaction including its decoded log events. Additionally return semantically decoded information for DEX trades, lending and NFT sales.

Each API Call Currently Costs: 0.10 Credits.

info

Enriched data when using with-dex, with-lending and with-nft-sales is currently behind by ~40mins.

Show TransactionResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/transaction_v2/{txHash}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transaction summary for address

GET/v1/{chainName}/address/{walletAddress}/transactions_summary/

Commonly used to fetch the earliest and latest transactions, and the transaction count for a wallet. Calculate the age of the wallet and the time it has been idle and quickly gain insights into their engagement with web3.

Each API Call Currently Costs: 1.00 Credits.

Show TransactionsSummaryResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/transactions_summary/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get earliest transactions for address (v3)

GET/v1/{chainName}/bulk/transactions/{walletAddress}/

Commonly used to fetch and render the earliest transactions involving an address. Frequently seen in wallet applications.

Each API Call Currently Costs: 0.10 Credits per item.

info

Returns the same results as the first timebucket for an address in the Get recent transactions endpoint.

Show TransactionsTimeBucketResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/bulk/transactions/{walletAddress}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get recent transactions for address (v3)

GET/v1/{chainName}/address/{walletAddress}/transactions_v3/

Commonly used to fetch and render the most recent transactions involving an address. Frequently seen in wallet applications.

Each API Call Currently Costs: 0.10 Credits per item.

Show RecentTransactionsResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/transactions_v3/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get paginated transactions for address (v3)

GET/v1/{chainName}/address/{walletAddress}/transactions_v3/page/{page}/

Commonly used to fetch the transactions involving an address including the decoded log events in a paginated fashion.

Each API Call Currently Costs: 0.10 Credits per item.

Show TransactionsResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/transactions_v3/page/{page}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all transactions in a block (v3)

GET/v1/{chainName}/block/{blockHeight}/transactions_v3/

Commonly used to fetch all transactions including their decoded log events in a block and further flag interesting wallets or transactions.

Each API Call Currently Costs: 0.10 Credits per item.

Show TransactionsBlockResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/block/{blockHeight}/transactions_v3/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all transactions in a block by page (v3)

GET/v1/{chainName}/block/{blockHeight}/transactions_v3/page/{page}/

Commonly used to fetch all transactions including their decoded log events in a block and further flag interesting wallets or transactions.

Each API Call Currently Costs: 0.10 Credits per item.

Show TransactionsBlockPageResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/block/{blockHeight}/transactions_v3/page/{page}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get bulk time bucket transactions for address (v3)

GET/v1/{chainName}/bulk/transactions/{walletAddress}/{timeBucket}/

Commonly used to fetch all transactions including their decoded log events in a 15-minute time bucket interval.

Each API Call Currently Costs: 0.10 Credits per item.

Show TransactionsTimeBucketResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/bulk/transactions/{walletAddress}/{timeBucket}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get a block

GET/v1/{chainName}/block_v2/{blockHeight}/

Commonly used to fetch and render a single block for a block explorer.

Each API Call Currently Costs: 1.00 Credits.

Show BlockResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/block_v2/{blockHeight}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get resolved address for registered address

GET/v1/{chainName}/address/{walletAddress}/resolve_address/

Commonly used to resolve ENS, RNS and Unstoppable Domains addresses.

Each API Call Currently Costs: 1.00 Credits.

Show ResolvedAddress Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/address/{walletAddress}/resolve_address/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get block heights

GET/v1/{chainName}/block_v2/{startDate}/{endDate}/

Commonly used to get all the block heights within a particular date range. Useful for rendering a display where you sort blocks by day.

Each API Call Currently Costs: 1.00 Credits.

Show BlockHeightsResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/block_v2/{startDate}/{endDate}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get logs

GET/v1/{chainName}/events/

Commonly used to get all the event logs of the latest block, or for a range of blocks. Includes sender contract metadata as well as decoded logs.

Each API Call Currently Costs: 5.00 Credits.

Show GetLogsResponse Object
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/events/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get log events by contract address

GET/v1/{chainName}/events/address/{contractAddress}/

Commonly used to get all the event logs emitted from a particular contract address. Useful for building dashboards that examine on-chain interactions.

Each API Call Currently Costs: 0.01 Credits per item.

Show LogEventsByAddressResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/events/address/{contractAddress}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get log events by topic hash(es)

GET/v1/{chainName}/events/topics/{topicHash}/

Commonly used to get all event logs of the same topic hash across all contracts within a particular chain. Useful for cross-sectional analysis of event logs that are emitted on-chain.

Each API Call Currently Costs: 0.01 Credits per item.

Show LogEventsByTopicHashResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/events/topics/{topicHash}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all chains

GET/v1/chains/

Commonly used to build internal dashboards for all supported chains on Covalent.

Each API Call Currently Costs: 0.01 Credits.

Show AllChainsResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/chains/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all chain statuses

GET/v1/chains/status/

Commonly used to build internal status dashboards of all supported chains.

Each API Call Currently Costs: 1.00 Credits.

Show AllChainsStatusResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/chains/status/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Class B

APIs maintained by Covalent for a specific protocol on a specific blockchain, eg: Constant Product AMMs (XY=K) on various blockchains.

Get XY=K pools

GET/v1/{chainName}/xy=k/{dexName}/pools/

Commonly used to get all the pools of a particular DEX. Supports most common DEXs (Uniswap, SushiSwap, etc), and returns detailed trading data (volume, liquidity, swap counts, fees, LP token prices).

Each API Call Currently Costs: 1.00 Credits.

Show PoolResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/pools/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K pools by address

GET/v1/{chainName}/xy=k/{dexName}/pools/address/{poolAddress}/

Commonly used to get the 7 day and 30 day time-series data (volume, liquidity, price) of a particular liquidity pool in a DEX. Useful for building time-series charts on DEX trading activity.

Each API Call Currently Costs: 1.00 Credits.

Show PoolByAddressResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/pools/address/{poolAddress}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K address exchange balances

GET/v1/{chainName}/xy=k/{dexName}/address/{accountAddress}/balances/

Commonly used to return balance of a wallet/contract address on a specific DEX.

Each API Call Currently Costs: 1.00 Credits.

Show AddressExchangeBalancesResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/address/{accountAddress}/balances/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K network exchange tokens

GET/v1/{chainName}/xy=k/{dexName}/tokens/

Commonly used to get the balance of a wallet address in a DEX. Useful for finding out user balances locked up in DEX pools.

Each API Call Currently Costs: 1.00 Credits.

Show NetworkExchangeTokensResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/tokens/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K supported DEXes

GET/v1/xy=k/supported_dexes/

Commonly used to get all the supported DEXs available for the xy=k endpoints, along with the swap fees and factory addresses.

Each API Call Currently Costs: 0.01 Credits.

Show SupportedDexesResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/xy=k/supported_dexes/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K single network exchange token

GET/v1/{chainName}/xy=k/{dexName}/tokens/address/{tokenAddress}/

Commonly used to get historical daily swap count for a single network exchange token.

Each API Call Currently Costs: 1.00 Credits.

Show SingleNetworkExchangeTokenResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/tokens/address/{tokenAddress}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K transactions for account address

GET/v1/{chainName}/xy=k/{dexName}/address/{accountAddress}/transactions/

Commonly used to get all the DEX transactions of a wallet. Useful for building tables of DEX activity segmented by wallet.

Each API Call Currently Costs: 1.00 Credits.

Show TransactionsForAccountAddressResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/address/{accountAddress}/transactions/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K transactions for token address

GET/v1/{chainName}/xy=k/{dexName}/tokens/address/{tokenAddress}/transactions/

Commonly used to get all the transactions of a token within a particular DEX. Useful for getting a per-token view of DEX activity.

Each API Call Currently Costs: 1.00 Credits.

Show TransactionsForTokenAddressResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/tokens/address/{tokenAddress}/transactions/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K transactions for exchange

GET/v1/{chainName}/xy=k/{dexName}/pools/address/{poolAddress}/transactions/

Commonly used for getting all the transactions of a particular DEX liquidity pool. Useful for building a transactions history table for an individual pool.

Each API Call Currently Costs: 1.00 Credits.

Show TransactionsForExchangeResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/pools/address/{poolAddress}/transactions/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K ecosystem chart data

GET/v1/{chainName}/xy=k/{dexName}/ecosystem/

Commonly used to get a 7d and 30d time-series chart of DEX activity. Includes volume and swap count.

Each API Call Currently Costs: 1.00 Credits.

Show EcosystemChartDataResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/ecosystem/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get XY=K health data

GET/v1/{chainName}/xy=k/{dexName}/health/

Commonly used to ping the health of xy=k endpoints to get the synced block height per chain.

Each API Call Currently Costs: 1.00 Credits.

Show HealthDataResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/{chainName}/xy=k/{dexName}/health/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Pricing

Get historical token prices

GET/v1/pricing/historical_by_addresses_v2/{chainName}/{quoteCurrency}/{contractAddress}/

Commonly used to get historic prices of a token between date ranges. Supports native tokens.

Each API Call Currently Costs: 1.00 Credits.

Show TokenPricesResponse Object
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/pricing/historical_by_addresses_v2/{chainName}/{quoteCurrency}/{contractAddress}/ \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Class C

APIs created and maintained by the community.

Get market data by address

GET/v1/cq/covalent/app/aave/market_data/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/aave/market_data \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all markets

GET/v1/cq/covalent/app/aave/markets/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/aave/markets \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get balances for a wallet address

GET/v1/cq/covalent/app/aave/balances/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/aave/balances \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/aave/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/aave/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get redeemable token balance

GET/v1/cq/covalent/app/balancer/tokens/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/balancer/tokens \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get market data by address

GET/v1/cq/covalent/app/balancer/market_data/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/balancer/market_data \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all markets

GET/v1/cq/covalent/app/balancer/markets/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/balancer/markets \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/balancer/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/balancer/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get balances for a wallet address

GET/v1/cq/covalent/app/balancer/balances/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/balancer/balances \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/bitcoin/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/bitcoin/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get market data by address

GET/v1/cq/covalent/app/compound/market_data/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/compound/market_data \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all markets

GET/v1/cq/covalent/app/compound/markets/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/compound/markets \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get balances for a wallet address

GET/v1/cq/covalent/app/compound/balances/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/compound/balances \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/compound/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/compound/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get redeemable token balance

GET/v1/cq/covalent/app/curve/tokens/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/curve/tokens \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get market data by address

GET/v1/cq/covalent/app/curve/market_data/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/curve/market_data \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all markets

GET/v1/cq/covalent/app/curve/markets/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/curve/markets \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/curve/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/curve/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get balances for a wallet address

GET/v1/cq/covalent/app/curve/balances/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/curve/balances \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get market data by address

GET/v1/cq/covalent/app/dodo/market_data/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/dodo/market_data \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all markets

GET/v1/cq/covalent/app/dodo/markets/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/dodo/markets \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/dodo/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/dodo/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get balances for a wallet address

GET/v1/cq/covalent/app/dodo/balances/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/dodo/balances \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get redeemable token balance

GET/v1/cq/covalent/app/frax/tokens/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/frax/tokens \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get market data by address

GET/v1/cq/covalent/app/frax/market_data/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/frax/market_data \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all markets

GET/v1/cq/covalent/app/frax/markets/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/frax/markets \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get balances for a wallet address

GET/v1/cq/covalent/app/frax/balances/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/frax/balances \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/frax/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/frax/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all markets

GET/v1/cq/covalent/app/instadapp/markets/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/instadapp/markets \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get market data by address

GET/v1/cq/covalent/app/instadapp/market_data/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/instadapp/market_data \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/instadapp/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/instadapp/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get balances for a wallet address

GET/v1/cq/covalent/app/instadapp/balances/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/instadapp/balances \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get market data by address

GET/v1/cq/covalent/app/lido/market_data/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/lido/market_data \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get balances for a wallet address

GET/v1/cq/covalent/app/lido/balances/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/lido/balances \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/lido/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/lido/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get market data by address

GET/v1/cq/covalent/app/yearn/market_data/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/yearn/market_data \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get all markets

GET/v1/cq/covalent/app/yearn/markets/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/yearn/markets \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get transactions by wallet address

GET/v1/cq/covalent/app/yearn/transactions/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/yearn/transactions \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

Get balances for a wallet address

GET/v1/cq/covalent/app/yearn/balances/
Show Guides
  1. shell
  2. JavaScript
  3. ruby
  4. python
Request
curl -X GET https://api.covalenthq.com/v1/cq/covalent/app/yearn/balances \
    -H 'Content-Type: application/json' \
    -u YOUR_API_KEY: \
     # The colon prevents curl from asking for a password

  • Select Chain
  • Bitcoin
  • Ethereum
  • Polygon
  • BNB Smart Chain (BSC)
  • Avalanche C-Chain
  • Fantom
  • Arbitrum
  • Astar
  • Shiden
  • Aurora
  • Axie/Ronin
  • Base
  • BitTorrent
  • Canto
  • CLV Parachain
  • Covalent
  • Cronos
  • Oasis
  • Energi
  • Evmos
  • Findora
  • Flare
  • Harmony
  • Horizen Yuma Testnet
  • KCC
  • Linea
  • Mantle
  • Meter
  • Metis
  • Milkomeda A1
  • Milkomeda C1
  • Moonbeam
  • Moonriver
  • Nervos Godwoken
  • Oasys
  • Optimism
  • Palm
  • Rootstock
  • SKALE
  • Solana
  • Ultron
  • Zora
  • HECO
  • IoTeX
  • Klaytn
  • Select Net
  • MainNet
  • Ethereum
  • TestNet
  • Ethereum Goerli Testnet
  • Sepolia Testnet
  • AppChain
  • Boba Ethereum
  • Gather
  • AppChain Testnet
  • Gather Testnet