# Bitget Crypto Ticker Scraper - Prices, Volume & 24h Change (`ninhothedev/bitget-scraper`) Actor

$0.5/1K 🔥 Bitget crypto scraper! Price, bid/ask, 24h volume & change for 1100+ spot pairs. No key. JSON, CSV, Excel or API in seconds. Power trading bots, dashboards & price alerts ⚡

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

## Pricing

from $0.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.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## Bitget Crypto Ticker Scraper - Live Prices, Volume & 24h Change (No API Key)

Scrape **live spot market data from Bitget** for every trading pair on the exchange - last price, bid/ask spread, 24h high/low/open, base and quote volume, and 24h percent change - in one run. No API key, no signature, no account, no proxy required.

The Actor hits Bitget's official public market endpoint, normalizes every value into clean typed JSON, and pushes one dataset row per trading pair. Export to **JSON, CSV, Excel, XML or HTML**, or pull it straight into your trading bot through the Apify API.

> Over **1,180 spot pairs** returned in a single run, including ~1,115 USDT-quoted markets. One run takes a couple of seconds.

***

### What this Actor does

| Feature | Detail |
| --- | --- |
| **Data source** | Bitget public spot market API (`/api/v2/spot/market/tickers`) |
| **Authentication** | None - no API key, no secret, no passphrase |
| **Coverage** | Every spot trading pair listed on Bitget (USDT, USDC, BTC, ETH, BRL, EUR quotes...) |
| **Filtering** | Case-insensitive symbol substring (`USDT`, `BTC`, `ETHUSDT`) |
| **Speed** | Single request, full market snapshot in seconds |
| **Proxy** | Not required |
| **Output** | Flat, typed, ready for pandas / Sheets / Postgres |

***

### Pricing

This Actor is priced **pay-per-result at roughly $0.50 per 1,000 items**, on top of the negligible platform compute (it needs only 512 MB and finishes in seconds).

A full market snapshot of ~1,180 pairs costs well under a dollar. A focused run - say the top 200 USDT pairs polled every 15 minutes - costs cents per day. There is no exchange API fee because Bitget's ticker endpoint is public.

***

### Input

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `mode` | select | `tickers` | Scrape mode. `tickers` returns the 24h snapshot for all spot pairs. |
| `symbolFilter` | string | *(empty)* | Optional case-insensitive substring matched against the symbol. `USDT` returns all USDT markets, `BTC` returns every pair containing BTC, `ETHUSDT` returns one market. |
| `maxItems` | integer | `500` | Cap on returned rows (max `5000`). Results are sorted by 24h quote volume first, so a small cap still returns the most liquid markets. |

#### Example input - all USDT pairs

```json
{
  "mode": "tickers",
  "symbolFilter": "USDT",
  "maxItems": 500
}
```

#### Example input - full market snapshot

```json
{
  "mode": "tickers",
  "maxItems": 5000
}
```

#### Example input - a single pair

```json
{
  "mode": "tickers",
  "symbolFilter": "BTCUSDT",
  "maxItems": 1
}
```

***

### Output

One dataset item per trading pair:

```json
{
  "symbol": "BTCUSDT",
  "last_price": 91250.31,
  "bid": 91250.12,
  "ask": 91250.45,
  "high_24h": 92880.0,
  "low_24h": 90105.6,
  "open_24h": 92511.4,
  "base_volume_24h": 4821.55182,
  "quote_volume_24h": 441203877.9,
  "change_pct_24h": -1.36,
  "ts": "2026-07-28T01:50:27.680000+00:00",
  "source": "bitget",
  "scraped_at": "2026-07-28T01:50:29.093450+00:00"
}
```

#### Field reference

| Field | Type | Meaning |
| --- | --- | --- |
| `symbol` | string | Bitget pair symbol, e.g. `BTCUSDT` |
| `last_price` | float | Most recent trade price |
| `bid` | float | Best bid price |
| `ask` | float | Best ask price |
| `high_24h` | float | Highest price in the rolling 24h window |
| `low_24h` | float | Lowest price in the rolling 24h window |
| `open_24h` | float | Price 24 hours ago |
| `base_volume_24h` | float | 24h volume in the base asset |
| `quote_volume_24h` | float | 24h volume in the quote asset |
| `change_pct_24h` | float | 24h change **as a percent**, rounded to 2 decimals (`-1.36` = -1.36%) |
| `ts` | string | Exchange timestamp, ISO-8601 UTC |
| `source` | string | Always `bitget` |
| `scraped_at` | string | Scrape time, ISO-8601 UTC |

Every field is nullable and every numeric is a real float - Bitget ships numbers as strings and the 24h change as a fraction (`-0.0136`); this Actor coerces both so you never have to.

***

### Use cases

#### Crypto trading

Build screeners that rank pairs by 24h change or quote volume, spot breakouts against the 24h high, and measure bid/ask spreads before routing an order. The full-market snapshot means you find movers you were not already watching.

#### Price monitoring

Schedule the Actor every 5, 15 or 60 minutes and stream results into a time-series store to build your own OHLC history, alert on threshold crossings, or watch a stablecoin's peg.

