# Bitvavo Crypto Tickers Scraper (`parseforge/bitvavo-tickers-scraper`) Actor

Scrape live spot tickers from Bitvavo public API including price, bid/ask, 24h high/low, volume, and price change for all EUR/USDC/USDT pairs. No API key required.

- **URL**: https://apify.com/parseforge/bitvavo-tickers-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $24.75 / 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Banner](https://github.com/ParseForge/apify-assets/raw/main/banner.jpg)

## 🟢 Bitvavo Crypto Tickers Scraper

> 🚀 **Export live spot tickers from the Bitvavo public API in seconds.** Pull **200+ EUR/USDC/USDT markets** with last price, bid/ask depth, 24h high/low, volume, and percent change. No API key, no signup, no rate-limit gymnastics.

> 🕒 **Last updated:** 2026-05-13 · **📊 19 fields** per record · **🟢 200+ markets** · **💶 EUR / USDC / USDT quote currencies** · **🇪🇺 EU regulated**

The **Bitvavo Tickers Scraper** queries the official Bitvavo v2 public API and returns **19 fields per record**, including the canonical market symbol, base and quote assets, last trade price, top-of-book bid/ask with sizes, open/high/low, base and quote volume, computed price change (absolute and percent), and exchange status. Bitvavo is one of the largest regulated European cryptocurrency exchanges, MiCA-aligned and based in the Netherlands, with deep EUR liquidity on majors and a curated list of altcoins.

The feed covers every active spot market across **EUR, USDC, and USDT** quote pairs, with built-in filtering, sorting by 24h quote volume or percent change, and configurable result caps. The Actor hits two upstream endpoints (`/v2/markets` for status metadata and `/v2/ticker/24h` for live numbers) and merges them into a single clean record per market.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Quant teams, EU market-data engineers, treasury and finance desks, crypto researchers, retail traders, fintech and TradFi product builders | EUR price discovery, cross-exchange arbitrage, MiCA-compliant data ingestion, dashboard feeds, alerting, volume monitoring, market-cap snapshots |

---

### 📋 What the Bitvavo Scraper does

Four built-in workflows in a single run:

- 🌍 **Full market export.** All active Bitvavo spot tickers in one pull.
- 💶 **Quote-currency filter.** Restrict to `EUR`, `USDC`, or `USDT` pairs.
- 📊 **Server-side sort.** Order by 24h quote volume, percent change, last price, or symbol.
- 🔢 **maxItems cap.** Return the top N markets without post-processing.

Each record merges live ticker numbers with market metadata, so you get not just the last price but also the trading status, the base and quote asset codes, and a direct link to the Bitvavo public price page.

> 💡 **Why it matters:** Bitvavo is the dominant EUR on-ramp for retail and institutional crypto users in the Eurozone. Clean tickers feed every dashboard, arbitrage bot, accounting export, and tax workflow that touches euro-denominated digital assets, and an EU-regulated venue carries weight under MiCA-aligned reporting expectations.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough from signup to a downloaded EUR ticker dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
<tr><td><code>quoteCurrency</code></td><td>string</td><td><code>""</code></td><td>One of <code>EUR</code>, <code>USDC</code>, <code>USDT</code>, or empty for all pairs.</td></tr>
<tr><td><code>sortBy</code></td><td>string</td><td><code>"volume"</code></td><td>One of <code>volume</code>, <code>changePercent</code>, <code>price</code>, <code>market</code>.</td></tr>
</tbody>
</table>

**Example: top 50 EUR markets by 24h quote volume.**

