# dYdX Markets Scraper (`parseforge/dydx-markets-scraper`) Actor

Scrapes live dYdX v4 perpetual market snapshots. Returns each contract as a flat row with price, volume, open interest, and funding rate. Filter by ticker symbol.

- **URL**: https://apify.com/parseforge/dydx-markets-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Automation, Integrations, Developer tools
- **Stats:** 1 total users, 1 monthly users, 89.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.50 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### dYdX Markets Scraper

**Scrape dYdX perpetual markets with open interest, funding rates, and 24h volume in one flat dataset.** Filter by ticker or grab every market, up to a million rows per run. No API key, no login. Export to CSV, JSON, Excel, or XML.

dYdX's official API needs an account, API keys, and rate limits that slow you down. This reads the public market data directly and returns each perpetual market as one row with its ticker, oracle price, open interest, funding rate, and 24h volume. Filter by ticker or pull the full list, then export it anywhere.

| Who uses it | What they scrape dYdX for |
|---|---|
| Crypto traders | Which dYdX markets have the highest funding rates right now |
| Quant researchers | Historical open interest and volume for backtesting strategies |
| Market analysts | Daily snapshots of dYdX market activity for reports |
| DeFi developers | Monitoring dYdX market health for their own applications |

### What it does

This Actor collects dYdX perpetual market data and returns each market as a flat row with its ticker, oracle price, open interest, funding rate, and 24h volume.

- 📊 **Full market coverage:** Pull every dYdX perpetual market in one run, up to a million rows.
- 🎯 **Ticker filter:** Pass a comma-separated list like BTC-USD,ETH-USD to get only the markets you care about.
- 💾 **Multiple export formats:** Save results as CSV, JSON, Excel, or XML directly from the run.
- ⚡ **No API key needed:** Reads public dYdX market data, no registration or rate limits.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with dYdX data

**📈 Track funding rate opportunities.**

A crypto trader runs the scraper daily with no ticker filter, sorts by funding rate, and opens positions on the highest-paying markets.

**🔍 Monitor specific tickers.**

A quant researcher passes BTC-USD,ETH-USD,SOL-USD to the ticker filter and collects daily open interest and volume for a backtest.

**📊 Build a market dashboard.**

A DeFi analyst schedules the scraper every hour and feeds the flat dataset into a dashboard that shows dYdX market health.

**🧪 Research market microstructure.**

An academic pulls the full market list once a day and studies how funding rates and open interest move together.

### Why choose this scraper

| | What you get |
|---|---|
| **Open interest** | Current open interest for each perpetual market |
| **Funding rate** | Current funding rate, both 8h and annualized |
| **24h volume** | Trading volume over the last 24 hours |
| **Oracle price** | The oracle price used by dYdX for each market |

### How it compares

This actor focuses on a clean flat dataset with ticker filtering and high item limits, while the competitors add computed rankings or threshold filters.

| Feature | ParseForge | dYdX Perpetual Tracker | Perpetual DEX Analytics |
|---|---|---|---|
| Open interest | Yes | Yes | Yes |
| Funding rate | Yes | Yes | Yes |
| 24h volume | Yes | Yes | Yes |
| Oracle price | Yes | Yes | Not listed |
| Ticker filter | Yes | Not listed | Yes |
| Computed rankings (top gainers, highest funding) | Not listed | Yes | Not listed |
| Threshold filters (OI, funding) | Not listed | Not listed | Yes |

### Configure the run

Drive the Actor with an optional ticker filter and a maximum item count. The ticker filter runs before data is collected, so only matching markets reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "maxItems": 10
}
```

A larger pull:

```json
{
 "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.0085 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [dYdX Markets Scraper](https://apify.com/parseforge/dydx-markets-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to dYdX through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/dydx-markets-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check your tickerFilter. If you passed a ticker that does not exist on dYdX, the result will be empty. Leave the filter empty to get all markets.

**Why did I only get 10 markets?**

Free users are limited to 10 items as a preview. Upgrade to a paid plan and set maxItems higher to get more markets.

**The run failed with a timeout.**

dYdX's public API can be slow during high traffic. Try reducing maxItems or adding a ticker filter to limit the number of requests.

**Some fields are missing or null.**

dYdX may not have data for every field on every market. Null values are normal for markets with no recent activity.

**Can I get historical data?**

This scraper returns current market data only. For historical data, you would need to run it on a schedule and store the results over time.

### FAQ

| Question | Answer |
|---|---|
| Do I need a dYdX API key? | No. This scraper reads public dYdX market data and does not require any API key or login. |
| How many markets can I scrape in one run? | Free users are limited to 10 markets as a preview. Paid users can set maxItems up to 1,000,000, which covers every dYdX market many times over. |
| Can I filter by ticker? | Yes. Use the tickerFilter field with a comma-separated list like BTC-USD,ETH-USD. Leave it empty to get all markets. |
| What data does each row contain? | Each row includes the ticker, oracle price, open interest, funding rate (8h and annualized), 24h volume, and other market fields from the dYdX public API. |
| How often should I run this scraper? | dYdX market data changes constantly. For funding rate monitoring, run it every hour. For daily analysis, once a day is enough. |
| What export formats are supported? | You can export results as CSV, JSON, Excel, or XML directly from the Apify run page or via API. |
| Is this the same as the dYdX Perpetual Tracker actor? | Both scrape dYdX market data, but this actor focuses on a clean flat dataset with ticker filtering and high item limits. The Perpetual Tracker adds computed rankings like top gainers. |
| Does this work with dYdX v4? | Yes, it reads the current dYdX v4 perpetual market data. |
| Can I schedule this scraper? | Yes, you can set up a schedule in Apify to run it hourly, daily, or at any interval you need. |
| What is the cost? | The actor is free to try with a 10-market preview. Paid runs cost based on Apify platform usage, and you can set maxItems to control the size. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by dYdX Trading Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `tickerFilter` (type: `string`):

Comma-separated tickers to include (e.g. BTC-USD,ETH-USD). Empty = all markets.

## Actor input object example

```json
{
  "maxItems": 10
}
```

# 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 = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/dydx-markets-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 = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/dydx-markets-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 '{
  "maxItems": 10
}' |
apify call parseforge/dydx-markets-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/dydx-markets-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/oXyGGPHQcdUWF9jT7/builds/YZ5NXVerFyboUI3yA/openapi.json
