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.
Developer Trial
For bot testing & evaluation
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
Builder Plan
For Telegram channels & embed widgets
~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)
Pro Builder Plan
For multi-group networks & trading tools
~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)
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.
Ready-to-Use Integration Templates
Live generator for Python Telegram Bots and Hosted Website iFrame Widgets. Code updates live.
# ============================================================
# 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()
python p2p_bot.py. Quota consumed only on intervalsCore API Endpoints Reference
Clean REST API returning standardized JSON data. Works with any HTTP client.
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 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 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 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 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 GeoIP Fiat Detection
Zero-latency edge resolution of visitor local fiat currency based on IP address.
https://p2pcompanion.com/api/geoip {
"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
Ready to Build?
Start with our 5-day free evaluation, connect directly with our engineering team, or unlock high-frequency live order books today.