# Crypto Data API — CoinGecko, DexScreener, DefiLlama | $0.99/1k (`glasswing/coingecko-dexscreener-crypto-api`) Actor

Crypto market data without an API key: coin prices, market caps, volume, 1h/24h/7d change, ATH/ATL and supply from CoinGecko; DEX pairs with liquidity, FDV, volume and transactions from DexScreener; DeFi protocol and chain TVL from DefiLlama. One row per coin, pair or protocol. JSON, CSV, Excel.

- **URL**: https://apify.com/glasswing/coingecko-dexscreener-crypto-api.md
- **Developed by:** [Raffy](https://apify.com/glasswing) (community)
- **Categories:** Developer tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Crypto Data API do?

Crypto Data API returns **live crypto market data as clean rows** from three public, keyless sources in one Actor:

- **Coins** from [CoinGecko](https://www.coingecko.com/): price, market cap and rank, 24h volume, 1h/24h/7d change, all-time high and low, circulating/total/max supply, for the top N coins by market cap or for the exact coins you name.
- **DEX pairs** from [DexScreener](https://dexscreener.com/): every trading pair of a token across Ethereum, Solana, Base, BSC, Arbitrum and 100+ chains, with price, liquidity, FDV, market cap, 24h volume and transaction counts, price change and pair age.
- **DeFi TVL** from [DefiLlama](https://defillama.com/): protocols and chains with their total value locked, TVL change and category.

It works as a **CoinGecko API, DexScreener API and DefiLlama API alternative**: no API key, no account, no browser, no proxy. One request answers up to 250 coins, so a run over the top 1,000 coins is four requests and finishes in seconds. Export as JSON, CSV or Excel, or read the dataset from your own code or an AI agent.

It reads **market data only**. There are no wallets, no personal data, no login and no trading. The data is informational, not financial advice.

### Use cases for this crypto prices API

- **Dashboards and spreadsheets** - schedule a run every hour and push the top 100 coins to Google Sheets, Airtable or a database through Apify integrations, webhooks, n8n, Make or Zapier.
- **Token due diligence** - look up a contract address and see every pool it trades in, how much liquidity each has, how many buys and sells happened in the last 24 hours, and when the pair was created.
- **DeFi research** - rank lending protocols or DEXes by TVL, watch a category's 7-day change, or list every protocol deployed on one chain.
- **AI agents and MCP** - the Actor runs with no input at all (top 20 coins in USD), every row is self-describing, and a coin or token that does not exist comes back as one free `not_found` row instead of an empty dataset or an error.
- **Alerts** - diff two runs on `id` and fire a notification when a price, a liquidity figure or a TVL crosses a threshold.

### What data can Crypto Data API extract?

Every row has the same shared columns; the dataset-specific columns are present only on rows of that dataset. A value the source does not publish is left out; nothing is guessed.

| Field | Type | Description |
|---|---|---|
| `status` | string | `ok`, `not_found` or `error` (see below) |
| `source` | string | Which public API answered: `coingecko`, `dexscreener` or `defillama` |
| `dataset` | string | `coins`, `dexPairs`, `defiProtocols` or `defiChains` |
| `id` | string | CoinGecko coin id, DefiLlama slug or chain name |
| `name` | string | Coin name, pair name (`PEPE/WETH`), protocol or chain name |
| `symbol` | string | Ticker symbol, upper case |
| `image` | string | Logo URL when published |
| `currency` | string | Currency of the money columns: `vsCurrency` for coins (USD by default), USD for pairs and TVL |
| `price` | number | Current price in `currency` |
| `marketCap` | number | Market capitalisation |
| `volume24h` | number | 24-hour trading volume |
| `priceChangePct24h` | number | Price change over 24 hours, percent |
| `url` | string | Public page of the row on coingecko.com, dexscreener.com or defillama.com |
| `error` | string | Reason, on `not_found` and `error` rows only |
| `scrapedAt` | string | ISO 8601 time of extraction |

**Coins (CoinGecko)** also carry `marketCapRank`, `fullyDilutedValuation`, `high24h`, `low24h`, `priceChange24h`, `priceChangePct1h`, `priceChangePct7d`, `marketCapChange24h`, `marketCapChangePct24h`, `circulatingSupply`, `totalSupply`, `maxSupply`, `ath`, `athChangePct`, `athDate`, `atl`, `atlChangePct`, `atlDate` and `lastUpdated`.

**DEX pairs (DexScreener)** also carry `searchTerm` (your query), `chain`, `dex`, `pairAddress`, `labels`, `baseTokenSymbol`, `baseTokenName`, `baseTokenAddress`, `quoteTokenSymbol`, `quoteTokenName`, `quoteTokenAddress`, `priceNative`, `liquidityUsd`, `fdv`, `volume6h`, `volume1h`, `volume5m`, `txns24hBuys`, `txns24hSells`, `txns24h`, `priceChangePct5m`, `priceChangePct1h`, `priceChangePct6h`, `pairCreatedAt`, `website`.

**DeFi protocols (DefiLlama)** also carry `slug`, `category`, `chains`, `tvl`, `tvlChangePct1h`, `tvlChangePct1d`, `tvlChangePct7d`, `website`, `description`, `listedAt`, `parentProtocol` and `geckoId` (the CoinGecko id of the protocol's token, so you can join with the coins dataset). **DeFi chains** carry `tvl`, `chainId`, `geckoId` and `cmcId`.

#### Result status (tri-state output)

| `status` | Meaning | Billed? |
|---|---|---|
| `ok` | One coin, pair, protocol or chain with its data. | Yes |
| `not_found` | The source answered but has no such coin, token, protocol or chain, or nothing matched your filters. One row per entry, with the reason in `error`. | No |
| `error` | The source could not be read after retries (network error, rate limit, or a changed response format). `error` says why. | No |

A run whose only rows are `not_found` finishes successfully: "no results" is an answer, not a failure.

### How to get crypto market data with Crypto Data API

1. Open the Actor in Apify Console and click **Try for free**. The prefilled input already returns the top 20 coins by market cap in USD.
2. Pick a **Dataset**: coins, DEX pairs, DeFi protocols or DeFi chains.
3. Narrow it if you like: **Coin ids** or **Coin symbols** and a **Quote currency** for coins; **Tokens to look up**, a **Chain filter** and a **Minimum liquidity** for DEX pairs; a **Category**, **Chain** or **Name contains** filter for DeFi TVL. Filters run before rows are written, so you only pay for matches.
4. Set **Maximum results**. For the top-coins list this is how many coins you get; CoinGecko answers 250 per request, so 1,000 coins is four requests.
5. Click **Start**. Rows appear in the dataset within seconds; open the **Output** tab or **Export** them as JSON, CSV, Excel, XML or HTML.

To automate it, use the **API** tab (Node.js, Python, curl examples) or add a **Schedule**.

### How much does it cost to get crypto prices?

This Actor uses **pay-per-event** pricing, and the price includes the platform compute for the run:

| Event | Price |
|---|---|
| Actor start | $0.005 per run |
| Result (`status: ok` row) | $0.00099 per row |

Example: the top 1,000 coins cost about $1.00 ($0.005 + 1,000 x $0.00099); the default run of 20 coins costs about $0.025. Rows with `status` `not_found` or `error` are never billed. The free Apify plan includes enough credit to try the Actor on a few thousand rows. You can cap spending per run with **Maximum results** and in the run's **Max total charge** option.

### Input

See the **Input** tab for the full schema. The main options:

| Field | Type | Default | Description |
|---|---|---|---|
| `dataset` | string | `coins` | `coins`, `dexPairs`, `defiProtocols` or `defiChains` |
| `coinIds` | array of strings | - | CoinGecko ids (`bitcoin`, `ethereum`, `usd-coin`); empty = top coins by market cap |
| `coinSymbols` | array of strings | - | Ticker symbols (`btc`, `eth`), an alternative to ids |
| `vsCurrency` | string | `usd` | Quote currency for the coins dataset (`eur`, `gbp`, `btc`, ...) |
| `coinOrder` | string | `market_cap_desc` | Sort order of the top-coins list |
| `dexQueries` | array of strings | - | Token names, symbols or contract addresses to look up on DexScreener |
| `dexChain` | string | - | Keep only pairs on this chain (`ethereum`, `solana`, `base`, ...) |
| `dexMinLiquidityUsd` | integer | - | Drop pairs with less pooled liquidity than this |
| `dexPairsPerQuery` | integer | `10` | Pairs kept per query, largest liquidity first (max 30) |
| `defiCategory` | string | - | Keep only protocols of this DefiLlama category (`Dexes`, `Lending`, ...) |
| `defiChain` | string | - | Keep only protocols on this chain, or return just this chain |
| `defiSearch` | string | - | Keep only protocols or chains whose name contains this text |
| `maxItems` | integer | `20` | Stop after this many rows |
| `startUrls` | array of strings | one CoinGecko API URL | Advanced: API URLs or coingecko.com / dexscreener.com / defillama.com pages, fetched instead of the dataset inputs |
| `proxyConfiguration` | object | Apify Proxy off | Not needed; enable the datacenter group only if CoinGecko rate-limits the shared IP |

Top 100 coins in EUR:

```json
{
    "dataset": "coins",
    "vsCurrency": "eur",
    "maxItems": 100
}
```

Exactly these coins:

```json
{
    "dataset": "coins",
    "coinIds": ["bitcoin", "ethereum", "solana", "usd-coin"]
}
```

The ten most liquid pools of a token, on any chain, from its symbol or its contract address:

```json
{
    "dataset": "dexPairs",
    "dexQueries": ["PEPE", "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"],
    "dexMinLiquidityUsd": 10000,
    "dexPairsPerQuery": 10
}
```

Lending protocols on Ethereum by TVL:

```json
{
    "dataset": "defiProtocols",
    "defiCategory": "Lending",
    "defiChain": "Ethereum",
    "maxItems": 50
}
```

Every chain by TVL:

```json
{
    "dataset": "defiChains",
    "maxItems": 100
}
```

### Output

You can download the dataset in various formats such as JSON, HTML, CSV or Excel. Real rows from runs on the Apify platform on 2026-09-27 (runs `2OAqSxivqfl5lzBJG` and `tzzNN948oFQl9gNUy`): a coin from the coins dataset, the most liquid DEX pair for the query `PEPE`, and the free `not_found` row the same run gave for a coin id CoinGecko does not know.

```json
[
    {
        "url": "https://www.coingecko.com/en/coins/bitcoin",
        "status": "ok",
        "source": "coingecko",
        "dataset": "coins",
        "id": "bitcoin",
        "symbol": "BTC",
        "name": "Bitcoin",
        "image": "https://coin-images.coingecko.com/coins/images/1/large/bitcoin.png?1696501400",
        "currency": "USD",
        "price": 84266,
        "marketCap": 1693049889652,
        "marketCapRank": 1,
        "fullyDilutedValuation": 1693049889652,
        "volume24h": 17804623793,
        "high24h": 84296,
        "low24h": 83790,
        "priceChange24h": 204.67,
        "priceChangePct1h": 0.1528,
        "priceChangePct24h": 0.21668,
        "priceChangePct7d": 3.7366,
        "marketCapChange24h": 4322958696,
        "marketCapChangePct24h": 0.25599,
        "circulatingSupply": 20089821,
        "totalSupply": 20089821,
        "maxSupply": 21000000,
        "ath": 126080,
        "athChangePct": -33.1648,
        "athDate": "2025-10-06T10:57:42.000Z",
        "atl": 67.81,
        "atlChangePct": 124169.25789,
        "atlDate": "2013-07-05T16:00:00.000Z",
        "lastUpdated": "2026-09-26T22:57:20.000Z",
        "scrapedAt": "2026-09-26T22:59:52.547Z"
    },
    {
        "url": "https://dexscreener.com/ethereum/0xa43fe16908251ee70ef74718545e4fe6c5ccec9f",
        "status": "ok",
        "source": "dexscreener",
        "dataset": "dexPairs",
        "searchTerm": "PEPE",
        "chain": "ethereum",
        "dex": "uniswap",
        "pairAddress": "0xA43fe16908251ee70EF74718545e4FE6C5cCEc9f",
        "labels": [
            "v2"
        ],
        "name": "PEPE/WETH",
        "symbol": "PEPE",
        "baseTokenSymbol": "PEPE",
        "baseTokenName": "Pepe",
        "baseTokenAddress": "0x6982508145454Ce325dDbE47a25d4ec3d2311933",
        "quoteTokenSymbol": "WETH",
        "quoteTokenName": "Wrapped Ether",
        "quoteTokenAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
        "currency": "USD",
        "price": 4.352e-06,
        "priceNative": 1.619e-09,
        "liquidityUsd": 31737345.38,
        "fdv": 1801092319,
        "marketCap": 1801092319,
        "volume24h": 1146952.93,
        "volume6h": 398851.27,
        "volume1h": 15508.02,
        "volume5m": 0,
        "txns24hBuys": 490,
        "txns24hSells": 449,
        "txns24h": 939,
        "priceChangePct1h": 0.17,
        "priceChangePct6h": -2.1,
        "priceChangePct24h": -3.49,
        "pairCreatedAt": "2023-04-14T17:21:11.000Z",
        "website": "https://www.pepe.vip/",
        "image": "https://cdn.dexscreener.com/cms/images/ae001139fa1fcd24f8421d82caf72d8e06fabafab33b089c5d2e6d18039354e7?width=800&height=800&quality=95&format=auto",
        "scrapedAt": "2026-09-26T22:59:55.705Z"
    },
    {
        "url": "https://www.coingecko.com/en/coins/not-a-real-coin",
        "status": "not_found",
        "error": "CoinGecko has no coin with the id \"not-a-real-coin\". Ids are lowercase slugs such as bitcoin, ethereum or usd-coin; use coinSymbols for tickers like btc.",
        "source": "coingecko",
        "dataset": "coins",
        "id": "not-a-real-coin",
        "scrapedAt": "2026-09-26T22:59:52.548Z"
    }
]
```

### Tips

- Keep `maxItems` small while testing, then raise it. The top-coins list costs one request per 250 coins, so a big run is still fast.
- Use `coinIds` when you need exact coins; a symbol such as `eth` can belong to several tokens and CoinGecko returns the best-known one.
- For DEX pairs, a contract address is exact; a name search can match look-alike tokens. Set `dexMinLiquidityUsd` to skip dust pools.
- Join datasets on `geckoId` (protocols and chains) = `id` (coins) to combine TVL with prices.
- If `error` rows mention HTTP 429, CoinGecko's free tier is throttling the shared IP; wait a minute, or enable the Apify datacenter proxy group so the run gets its own address.

### Limitations

- CoinGecko's keyless API is rate-limited per IP (roughly 5-30 requests per minute), and the Actor shares Apify's datacenter addresses with other users. It asks for 250 coins per request and fetches pages one after another; when CoinGecko answers HTTP 429 the Actor waits 5, 15, 35 and then 65 seconds and tries again, and only after that does the page become an `error` row, never silent missing data. Measured on the platform on 2026-09-27: the top 20 or 250 coins take about 3 seconds; the top 1,000 (four requests) took 125 seconds because the fourth request was throttled and waited out. For large or frequent coin runs, enable the Apify datacenter proxy group so the run gets its own address.
- Prices are snapshots at run time, not a stream; schedule the Actor for regular updates. Historical prices, order books and trades are not included.
- DexScreener answers at most 30 pairs per query, and a name search returns what DexScreener matches, including look-alike tokens; use the contract address for an exact answer.
- DefiLlama's protocol list is one large response (about 9 MB); a `defiProtocols` run takes a few seconds longer than the others.
- The data is informational and comes from third-party public sources as they publish it. It is not financial advice, and figures can be stale or wrong at the source.
- Results reflect the public APIs at the time of the run; if a source changes its format, rows come back as `error` and the Actor is updated quickly (report it in the **Issues** tab).

### FAQ

#### Do I need a CoinGecko, DexScreener or DefiLlama API key?

No. The Actor reads the public endpoints the three sites expose for their own front ends. There is nothing to sign up for and nothing to paste in.

#### Which currencies can I price coins in?

Any quote currency CoinGecko supports: `usd`, `eur`, `gbp`, `jpy`, `inr`, `brl`, `btc`, `eth` and about 60 more. DEX pairs and TVL are always in USD.

#### Can I use this Actor from an AI agent or MCP client?

Yes. It runs with no arguments (top 20 coins in USD), every row is self-describing (`status` + `error`), inputs are plain strings, and results can be fetched via the dataset API or the Apify MCP server.

#### Why did I get fewer rows than `maxItems`?

Your ids or queries matched fewer items, a filter removed the rest, or the run hit your **Max total charge** limit. Check the run log for "Stopping gracefully" and the `not_found` rows for what was not matched.

#### Is it legal to use this data?

The Actor reads public market data that the three services publish without login, and it contains no personal data. You are responsible for how you use the output; read the legal notice below and the sources' terms of use.

### Related Actors

- [Yahoo Finance Scraper](https://apify.com/glasswing/yahoo-finance-scraper) - use it for stock and traditional-market prices alongside crypto data.
- [Domain Intelligence: SPF, DMARC, SSL, WHOIS](https://apify.com/glasswing/domain-intelligence-report) - use it to check a token project's own website before trusting it.
- [Google News Scraper & News API](https://apify.com/glasswing/google-news-scraper) - use it to pull headlines that may explain a price move.

### Legal and data-protection notice

This Actor extracts only data that CoinGecko, DexScreener and DefiLlama publish publicly through their open endpoints; it does not extract private user data such as e-mail addresses, phone numbers, wallets or precise location, and it does not log in or bypass access controls. Market data is not personal data, but you should still make sure your use of the output complies with the sources' terms of service and with applicable law, including the GDPR where it applies. The data is provided as published by third parties, for information only, and is not investment, financial, legal or tax advice.

This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by CoinGecko, DexScreener, DefiLlama or their owners. All trademarks belong to their respective owners.

# Changelog

This Actor's version history is a separate document: https://apify.com/glasswing/coingecko-dexscreener-crypto-api/changelog.md

# Actor input Schema

## `dataset` (type: `string`):

`coins` = coin market data from CoinGecko (price, market cap, rank, volume, 1h/24h/7d change, ATH/ATL, supply). `dexPairs` = decentralised-exchange trading pairs from DexScreener (price, liquidity, FDV, volume, transactions, pair age). `defiProtocols` = DeFi protocols with their TVL from DefiLlama. `defiChains` = blockchains with their TVL from DefiLlama.

## `coinIds` (type: `array`):

CoinGecko coin ids, one per line: `bitcoin`, `ethereum`, `solana`, `usd-coin`. The id is the last part of the coin's coingecko.com URL. An id CoinGecko does not know gives one free `not_found` row.

## `coinSymbols` (type: `array`):

Ticker symbols, one per line: `btc`, `eth`, `sol`. When a symbol is shared by several coins CoinGecko returns the best-known one. Use ids when you need an exact coin.

## `vsCurrency` (type: `string`):

Currency for price, market cap and volume of the coins dataset: `usd`, `eur`, `gbp`, `jpy`, `btc`, `eth` and the other codes CoinGecko supports. DexScreener and DefiLlama figures are always in USD.

## `coinOrder` (type: `string`):

How the top-coins list is ordered before `Maximum results` cuts it.

## `dexQueries` (type: `array`):

Token names, symbols or contract addresses, one per line: `PEPE`, `WETH USDC`, `0x6982508145454Ce325dDbE47a25d4ec3d2311933`, `DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263`. A query with no pair gives one free `not_found` row.

## `dexChain` (type: `string`):

Keep only pairs on this chain, as DexScreener names it: `ethereum`, `solana`, `bsc`, `base`, `arbitrum`, `polygon`. Leave empty for all chains.

## `dexMinLiquidityUsd` (type: `integer`):

Drop pairs whose pooled liquidity is below this many US dollars, e.g. `10000` to skip dust pools. Leave empty for no minimum.

## `dexPairsPerQuery` (type: `integer`):

How many pairs to keep for each query, largest liquidity first, e.g. `10`. DexScreener answers at most 30.

## `defiCategory` (type: `string`):

Keep only protocols of this DefiLlama category: `Dexes`, `Lending`, `Liquid Staking`, `Bridge`, `CEX`, `Yield`, `Derivatives`, `RWA`, ... Leave empty for all.

## `defiChain` (type: `string`):

Protocols: keep only those deployed on this chain (`Ethereum`, `Solana`, `Base`, `Arbitrum`, `BSC`). Chains: return just this chain.

## `defiSearch` (type: `string`):

Keep only protocols or chains whose name, symbol or slug contains this text, e.g. `aave`, `uniswap`, `lido`.

## `maxItems` (type: `integer`):

Stop after this many rows have been saved. Each saved row with status `ok` is one billable result. For the top-coins list this is also how many coins are fetched (250 per request). The default of 20 keeps a first run cheap.

## `startUrls` (type: `array`):

Optional. API URLs of api.coingecko.com (/api/v3/coins/markets), api.dexscreener.com (/latest/dex/search, /tokens, /pairs) or api.llama.fi (/protocols, /v2/chains) are fetched as they are; a coingecko.com coin page, a dexscreener.com pair page or a defillama.com protocol page is turned into the matching API call. When this list holds anything but its built-in example, it replaces the dataset inputs above.

## `proxyConfiguration` (type: `object`):

Optional and off by default. The three APIs answer plain HTTP requests from Apify's datacenter IPs. CoinGecko's free tier limits requests per IP; if you see HTTP 429 in `error` rows, enable the Apify datacenter proxy group so each run gets its own address. Residential proxies are not needed.

## Actor input object example

```json
{
  "dataset": "coins",
  "vsCurrency": "usd",
  "coinOrder": "market_cap_desc",
  "dexPairsPerQuery": 10,
  "maxItems": 20,
  "startUrls": [
    "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=250&page=1&sparkline=false&price_change_percentage=1h%2C24h%2C7d"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "dataset": "coins",
    "vsCurrency": "usd",
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("glasswing/coingecko-dexscreener-crypto-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "dataset": "coins",
    "vsCurrency": "usd",
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("glasswing/coingecko-dexscreener-crypto-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "dataset": "coins",
  "vsCurrency": "usd",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call glasswing/coingecko-dexscreener-crypto-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,glasswing/coingecko-dexscreener-crypto-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/VafJfCbt587ra8RHv/builds/2WnVczNZ9Ms4wma3d/openapi.json