```json
{
    "maxItems": 50,
    "quoteCurrency": "EUR",
    "sortBy": "volume"
}
````

**Example: biggest 24h movers across all quote currencies.**

```json
{
    "maxItems": 25,
    "quoteCurrency": "",
    "sortBy": "changePercent"
}
```

> ⚠️ **Good to Know:** Bitvavo publishes ticker prices that update every few seconds. The `timestamp` field captures the exchange-side tick time, while `scrapedAt` is the Actor run time. For order-book depth beyond top-of-book bid/ask sizes, use the Bitvavo WebSocket feed directly.

***

### 📊 Output

Each ticker record contains **19 fields**. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🏷️ `market` | string | `"BTC-EUR"` |
| 🔗 `url` | string | `"https://bitvavo.com/en/btc-eur-prijs"` |
| 🪙 `base` | string | `"BTC"` |
| 💶 `quote` | string | `"EUR"` |
| 🟢 `status` | string | `"trading"` |
| 💰 `last` | number | `67693` |
| 📥 `bid` | number | `67689` |
| 📤 `ask` | number | `67690` |
| 📦 `bidSize` | number | `0.09677949` |
| 📦 `askSize` | number | `0.18407025` |
| 🔓 `open` | number | `68701` |
| 🔼 `high` | number | `69478` |
| 🔽 `low` | number | `67194` |
| 📊 `volume` | number | `396.88742597` |
| 📊 `volumeQuote` | number | `27070708.68144092` |
| 📈 `priceChange` | number | `-1008` |
| 📈 `priceChangePercentage` | number | `-1.467228` |
| 🕒 `timestamp` | ISO 8601 | `"2026-05-13T22:24:57.050Z"` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-05-13T22:25:01.276Z"` |

#### 📦 Sample records

<details>
<summary><strong>🟠 Bitcoin in euros: BTC-EUR</strong></summary>

```json
{
    "market": "BTC-EUR",
    "url": "https://bitvavo.com/en/btc-eur-prijs",
    "base": "BTC",
    "quote": "EUR",
    "status": "trading",
    "last": 67693,
    "bid": 67689,
    "ask": 67690,
    "bidSize": 0.09677949,
    "askSize": 0.18407025,
    "open": 68701,
    "high": 69478,
    "low": 67194,
    "volume": 396.88742597,
    "volumeQuote": 27070708.68144092,
    "priceChange": -1008,
    "priceChangePercentage": -1.467228,
    "timestamp": "2026-05-13T22:24:57.050Z",
    "scrapedAt": "2026-05-13T22:25:01.276Z"
}
```

</details>

<details>
<summary><strong>🟣 Solana in euros: SOL-EUR</strong></summary>

```json
{
    "market": "SOL-EUR",
    "url": "https://bitvavo.com/en/sol-eur-prijs",
    "base": "SOL",
    "quote": "EUR",
    "status": "trading",
    "last": 77.622,
    "bid": 77.649,
    "ask": 77.65,
    "bidSize": 4.51938687,
    "askSize": 20.6653826,
    "open": 80.758,
    "high": 81.948,
    "low": 77.056,
    "volume": 149966.15436308,
    "volumeQuote": 11827442.184608247,
    "priceChange": -3.136,
    "priceChangePercentage": -3.883207,
    "timestamp": "2026-05-13T22:24:59.078Z",
    "scrapedAt": "2026-05-13T22:25:01.276Z"
}
```

</details>

<details>
<summary><strong>🔵 Ripple in euros: XRP-EUR</strong></summary>

