Developer API & Data Hub

Real-Time P2P Data API
for Developers & Traders

Access live order books across 8 exchanges and 80+ fiat currencies. Deploy automated Telegram price bots, website widgets, and custom terminals with edge-cached JSON feeds.

8

Exchanges

80+

Fiat Currencies

<85ms

Edge Latency

99.9%

Uptime

Simple Standard API Plans

Honest, predictable pricing. Quotas reset daily at 00:00 UTC. Upgrades extend existing keys instantly.

Free Trial

Developer Trial

For bot testing & evaluation

$0 / 5 days

Zero commitment. Instant evaluation.

  • 50 requests / day for 5 days
  • All 8 supported exchanges
  • 80+ fiat currencies (USD default)
  • Python & Node.js ready
  • Attribution required in bot/site
Request Free Trial Key
Most Popular
Builder

Builder Plan

For Telegram channels & embed widgets

$9.90 / 1 month

~75,000 requests / month

  • 2,500 requests / day
  • Telegram & WhatsApp auto-posters
  • Hosted website widget embeds
  • All 8 exchanges & 80+ fiats
  • Email & Telegram support (@Dr_nitz)
Get Builder Key ($9.90)
Pro Builder

Pro Builder Plan

For multi-group networks & trading tools

$24.90 / 1 month

~300,000 requests / month

  • 10,000 requests / day
  • High-frequency spread monitors
  • Multi-channel bot networks
  • Merchant scam screening included
  • Priority 24/7 technical support (@Dr_nitz)
Get Pro Builder ($24.90)
Standalone Open API Plan · $49.40/mo

Need Direct Browser & Terminal CORS Integration?

Build your own standalone P2P trading terminal, Next.js app, or mobile client. Includes open CORS (Access-Control-Allow-Origin: *), 50,000 requests/day, and single-call multi-exchange aggregation.

No-Code & Quick-Start Studio

Ready-to-Use Integration Templates

Live generator for Python Telegram Bots and Hosted Website iFrame Widgets. Code updates live.

1. Bot Mode
Broadcast Frequency
2. What Data to Include
Number of Merchants:
3. Exchanges to Include
4. Your Keys (Injected into Code)
Live Telegram Message Preview Live Reactive Preview
🤖
P2P Companion Bot BOT 12:30 PM
📊 LIVE USDT/USD P2P RATES
⏱ Updated live UTC
🟢 Cheapest Buy: 1.002 USD (BINANCE)
🔴 Highest Sell: 1.018 USD (OKX)
⚡ Spread: +1.60%
Exchange Comparison:
• BINANCE: Buy 1.002 | Sell 1.018
• OKX: Buy 1.003 | Sell 1.017
• BYBIT: Buy 1.004 | Sell 1.016
👥 Top BINANCE Merchants:
1. Trader_1 (99% • 1420 trades) → 1.002 USD
💳 Zelle, Wire, Revolut, Cash App
📦 Limit: 100 - 10,000 USD
2. Trader_2 (98% • 1240 trades) → 1.004 USD
💳 Zelle, Wire, Revolut, Cash App
📦 Limit: 100 - 10,000 USD
3. Trader_3 (97% • 1060 trades) → 1.005 USD
💳 Zelle, Wire, Revolut, Cash App
📦 Limit: 100 - 10,000 USD
Data by P2P Companion Auto-refresh ready
p2p_bot.py Python 3.9+
# ============================================================
# P2P Companion — Automated Telegram Channel Rate Poster
# Documentation: https://p2pcompanion.com/pro
# Requirements: pip install requests
# ============================================================

import time
import requests

# ── CONFIGURATION ──
API_KEY = "P2P-XXXX-XXXX-XXXX"       # Your P2P Companion API key
BOT_TOKEN = "123456789:ABCdefGHIjklMNOpqrSTUvwxyz" # From @BotFather
CHAT_ID = "@my_p2p_channel"         # Target channel or group
FIAT = "USD"
TOKEN = "USDT"
EXCHANGES = "binance,okx,bybit"
INTERVAL_SECONDS = 900  # Every 15 minutes

def fetch_rates():
    """Fetch live top-of-book rates and spreads from P2P Companion"""
    url = "https://p2pcompanion.com/api/v1/rates"
    headers = {"Authorization": f"Bearer {API_KEY}"}
    params = {"fiat": FIAT, "token": TOKEN, "exchanges": EXCHANGES}
    try:
        r = requests.get(url, params=params, headers=headers, timeout=12)
        if r.status_code == 429:
            print("[Alert] Daily quota reached. Resets at 00:00 UTC.")
            return None
        if r.status_code != 200:
            print(f"[Error] API returned {r.status_code}: {r.text}")
            return None
        return r.json()
    except Exception as e:
        print(f"[Error] Network failure: {e}")
        return None

def fetch_top_merchants(exchange="binance", side="buy"):
    """Fetch top merchant depth ads"""
    url = "https://p2pcompanion.com/api/v1/offers"
    headers = {"Authorization": f"Bearer {API_KEY}"}
    params = {"exchange": exchange, "fiat": FIAT, "token": TOKEN, "type": side, "limit": 3}
    try:
        r = requests.get(url, params=params, headers=headers, timeout=10)
        return r.json().get("data", []) if r.status_code == 200 else []
    except Exception:
        return []