#### Trading bots

Feed a clean, typed ticker feed into a signal generator or rebalancer without writing exchange plumbing, handling TLS fingerprinting, or maintaining API keys. The Apify API returns the dataset as JSON in one call.

#### Portfolio tracking

Value multi-asset holdings in USD or BTC terms with a single run, compute daily P\&L from `open_24h` versus `last_price`, and check cross-exchange divergence by combining with the related scrapers below.

***

### How to use it

1. Open the Actor on Apify and click **Try for free**.
2. Optionally set `symbolFilter` (e.g. `USDT`) and `maxItems`.
3. Click **Start**. Results appear in the dataset within seconds.
4. Export as CSV/JSON/Excel, or grab them programmatically:

```bash
curl "https://api.apify.com/v2/acts/ninhothedev~bitget-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"symbolFilter":"USDT","maxItems":200}'
```

Use **Schedules** to run it on a cron and **Integrations** to push results into Google Sheets, Slack, Zapier, Make or a webhook.

***

### FAQ

**Do I need a Bitget API key?**
No. The ticker endpoint is public and unauthenticated.

**Do I need proxies?**
No. The Actor uses browser-grade TLS impersonation and works fine on Apify's default network.

**How fresh is the data?**
Each row carries the exchange's own `ts` timestamp, typically less than a second old at scrape time.

**Are futures/perpetual markets included?**
No - this Actor covers Bitget **spot** markets.

**Why is `change_pct_24h` different from what I saw on the website?**
Bitget's site sometimes shows UTC-day change. This Actor reports the rolling 24-hour change (`change24h`), converted from a fraction to a percent.

**What if a pair has no bid or ask?**
Illiquid markets can return empty values. Those fields become `null` rather than failing the run.

***

### Related Actors

Track the same asset across exchanges with the rest of the suite:

- [OKX Crypto Ticker Scraper](https://apify.com/ninhothedev/okx-scraper)
- [Gate.io Crypto Ticker Scraper](https://apify.com/ninhothedev/gateio-scraper)
- [HTX Crypto Ticker Scraper](https://apify.com/ninhothedev/htx-scraper)
- [MEXC Crypto Ticker Scraper](https://apify.com/ninhothedev/mexc-scraper)

***

### Legal & fair use

This Actor reads only public, unauthenticated market data published by Bitget for programmatic consumption, and contains no personal data. Respect Bitget's terms of service and keep your scheduling reasonable. Nothing here is financial advice - always validate data before trading on it.

# Actor input Schema

## `mode` (type: `string`):

What to scrape from Bitget. Currently a single mode is supported: 'tickers' fetches the 24h ticker snapshot for every spot trading pair listed on Bitget (price, bid/ask, high/low, volume and percent change).

## `symbolFilter` (type: `string`):

Optional case-insensitive substring matched against the pair symbol. Use 'USDT' for all USDT-quoted markets, 'BTC' for every pair containing BTC, or 'ETHUSDT' for one exact market. Leave empty to return every spot pair.

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

Hard cap on the number of ticker rows pushed to the dataset. Results are sorted by 24h quote volume (most liquid markets first), so a low limit still returns the most relevant pairs. Maximum 5000.

## Actor input object example

```json
{
  "mode": "tickers",
  "symbolFilter": "USDT",
  "maxItems": 500
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("ninhothedev/bitget-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 = {}

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bitget Crypto Ticker Scraper - Prices, Volume & 24h Change",
        "description": "$0.5/1K 🔥 Bitget crypto scraper! Price, bid/ask, 24h volume & change for 1100+ spot pairs. No key. JSON, CSV, Excel or API in seconds. Power trading bots, dashboards & price alerts ⚡",
        "version": "1.0",
        "x-build-id": "N3wjwAOfQXzbaap0f"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ninhothedev~bitget-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ninhothedev-bitget-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/ninhothedev~bitget-scraper/runs": {
            "post": {
                "operationId": "runs-sync-ninhothedev-bitget-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/ninhothedev~bitget-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-ninhothedev-bitget-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": {
                    "mode": {
                        "title": "Scrape mode",
                        "enum": [
                            "tickers"
                        ],
                        "type": "string",
                        "description": "What to scrape from Bitget. Currently a single mode is supported: 'tickers' fetches the 24h ticker snapshot for every spot trading pair listed on Bitget (price, bid/ask, high/low, volume and percent change).",
                        "default": "tickers"
                    },
                    "symbolFilter": {
                        "title": "Symbol filter (substring)",
                        "type": "string",
                        "description": "Optional case-insensitive substring matched against the pair symbol. Use 'USDT' for all USDT-quoted markets, 'BTC' for every pair containing BTC, or 'ETHUSDT' for one exact market. Leave empty to return every spot pair."
                    },
                    "maxItems": {
                        "title": "Maximum items",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on the number of ticker rows pushed to the dataset. Results are sorted by 24h quote volume (most liquid markets first), so a low limit still returns the most relevant pairs. Maximum 5000.",
                        "default": 500
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