```json
{
    "market": "XRP-EUR",
    "url": "https://bitvavo.com/en/xrp-eur-prijs",
    "base": "XRP",
    "quote": "EUR",
    "status": "trading",
    "last": 1.21221,
    "bid": 1.2122,
    "ask": 1.21221,
    "bidSize": 1052.453336,
    "askSize": 246.656932,
    "open": 1.22843,
    "high": 1.2553,
    "low": 1.2051,
    "volume": 7852940.516788,
    "volumeQuote": 9640311.333335064,
    "priceChange": -0.01622,
    "priceChangePercentage": -1.320385,
    "timestamp": "2026-05-13T22:25:00.526Z",
    "scrapedAt": "2026-05-13T22:25:01.276Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🇪🇺 | **EU regulated venue.** Bitvavo is one of the largest MiCA-aligned crypto exchanges, headquartered in the Netherlands. |
| 💶 | **Deep EUR coverage.** Native euro pairs across majors and long-tail altcoins, plus USDC and USDT quote markets. |
| 🔖 | **Two API calls merged.** Status metadata and ticker numbers combined into one clean record per market. |
| 📊 | **Server-side sorting and filtering.** Quote-currency filter and four sort modes, no post-processing required. |
| ⚡ | **Fast.** 200+ markets in under 5 seconds. |
| 🚫 | **No authentication.** Pulls only from public endpoints. No API key, no IP allowlist. |
| 🔁 | **Always fresh.** Every run pulls the latest 24h window directly from Bitvavo. |

> 📊 EUR ticker data is the foundation of every euro-denominated trading dashboard, accounting export, and arbitrage engine targeting EU customers.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Bitvavo Tickers Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **All active Bitvavo markets** | **Live per run** | quote currency, sort, max items | ⚡ 2 min |
| Aggregator APIs (CoinGecko, CMC) | Free tier + paid plans | Many exchanges, less granular | Minutes | API-specific | ⏳ Hours |
| Direct Bitvavo SDKs | Free | Same upstream, but you maintain code | On-demand | Build your own | 🛠️ Days |
| Manual page scraping | Free | Fragile, captcha-prone | Variable | None | 🐢 Brittle |

Pick this Actor when you want a ready-to-use feed of Bitvavo tickers with zero maintenance.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the Bitvavo Crypto Tickers Scraper page on the Apify Store.
3. 🎯 **Set input.** Pick a quote currency (or leave empty for all), choose a sort, and set `maxItems`.
4. 🚀 **Run it.** Click **Start** and let the Actor pull live tickers from Bitvavo.
5. 📥 **Download.** Grab your results from the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to a downloaded ticker dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 💶 EU Treasury & Finance

- Daily EUR price snapshots for accounting and reporting
- Mark-to-market valuations for euro-denominated balance sheets
- MiCA-aligned data trails for compliance teams
- FX-aware crypto-to-fiat conversions for invoicing

</td>
<td width="50%" valign="top">

#### 🤖 Trading & Arbitrage

- Cross-exchange spread monitoring against Coinbase, Kraken, Bitstamp
- Top-of-book bid/ask feeds for signal generation
- 24h volume scans for liquidity filters
- Funding strategies anchored to EUR rather than USD

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 📊 Market Data & Research

- Eurozone crypto-adoption research datasets
- Volume share comparisons against global majors
- Long-tail altcoin coverage filtered by status
- Time-series snapshots stored on a schedule

</td>
<td width="50%" valign="top">

#### 💼 Fintech & Product

- In-app price tickers for EU-facing wallets and apps
- Watchlist seeds with canonical symbol naming
- Embedded widgets for media and content sites
- Onboarding flows that need real EUR market data

</td>
</tr>
</table>

***

### 🔌 Automating Bitvavo Tickers Scraper

Control the scraper programmatically for scheduled runs and pipeline integrations:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval. Minute-level scrapes feed real-time dashboards, while hourly or daily pulls keep BI warehouses in sync.

***

### 🌟 Beyond business use cases

The same structured ticker data fuels research, education, civic transparency, and personal projects.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Crypto market microstructure studies on EUR pairs
- MiCA policy research with real exchange data
- Coursework on order-book metrics and volume analysis
- Reproducible academic papers with versioned dataset pulls

</td>
<td width="50%">

#### 🎨 Personal and creative

- Personal portfolio trackers in EUR
- Side projects and indie crypto apps
- Visualizations and content pieces about euro liquidity
- Hobbyist trading bots that need a clean live feed

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Transparency dashboards for crypto-savvy NGOs in Europe
- Journalism on EU exchange flows and adoption
- Donor analytics for organizations accepting crypto
- Open-data feeds for civic-tech communities

</td>
<td width="50%">

#### 🧪 Experimentation

- Train forecasting models on euro-denominated time series
- Prototype arbitrage agents with safe paper-trading data
- Test alerting pipelines on real bid/ask spreads
- Validate fintech product hypotheses with live numbers

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20Bitvavo%20Tickers%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20Bitvavo%20Tickers%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20Bitvavo%20Tickers%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20Bitvavo%20Tickers%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

The Actor hits two public Bitvavo endpoints: `/v2/markets` for status metadata and `/v2/ticker/24h` for live numbers. It merges them by symbol, applies your quote-currency and sort filters server-side, caps to `maxItems`, and writes one clean record per market to the dataset.

#### 🔁 How often is the data refreshed?

Every run pulls the latest 24h ticker window directly from Bitvavo. Tickers themselves update on the exchange every few seconds, so a freshly triggered run is as live as the Bitvavo API itself.

#### 💶 Why focus on EUR?

Bitvavo is one of the largest crypto exchanges in the Eurozone and is a primary EUR on-ramp for retail and institutional users. Pulling Bitvavo directly is the cleanest way to source EUR liquidity rather than going through cross-rate inference.

#### 🔐 Do I need an API key?

No. The endpoints used here are entirely public. No login, no API key, no IP allowlist.

#### 📊 Which quote currencies are covered?

Bitvavo lists markets quoted in EUR, USDC, and USDT. You can filter to any single quote currency or leave the field empty to pull all.

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to trigger this Actor on any cron cadence. Minute-level scrapes feed real-time dashboards, hourly or daily pulls keep warehouses in sync.

#### ⚖️ Is this data legal to use?

Bitvavo publishes ticker data through public endpoints. Review the venue terms of service for your specific commercial use, but raw market-data feeds are generally accepted for analytical and trading workflows.

#### 💼 Can I use this data commercially?

Yes. Public exchange ticker data is broadly usable for commercial analytics. Confirm your downstream license obligations for any redistribution to third parties.

#### 💳 Do I need a paid Apify plan to use this Actor?

No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts that limit and unlocks scheduling, higher concurrency, and larger datasets.

#### 🔁 What happens if a run fails or gets interrupted?

Apify automatically retries transient errors. The Actor also retries 429 and 503 responses internally with exponential backoff. Partial datasets from failed runs are preserved, so you never lose progress.

#### 🛬 What if I need order-book depth?

This Actor returns top-of-book bid and ask plus their sizes. For full depth, hit the Bitvavo WebSocket order-book channel directly or reach out via the contact form for a companion order-book scraper.

#### 🆘 What if I need help?

Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.

***

### 🔌 Integrate with any app

Bitvavo Tickers Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe ticker data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh tickers into your product backend, or alert your team in Slack on big moves.

***

### 🔗 Recommended Actors

- [**🤖 Hugging Face Model Scraper**](https://apify.com/parseforge/hugging-face-model-scraper) - Open-source AI model directory and metadata
- [**📈 Indexmundi Scraper**](https://apify.com/parseforge/indexmundi-scraper) - Global demographic and economic indicators
- [**🏢 AWS Marketplace Scraper**](https://apify.com/parseforge/aws-marketplace-scraper) - Cloud software listings and pricing
- [**🔌 Stripe App Marketplace Scraper**](https://apify.com/parseforge/stripe-marketplace-scraper) - Fintech app directory metadata
- [**✈️ OurAirports Scraper**](https://apify.com/parseforge/ourairports-scraper) - Global airport reference dataset

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Bitvavo B.V. or any of its partners. All trademarks mentioned are the property of their respective owners. Only publicly available ticker data is collected.

# Actor input Schema

## `quoteCurrency` (type: `string`):

Filter pairs by quote currency. Leave empty for all pairs.

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

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

## `sortBy` (type: `string`):

Sort results by this field

## Actor input object example

```json
{
  "quoteCurrency": "",
  "maxItems": 10,
  "sortBy": "volume"
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of scraped data

## `fullData` (type: `string`):

Complete dataset

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

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

# Run the Actor and wait for it to finish
run = client.actor("parseforge/bitvavo-tickers-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "quoteCurrency": "",
  "maxItems": 10,
  "sortBy": "volume"
}' |
apify call parseforge/bitvavo-tickers-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/bitvavo-tickers-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bitvavo Crypto Tickers Scraper",
        "description": "Scrape live spot tickers from Bitvavo public API including price, bid/ask, 24h high/low, volume, and price change for all EUR/USDC/USDT pairs. No API key required.",
        "version": "0.0",
        "x-build-id": "lHIbXTofvZsGbxdyh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~bitvavo-tickers-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-bitvavo-tickers-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~bitvavo-tickers-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-bitvavo-tickers-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~bitvavo-tickers-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-bitvavo-tickers-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "quoteCurrency": {
                        "title": "Quote Currency Filter",
                        "enum": [
                            "",
                            "EUR",
                            "USDC",
                            "USDT"
                        ],
                        "type": "string",
                        "description": "Filter pairs by quote currency. Leave empty for all pairs.",
                        "default": ""
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "volume",
                            "changePercent",
                            "price",
                            "market"
                        ],
                        "type": "string",
                        "description": "Sort results by this field",
                        "default": "volume"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
