Developers

API Documentation

Access real-time arbitrage opportunities, live cryptocurrency prices, and exchange data through our public REST API.

Quick Start

1

Base URL

https://pokobit.com/api/v1
2

No Auth Required

All endpoints are public. Just make a GET request — no API key or token needed.

3

Rate Limit

60 requests per minute per IP. Responses are JSON with consistent formatting.

Try It — Get All Prices

curl https://pokobit.com/api/v1/prices
{
  "success": true,
  "data": [
    {
      "id": 1,
      "symbol": "BTC",
      "name": "Bitcoin",
      "price_usd": 116791.81,
      "change_24h": 3.45,
      "logo_url": "https://cdn.jsdelivr.net/.../btc.png",
      "is_active": true
    },
    ...
  ]
}

Prices

Live cryptocurrency prices sourced from CoinGecko and Binance.

GET /api/v1/prices

Returns all active cryptocurrencies with current USD prices and 24h changes.

Response

{
  "success": true,
  "data": [
    {
      "id": 1,
      "symbol": "BTC",
      "name": "Bitcoin",
      "price_usd": 116791.81032375,
      "change_24h": 3.45,
      "logo_url": "https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@master/128/color/btc.png",
      "is_active": true
    }
  ]
}
GET /api/v1/prices/{symbol}

Returns a single cryptocurrency price by symbol.

Parameter Type Description
symbol string Cryptocurrency symbol (e.g. BTC, ETH)
# Example
GET /api/v1/prices/BTC

# Response
{
  "success": true,
  "data": {
    "id": 1,
    "symbol": "BTC",
    "name": "Bitcoin",
    "price_usd": 116791.81032375,
    "change_24h": 3.45,
    "logo_url": "...",
    "is_active": true
  }
}

# Not Found
{
  "success": false,
  "message": "Cryptocurrency 'XYZ' not found."
}

Arbitrage Opportunities

Access both database-stored and dynamically generated arbitrage opportunities across three types: Cross-Exchange, Triangular, and Multi-Hop.

GET /api/v1/opportunities

Returns database-managed arbitrage opportunities. Supports filtering, sorting, and pagination.

Query Parameters

Parameter Type Default Description
type string all cross, triangular, or multi-hop
min_profit number Minimum profit percentage
max_profit number Maximum profit percentage
exchange string Filter by exchange name (e.g. Binance)
sort string detected_at profit, volume, detected_at
direction string desc asc or desc
per_page integer 20 Items per page (max 100)
page integer 1 Page number
# Example: Top 3 cross-exchange opportunities sorted by profit
GET /api/v1/opportunities?type=cross&sort=profit&direction=desc&per_page=3

# Response
{
  "success": true,
  "data": [
    {
      "id": "cross_3",
      "type": "Cross Exchange",
      "type_key": "cross",
      "pair": "SOL/USDT",
      "route": "SOL → USDT",
      "tokens": ["SOL", "USDT"],
      "exchange_from": "OKX",
      "exchange_to": "Coinbase",
      "exchange": "OKX → Coinbase",
      "buy_price": 178.4,
      "sell_price": 180.2,
      "spread": 1.01,
      "profit_percent": 1.01,
      "estimated_profit_usd": 90,
      "volume": 2503114,
      "status": "active",
      "detected_at": "2025-10-15T23:58:22.000000Z",
      "created_at": "2025-10-16T00:49:22.000000Z"
    }
  ],
  "meta": {
    "total": 14,
    "per_page": 3,
    "current_page": 1,
    "last_page": 5
  }
}
GET /api/v1/opportunities/live

Generates fresh, randomized arbitrage opportunities on demand. Each call returns a different set.

Parameter Type Default Description
count integer 24 Number of opportunities (max 50)
type string all cross, triangular, or multi-hop
# Example
GET /api/v1/opportunities/live?count=5

# Response
{
  "success": true,
  "data": [
    {
      "id": "gen_68a5ad93e1cd062.88408176_0",
      "type": "Cross Exchange",
      "type_key": "cross",
      "route": "BTC → ETH",
      "tokens": ["BTC", "ETH"],
      "exchange": "Binance → OKX",
      "profit_percent": 2.45,
      "estimated_profit_usd": 89.3,
      "liquidity": 1936042,
      "funding_currency": "USDT"
    }
  ],
  "meta": {
    "count": 5,
    "source": "generator"
  }
}
GET /api/v1/opportunities/{id}

Returns a single opportunity by ID. Use prefixed IDs: cross_3, tri_31, multi_5.

# Example
GET /api/v1/opportunities/cross_3

# Response
{
  "success": true,
  "data": {
    "id": "cross_3",
    "type": "Cross Exchange",
    "type_key": "cross",
    "pair": "SOL/USDT",
    "route": "SOL → USDT",
    "tokens": ["SOL", "USDT"],
    "exchange_from": "OKX",
    "exchange_to": "Coinbase",
    "exchange": "OKX → Coinbase",
    "buy_price": 178.4,
    "sell_price": 180.2,
    "spread": 1.01,
    "profit_percent": 1.01,
    "estimated_profit_usd": 90,
    "volume": 2503114,
    "status": "active",
    "detected_at": "2025-10-15T23:58:22.000000Z",
    "created_at": "2025-10-16T00:49:22.000000Z"
  }
}

Exchanges

List of supported exchanges and their trading pair counts.

GET /api/v1/exchanges
# Response
{
  "success": true,
  "data": [
    {
      "id": 1,
      "name": "binance",
      "display_name": "Binance",
      "is_active": true,
      "is_default": true,
      "trading_pairs_count": 4
    }
  ]
}

Statistics

Summary statistics across all arbitrage opportunity types.

GET /api/v1/stats
# Response
{
  "success": true,
  "data": {
    "total_opportunities": 39,
    "by_type": {
      "cross_exchange": 14,
      "triangular": 15,
      "multi_hop": 10
    },
    "best_profit_percent": 14.88,
    "average_profit_percent": 2.99,
    "total_volume_usd": 91911917,
    "tracked_cryptocurrencies": 20
  }
}

Rate Limiting

Limits

  • 60 requests per minute per IP address
  • Exceeding the limit returns 429 Too Many Requests

Response Headers

  • X-RateLimit-Limit — Max requests per window
  • X-RateLimit-Remaining — Requests remaining
  • Retry-After — Seconds to wait (on 429)

CORS

The API supports Cross-Origin Resource Sharing (CORS). You can call it from any origin — browsers, mobile apps, or server-side code.

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
Access-Control-Allow-Headers: Content-Type, Accept