def format_message(rates_data):
    """Format Telegram Markdown message"""
    p2p = rates_data.get("p2p", {})
    by_ex = p2p.get("byExchange", {})
    fetched_at = rates_data.get("meta", {}).get("fetchedAt", "")[:16].replace("T", " ")

    lines = [
        f"📊 *LIVE {TOKEN}/{FIAT} P2P RATES*",
        f"⏱ _Updated at {fetched_at} UTC_\n"
    ]

    best_buy = p2p.get("bestAsk", {})
    best_sell = p2p.get("bestBid", {})
    spread = p2p.get("crossExchangeSpreadPct", 0)

    if best_buy.get("price") and best_sell.get("price"):
        lines.append(f"🟢 *Cheapest Buy:* `{best_buy['price']} {FIAT}` ({best_buy.get('exchange', '').upper()})")
        lines.append(f"🔴 *Highest Sell:* `{best_sell['price']} {FIAT}` ({best_sell.get('exchange', '').upper()})")
        lines.append(f"⚡ *Spread:* `+{spread:.2f}%`\n")

    lines.append("*Exchange Comparison:*")
    for ex, b in by_ex.items():
        ask = b.get("bestAsk", {}).get("price", "—")
        bid = b.get("bestBid", {}).get("price", "—")
        lines.append(f"• *{ex.upper()}:* Buy `{ask}` | Sell `{bid}`")

    top_ads = fetch_top_merchants("binance", "buy")
    if top_ads:
        lines.append(f"\n👥 *Top {"BINANCE"} Merchants:*")
        for i, ad in enumerate(top_ads[:3], 1):
            name = ad.get("advertiser", {}).get("name", "Trader")
            price = ad.get("price", 0)
            orders = ad.get("advertiser", {}).get("monthOrderCount", 0)
            rate = int(float(ad.get("advertiser", {}).get("positiveRate", 1)) * 100)
            lines.append(f"{i}. *{name}* ({rate}% • {orders} trades) -> `{price} {FIAT}`")
            payments = ", ".join(ad.get("paymentMethods", [])[:3])
            if payments: lines.append(f"   💳 _{payments}_")
            min_f = ad.get("minFiat", 0)
            max_f = ad.get("maxFiat", 0)
            if max_f: lines.append(f"   📦 _Limit: {min_f:,.0f} - {max_f:,.0f} {FIAT}_")

    lines.append("\n_Data by [P2P Companion](https://p2pcompanion.com)_")
    return "\n".join(lines)

def post_to_telegram(msg):
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
    payload = {
        "chat_id": CHAT_ID,
        "text": msg,
        "parse_mode": "Markdown",
        "disable_web_page_preview": True
    }
    try:
        r = requests.post(url, json=payload, timeout=10)
        if r.status_code == 200:
            print("✓ Telegram message broadcasted successfully.")
        else:
            print(f"✗ Telegram error: {r.text}")
    except Exception as e:
        print(f"Failed to post to Telegram: {e}")

def main():
    print(f"🚀 P2P Companion Bot Active. Broadcasting every {INTERVAL_SECONDS}s to {CHAT_ID}...")
    while True:
        data = fetch_rates()
        if data:
            msg = format_message(data)
            post_to_telegram(msg)
        time.sleep(INTERVAL_SECONDS)

if __name__ == "__main__":
    main()
Run with python p2p_bot.py. Quota consumed only on intervals

Core API Endpoints Reference

Clean REST API returning standardized JSON data. Works with any HTTP client.

GET

Aggregated Rates & Spreads

Instant top-of-book buy/sell prices across multiple exchanges with automatic arbitrage spread computation.

https://p2pcompanion.com/api/v1/rates?fiat=USD&token=USDT&exchanges=binance,okx,bybit
GET

P2P Order Book Depth

Fetch real-time merchant ads with prices, order limits, payment methods, and trader completion rates.

https://p2pcompanion.com/api/v1/offers?exchange=binance&fiat=USD&type=buy&limit=5
GET

Multi-Exchange Terminal Aggregator

Single-call aggregator designed for custom frontends. Full CORS enabled. Available on the dedicated Open API plan.

https://p2pcompanion.com/api/v1/terminal?fiat=USD&token=USDT&exchanges=binance,okx,bybit&depth=5
GET

Real-Time Quota & Usage

Check your API key status, remaining daily requests, and quota reset timestamps (resets 00:00 UTC).

https://p2pcompanion.com/api/v1/usage
GET

Merchant Verification

Screen counterparties against crowd-sourced scam records and safety reputation scores.

https://p2pcompanion.com/api/scam-check?username=trader123&exchange=binance&fiat=USD
GET

GeoIP Fiat Detection

Zero-latency edge resolution of visitor local fiat currency based on IP address.

https://p2pcompanion.com/api/geoip
Sample JSON Response — 200 OK
{
  "ok": true,
  "fiat": "USD",
  "token": "USDT",
  "p2p": {
    "bestAsk": {
      "price": 1.002,
      "exchange": "binance",
      "advertiser": "FastTrader_Pro"
    },
    "bestBid": {
      "price": 1.025,
      "exchange": "okx",
      "advertiser": "GlobalCryptoDesk"
    },
    "crossExchangeSpreadPct": 2.29,
    "byExchange": {
      "binance": { "bestAsk": { "price": 1.002 }, "bestBid": { "price": 1.018 } },
      "okx": { "bestAsk": { "price": 1.005 }, "bestBid": { "price": 1.025 } },
      "bybit": { "bestAsk": { "price": 1.003 }, "bestBid": { "price": 1.019 } }
    }
  },
  "meta": {
    "fetchedAt": "2026-10-20T12:00:00.000Z",
    "cached": true
  }
}

7-Day Money-Back Guarantee

Test our API in your live workflow. If the latency isn't fast enough or the order book depth doesn't match your requirements, notify us on Telegram (@Dr_nitz) or Email within 7 days for a 100% full refund. Zero hassle.

Frequently Asked Questions

Quotas are tracked per API key and reset every day at exactly 00:00 UTC. If your quota is reached, the API returns HTTP 429 with reset headers.

Ready to Build?

Start with our 5-day free evaluation, connect directly with our engineering team, or unlock high-frequency live order books today.