# Crypto Arbitrage Scanner (`dataraptor/crypto-arbitrage-scanner`) Actor

Crypto Arbitrage Scanner and compares real-time crypto prices across major exchanges. Instantly detect the best arbitrage opportunities, filter by coin, exchange, or spread. Boost profits with automated, accurate crypto arbitrage monitoring—fast, easy, and reliable!

- **URL**: https://apify.com/dataraptor/crypto-arbitrage-scanner.md
- **Developed by:** [DataRaptor](https://apify.com/dataraptor) (community)
- **Categories:** Automation, News, Jobs
- **Stats:** 545 total users, 4 monthly users, 100.0% runs succeeded, 5 bookmarks
- **User rating**: 3.26 out of 5 stars

## Pricing

$10.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## 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

## Crypto Arbitrage Scanner · Real-Time Arbitrage Detector

Scanner and detect real-time crypto arbitrage opportunities across 11 major exchanges like Binance, Bybit, Kucoin, Indodax, and more. Get instant, actionable trading signals with advanced cross-exchange price scanning, custom filters for coins and spreads, and export-ready arbitrage data for bots and traders. Supercharge your trading performance and automate your crypto strategies with reliable, real-time arbitrage insights.

---

### ⭐️ Supported Exchanges

- **Indodax**
- **Binance**
- **OKX**
- **Bybit**
- **Gate.io**
- **Kucoin**
- **Huobi**
- **Coinex**
- **MEXC**
- **Bitget**
- **Bitmart**

---

### ✨ Features (Apify Actor)

- **Real-time arbitrage detection:**  
  Every time scanning 11 exchanges.
- **Custom filter:**  
  Filter by exchange, coin pair, spread minimum/maximum, and result limit.
- **Flexible coin pair input:**  
  Support for any coin pair in `BASE/QUOTE` format (e.g. `BTC/USDT`).
- **Exportable results:**  
  Download arbitrage opportunities as CSV or JSON from the Apify dataset.
- **Confidence score (Now Available):**  
  Each result includes a confidence value, indicating the predicted reliability of the arbitrage opportunity.
- **Optimized for Apify usage:**  
  Easy integration with your own bots, scripts, or workflows using Apify dataset output.
- **Dashboard monitoring (Now Available):**  
   Access the full web dashboard with real-time alerting at [Arbitradar.io](https://www.arbitradar.io/crypto-arbitrage-scanner)
- **Spread Live Spot and Futures Perpetual**
   Access the full feature in dashboard at [Arbitradar.io](https://www.arbitradar.io/crypto-arbitrage-scanner)
- **Demo Video Features**:  
  Long video on youtube for the guide to use this data [Demo Video Arbitradar.io](https://www.youtube.com/watch?v=Mcl2oHOmt0Q)
  
---

### 🧑‍💻 How To Use

1. **Set your parameters:**
   - **exchange:** List of exchanges to monitor (optional, default all)  
     _Available exchanges:_ `indodax`, `binance`, `okx`, `bybit`, `gateio`, `kucoin`, `huobi`, `coinex`, `mexc`, `bitget`, `bitmart`
   - **coin:** **Coin pairs in `BASE/QUOTE` format — e.g., `BTC/USDT`, `ETH/USDT` (uppercase, with slash)**  
      _Examples: `BTC/USDT`, `SOL/USDT`, not `BTCUSDT` or `btc_usdt`_
   - **spread_min:** Minimum spread % (default: 0.3)
   - **spread_max:** Maximum spread % (default: 300)
   - **limit:** Max number of arbitrage results (default: 100)
   - **confidence_min:** Minimum confidence prediction value (default: 50)
2. **Run the actor.**
3. **Download/export results from the dataset (CSV/JSON).**

---

### 📦 Example Output

```json
[
  {
    "pair": "ELIZA/USDT",
    "buy_from": "gateio",
    "buy_price": 0.0005062,
    "sell_to": "huobi",
    "sell_price": 0.00195,
    "spread_price": 0.001444,
    "spread_percentage": 285.223,
    "confidence": 98.00,
    "timestamp": 1752738158
  },
  {
    "pair": "QI/USDT",
    "buy_from": "gateio",
    "buy_price": 0.001923,
    "sell_to": "binance",
    "sell_price": 0.00726,
    "spread_price": 0.005337,
    "spread_percentage": 277.535,
    "confidence": 98.00,
    "timestamp": 1752738158
  },
]

# Actor input Schema

## `exchange` (type: `array`):

List of exchanges to monitor (e.g., binance, houbi, bybit). Leave empty to include all.
## `coin` (type: `array`):

List of coin pairs to monitor (e.g., BTCUSDT, ETHUSDT). Leave empty to include all.
## `limit` (type: `integer`):

Maximum number of arbitrage opportunities to return.
## `spread_min` (type: `string`):

Minimum spread percentage (e.g., 0.3, 1, 5).
## `spread_max` (type: `string`):

Maximum spread percentage (e.g., 100, 300).
## `confidence_min` (type: `string`):

Minimum confidence percentage (e.g., 50, 80)

## Actor input object example

```json
{
  "exchange": [],
  "coin": [],
  "limit": 100,
  "spread_min": "0.3",
  "spread_max": "300",
  "confidence_min": "50"
}
````

# 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("dataraptor/crypto-arbitrage-scanner").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("dataraptor/crypto-arbitrage-scanner").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 dataraptor/crypto-arbitrage-scanner --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Crypto Arbitrage Scanner",
        "description": "Crypto Arbitrage Scanner and compares real-time crypto prices across major exchanges. Instantly detect the best arbitrage opportunities, filter by coin, exchange, or spread. Boost profits with automated, accurate crypto arbitrage monitoring—fast, easy, and reliable!",
        "version": "0.0",
        "x-build-id": "fHGsFhsaKNP8GBL5d"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dataraptor~crypto-arbitrage-scanner/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dataraptor-crypto-arbitrage-scanner",
                "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/dataraptor~crypto-arbitrage-scanner/runs": {
            "post": {
                "operationId": "runs-sync-dataraptor-crypto-arbitrage-scanner",
                "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/dataraptor~crypto-arbitrage-scanner/run-sync": {
            "post": {
                "operationId": "run-sync-dataraptor-crypto-arbitrage-scanner",
                "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": {
                    "exchange": {
                        "title": "Exchanges",
                        "type": "array",
                        "description": "List of exchanges to monitor (e.g., binance, houbi, bybit). Leave empty to include all.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "coin": {
                        "title": "Coins/Pairs",
                        "type": "array",
                        "description": "List of coin pairs to monitor (e.g., BTCUSDT, ETHUSDT). Leave empty to include all.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "limit": {
                        "title": "Result Limit",
                        "minimum": 1,
                        "maximum": 400,
                        "type": "integer",
                        "description": "Maximum number of arbitrage opportunities to return.",
                        "default": 100
                    },
                    "spread_min": {
                        "title": "Minimum Spread (%)",
                        "type": "string",
                        "description": "Minimum spread percentage (e.g., 0.3, 1, 5).",
                        "default": "0.3"
                    },
                    "spread_max": {
                        "title": "Maximum Spread (%)",
                        "type": "string",
                        "description": "Maximum spread percentage (e.g., 100, 300).",
                        "default": "300"
                    },
                    "confidence_min": {
                        "title": "Minimum Confidence (%)",
                        "type": "string",
                        "description": "Minimum confidence percentage (e.g., 50, 80)",
                        "default": "50"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
