# Dexscreener Scraper: Token Price, Liquidity, Volume & Rug Risk (`precious_bathmat/dexscreener-token-scraper`) Actor

Dexscreener token reports for any crypto token or meme coin: price, market cap, liquidity, volume and buys vs sells (5m to 24h), pair age and rug-risk flags. Plus trending, newly boosted and community-takeover tokens and hot narratives. No API key.

- **URL**: https://apify.com/precious_bathmat/dexscreener-token-scraper.md
- **Developed by:** [Mariam Ahmed](https://apify.com/precious_bathmat) (community)
- **Categories:** Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 reports

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

## Dexscreener Scraper: Token Price, Liquidity, Volume & Rug Risk

Get a **Dexscreener report for any crypto token or meme coin** in seconds, with no API key and no login:

- **Price and market cap**, price change over 5 minutes, 1 hour, 6 hours and 24 hours
- **Liquidity, volume, buys and sells** summed over all of the token's trading pairs
- **Token age** and **rug-risk flags**: low liquidity, brand-new pair, heavy selling, price crash, wash-trading volume, no website or socials
- **Discovery**: trending (most boosted), newly boosted, new profiles and community-takeover tokens, filtered by chain, liquidity, volume and age
- **Narratives**: Dexscreener's trending metas (AI, Dog, Cat…) and the top tokens of each

### What does this Dexscreener scraper do?

```
BONK · Solana · 30 pairs · 3.8 years old            risk: low
 price $0.000003825   24h +1.15%   market cap $337M
 liquidity $1.63M     24h volume $2.95M
 24h trades 31,740 buys / 31,297 sells  (ratio 1.01)

Trending right now → 15 tokens: 1 low, 7 medium, 7 high risk
 STUPID  mcap $2.9K  liquidity $3.0K  -50%+ in 24h  → lowLiquidity, newPair, priceCrash, washVolume
```

1. Enter **tokens** as contract addresses, Dexscreener links, or symbols and names ("BONK", "dogwifhat").
2. Optionally **discover** tokens from Dexscreener's trending, boosted, new-profile and community-takeover lists, or from **narratives** like "ai". Filter by chain, minimum liquidity, minimum volume, maximum age, or hide high-risk tokens.
3. You get **one report per token**, a **trending narratives** report, and CSV files of all tokens and their top trading pairs.

```mermaid
flowchart LR
    A[Addresses, links,<br/>symbols] --> D[All pairs<br/>per token]
    B[Trending, boosts,<br/>new profiles, takeovers] --> F{Filters<br/>chain, liquidity,<br/>volume, age}
    C[Narratives<br/>ai, dog, cat…] --> F
    F --> D
    D --> E[Token report<br/>price, liquidity, volume,<br/>buys/sells, age, risk]
```

### Who is it for?

- **Meme coin and DeFi traders**: screen new and trending tokens before you buy, and skip the obvious rugs
- **Trading bots and alert channels** (Telegram, Discord): schedule it and push new tokens that pass your filters
- **Crypto researchers and newsletter writers**: which narratives are hot, and which tokens lead them
- **Projects and marketers**: track your own token's liquidity, volume and buy/sell balance

### What data do you get?

**Token report**

| Field | What it tells you |
|---|---|
| `symbol`, `name`, `chain`, `tokenAddress`, `dexscreenerUrl` | Which token |
| `priceUsd`, `priceChangePercent` (m5, h1, h6, h24) | Price and momentum |
| `marketCapUsd`, `fdvUsd`, `liquidityUsd`, `liquidityToMarketCapPercent` | Size and how easy it is to sell |
| `volumeUsd` (m5 to h24), `volumeToLiquidity24h` | Trading activity |
| `txns` (buys and sells, m5 to h24), `buySellRatio1h`, `buySellRatio24h` | Who is in control, buyers or sellers |
| `pairs`, `dexes`, `mainPair` | Where it trades |
| `oldestPairCreatedAt`, `ageHours`, `ageDays` | How new it is |
| `riskLevel`, `riskFlags`, `riskNotes` | Low, medium or high, and why |
| `websites`, `socials`, `boostAmount`, `discoveredVia` | Project links and where the token came from |
| `matchedBy`, `otherCandidates` | For symbols: how it was matched, and other tokens with the same symbol |

**Trending narratives report**: every trending meta with market cap, 5 min to 24 h change, volume, liquidity and token count, plus the hottest and coldest 5 of the day.

**Files**: `TOKENS_CSV` (one flat row per token) and `PAIRS_CSV` (top pairs per token: DEX, quote token, liquidity, volume, buys, sells, created date, link).

### Risk flags

| Flag | Rule |
|---|---|
| `lowLiquidity` | Liquidity under $10,000 |
| `newPair` | Oldest pair under 24 hours old |
| `thinLiquidity` | Market cap under $100M and liquidity under 2% of it |
| `heavySelling` | Last hour: at least twice as many sells as buys (20+ trades) |
| `priceCrash` | Down 50% or more in 24 hours |
| `washVolume` | 24 h volume over 25 times liquidity |
| `noLinks` | No website or socials |
| `noTrades` | No trades in 24 hours |
| `communityTakeover` | Listed as a community takeover |

**High risk**: two or more of low liquidity, thin liquidity, heavy selling, price crash, wash volume and no trades, or a new pair with low liquidity. **Medium**: any other flag. **Low**: no flags.

### Example: 30 September 2026, 15:21 UTC

One run, **38 token reports in 18 seconds**: 8 tokens by name or address, 15 trending, 15 from the AI narrative.

| Token | Chain | Price | Market cap | Liquidity | 24 h volume | Buys / sells 24 h | Risk |
|---|---|---|---|---|---|---|---|
| TRUMP | Solana | $2.061 | $581M | $27.6M | $10.8M | 16,156 / 16,126 | low |
| JUP | Solana | $0.3236 | $1.07B | $4.5M | $10.3M | 50,568 / 58,510 | low |
| BONK | Solana | $0.000003825 | $337M | $1.6M | $2.9M | 31,740 / 31,297 | low |
| $WIF (dogwifhat) | Solana | $0.2519 | $252M | $7.2M | $1.4M | 14,122 / 14,448 | low |
| MOODENG ("Moo Deng") | Solana | $0.04731 | $46.8M | $3.1M | $259K | 985 / 1,015 | low |

Of the 15 trending tokens, **7 were high risk**, 7 medium and 1 low; 13 were less than a day old. The hottest narratives of the day were **Stonks +5.9%**, Dog +2.9% and Degen +2.2%, the coldest Brainrot −8.6% and TikTok −8.5%.

### Pricing

**$0.02 per report** (each token, and the narratives report) and **$0.001 per trading pair** saved.

One token with 5 pairs costs **$0.025**. The run above (39 reports, 150 pairs) cost **$0.93**. Set "Pairs to save per token" to 0 to pay for reports only.

### Good to know

- **Addresses and links are exact. Symbols are not**: many tokens share a symbol, and copies can fake huge liquidity. A symbol is matched to the **most traded** token with that symbol (well-known tokens like WIF, BONK, PEPE, TRUMP use their verified addresses), and `otherCandidates` lists the rest.
- **Liquidity, volume and trades are summed** over the pairs where the token is the base token (up to 30 per token, as Dexscreener returns them). Price and price change come from the pair with the most liquidity.
- **Risk flags are simple rules**, not a contract audit. They catch the obvious rugs; always check before you buy.
- **Filters apply to discovered tokens only**. Tokens you type are always reported.
- **Everything is live** at the time of the run. Schedule it every few minutes or hours to catch new launches or follow a token.
- Data comes from **Dexscreener's public API**, the same numbers dexscreener.com shows.

### Input

| Field | Meaning |
|---|---|
| **Tokens** | Addresses, Dexscreener links, `chain:address`, symbols or names |
| **Discover tokens** | Trending, newly boosted, new profiles, community takeovers |
| **Narratives** | ai, dog, cat, trump… |
| **Trending narratives report** | On by default |
| **Chains** | solana, ethereum, base, bsc… |
| **Minimum liquidity / 24 h volume** | USD, discovered tokens only |
| **Maximum age (hours)** | e.g. 24 for launches of the last day |
| **Hide high-risk tokens** | Discovered tokens only |
| **Tokens per list** | 1 to 200 (default 30) |
| **Pairs to save per token** | 0 to 30 (default 5) |

### Integrations

Export to JSON, CSV, Excel or Google Sheets, or connect through the Apify API, webhooks, Make, Zapier and n8n. **Schedule it** and send new tokens that pass your filters to Telegram, Discord or Slack.

# Actor input Schema

## `tokens` (type: `array`):

Contract addresses, Dexscreener links (token or pair), "chain:address", or symbols and names like "BONK", "dogwifhat". Addresses and links are exact; a symbol is matched to the most traded token with it. One report per token.

## `discover` (type: `array`):

Also report tokens from Dexscreener's lists. Trending is used when nothing else is given.

## `narratives` (type: `array`):

Report the top tokens of Dexscreener narratives (metas), e.g. "ai", "dog", "cat", "trump". The trending narratives report lists what is available.

## `trendingNarratives` (type: `boolean`):

Add one report of Dexscreener's trending narratives: market cap, 1 h and 24 h change, volume and token count for each.

## `chains` (type: `array`):

Optional: only these chains, e.g. "solana", "ethereum", "base", "bsc". Applies to discovered tokens and symbol matching.

## `minLiquidityUsd` (type: `integer`):

Discovered tokens only: skip tokens with less liquidity across their pairs.

## `minVolume24hUsd` (type: `integer`):

Discovered tokens only: skip tokens that traded less in 24 hours.

## `maxAgeHours` (type: `integer`):

Discovered tokens only: keep tokens whose oldest pair is at most this old, e.g. 24 for launches of the last day. 0 = any age.

## `hideHighRisk` (type: `boolean`):

Discovered tokens only: skip tokens rated high risk (thin liquidity, crashes, heavy selling, wash volume).

## `maxTokens` (type: `integer`):

Most tokens reported from each discovery list and each narrative (1 to 200).

## `pairsPerToken` (type: `integer`):

Trading pairs saved to the pairs file per token, biggest liquidity first (0 to 30). Charged per pair. Reports always use every pair.

## Actor input object example

```json
{
  "tokens": [
    "BONK",
    "https://dexscreener.com/solana/8sLbNZoA1cfnvMJLPfp98ZLAnFSYCFApfJKMbiXNLwxj"
  ],
  "discover": [
    "trending"
  ],
  "trendingNarratives": true,
  "minLiquidityUsd": 0,
  "minVolume24hUsd": 0,
  "maxAgeHours": 0,
  "hideHighRisk": false,
  "maxTokens": 30,
  "pairsPerToken": 5
}
```

# Actor output Schema

## `reports` (type: `string`):

One row per token (price, liquidity, volume, buys and sells, age, risk flags) and one for trending narratives.

## `tokens` (type: `string`):

Flat table of every token: price, change, market cap, liquidity, volume, buys, sells, age, risk.

## `pairs` (type: `string`):

Top pairs per token: DEX, quote token, liquidity, volume, buys, sells, created date, link.

## `summary` (type: `string`):

Filters, problems and the limits of the data.

# 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 = {
    "tokens": [
        "BONK",
        "https://dexscreener.com/solana/8sLbNZoA1cfnvMJLPfp98ZLAnFSYCFApfJKMbiXNLwxj"
    ],
    "discover": [
        "trending"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("precious_bathmat/dexscreener-token-scraper").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 = {
    "tokens": [
        "BONK",
        "https://dexscreener.com/solana/8sLbNZoA1cfnvMJLPfp98ZLAnFSYCFApfJKMbiXNLwxj",
    ],
    "discover": ["trending"],
}

# Run the Actor and wait for it to finish
run = client.actor("precious_bathmat/dexscreener-token-scraper").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 '{
  "tokens": [
    "BONK",
    "https://dexscreener.com/solana/8sLbNZoA1cfnvMJLPfp98ZLAnFSYCFApfJKMbiXNLwxj"
  ],
  "discover": [
    "trending"
  ]
}' |
apify call precious_bathmat/dexscreener-token-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,precious_bathmat/dexscreener-token-scraper"
        }
    }
}
```

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/6qSfnSk7Adn7j97Ox/builds/zpaNaWDml5htjsmpx/openapi.json
