Developer Documentation

TurboTX Public API

Integrate Bitcoin transaction acceleration into any app. Real-time mempool data, smart fee analysis, and instant broadcasting to ~88% of network hashrate.

~88%Hashrate
30Channels
<200msAvg latency
v14.3API version
Overview #overview
TurboTX exposes two API layers. Understanding which to use is essential.
🔓
Layer 1 — Router API
acelerat.vercel.app/api/<endpoint>
9 public endpoints. No auth. Rate-limited by IP. Perfect for wallets, dashboards, status pages.
🔑
Layer 2 — Partner API v1
acelerat.vercel.app/api/v1?method=…
Bearer key auth (ttx_live_…). TX submission, batch broadcast, tiered rate limits.
💡Router endpoints are mirrored in v1: /api/health = /api/v1?method=health — use Router unless you need TX submission or higher rate limits.
Quick Start #quickstart
Get your first API response in under 2 minutes.
1
Check network fees (no auth needed)
cURL
curl "https://acelerat.vercel.app/api/price"
2
Analyze a stuck transaction
JavaScript
const res = await fetch('https://acelerat.vercel.app/api/status?txid=YOUR_TXID');
const d = await res.json();
console.log(d.status);            // 'mempool' | 'confirmed'
console.log(d.feeRate);           // e.g. 12 sat/vB
console.log(d.accelerationAdvice); // { action, urgency }
3
Accelerate via Partner API (requires key)
JavaScript
const res = await fetch('https://acelerat.vercel.app/api/v1?method=accelerate', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer ttx_live_YOUR_KEY', 'Content-Type': 'application/json' },
  body: JSON.stringify({ txid: 'YOUR_64_HEX_TXID', plan: 'premium' })
});
const d = await res.json();
console.log(d.summary.hashrateReach); // 88 (percent)
4
Get a Partner API key

Contact @Sup_TurboTX on Telegram. Keys look like ttx_live_…

Authentication #auth
★ Recommended
Authorization: Bearer ttx_live_…
Header
X-API-Key: ttx_live_…
Query (dev only)
?apikey=ttx_live_…
Never expose API keys client-side. Use environment variables or a backend proxy.
Router API — No Auth #router
Direct endpoints via api/router.js. No API key required.
GET/api/price Dynamic Premium pricing

Price dynamically calculated from fee rate + mempool queue. Updates every minute.

Response 200
{
  "ok": true, "usd": 5, "btc": 0.000059, "sats": 5900,
  "btcPrice": 84200, "feeRate": 8, "congestion": "medium",
  "emoji": "🟡", "text": "Умеренная нагрузка", "textEn": "Moderate load",
  "confLabel": "10–20 мин ⚡", "heartLevel": "mid",
  "mempoolCongestion": { "level": "low", "txCount": 24965, "textEn": "Mempool normal" },
  "bestTime": { "quality": "good", "tip": "✅ Good time for a transaction" }
}
Live Test
GET/api/mempool Mempool state, fees, congestion
Response 200
{
  "ok": true,
  "fees": { "fastest": 45, "halfHour": 30, "hour": 20, "economy": 8 },
  "mempool": { "count": 28400, "vsizeMB": 28.4 },
  "congestion": "medium", "congestionText": "Умеренная нагрузка",
  "history24h": { "min": 8, "max": 62, "avg": 24 },
  "timestamp": 1710000000000
}
Live Test
GET/api/status?txid=<64hex> Full TX status & analysis
ParamTypeRequiredDescription
txidstringrequired64-char hex transaction ID
Response 200
{
  "ok": true, "status": "mempool",
  "confirmed": false, "feeRate": 12,
  "needsBoost": true, "rbfEnabled": false,
  "isStuck": false, "stuckHours": 3,
  "accelerationAdvice": { "action": "cpfp_or_boost", "urgency": "high" }
}
Live Test
GET/api/acceleration?txid=<64hex> Smart Advisor — cost comparison & rescue plan

CPFP vs RBF vs TurboTX cost comparison, time forecast, miner detection, cheap-window, rescue plan for stuck TXs (24h+).

Live Test
GET/api/cpfp?txid=<64hex> CPFP fee calculator
ParamTypeRequiredDescription
txidstringrequiredParent transaction ID
targetstringoptionaleco|std|fast. Default: fast
Live Test
GET/api/rbf?txid=<64hex> RBF fee bump calculator

Check BIP-125 availability and calculate minimum replacement fee. Compares RBF vs CPFP cost automatically.

Live Test
GET/api/health Live health — all 30 channels
Live Test
GET/api/stats Service & network statistics
Live Test
Partner API v1 #v1
All requests require Authorization: Bearer ttx_live_…
GET/api/v1?method=ping Verify key & check rate limits
Response 200
{
  "ok": true, "message": "pong", "apiVersion": "v1",
  "keyInfo": { "tier": "pro", "name": "YourApp" },
  "rateLimit": { "perMin": 500, "perDay": 50000 },
  "remaining": { "perMin": 499, "perDay": 49999 }
}
Live Test
POST/api/v1?method=accelerate Broadcast TX to 30 channels · ~88% hashrate
ParamTypeRequiredDescription
txidstringrequired64-char transaction ID
planstringoptional"free" or "premium". Pro/Partner auto-upgrade.
webhookUrlstringoptionalPOST callback when acceleration starts
Premium adaptive waves: 3 waves (fee ratio ≥ 0.8) · 5 waves (≥ 0.4) · 10 waves (stuck). Includes MARA Slipstream private mempool.
Response 200
{
  "ok": true,
  "results": [
    { "name": "mempool.space", "ok": true, "ms": 142, "tier": "node" },
    { "name": "AntPool",       "ok": true, "ms": 380, "tier": "pool" }
  ],
  "summary": { "ok": 28, "total": 30, "hashrateReach": 88, "ms": 4200 },
  "waveStrategy": { "waves": 10, "label": "aggressive" },
  "jobId": "a1b2c3d4_1710000000000"
}
POST/api/v1?method=batch Batch broadcast — up to 20 TXs
ParamTypeRequiredDescription
txidsstring[]requiredArray of 64-hex TXIDs, max 20
Request Body
{ "txids": ["a1b2c3...64hex", "d4e5f6...64hex"] }
GET/api/v1?method=keys API key management (admin)

Create, list, revoke API keys. Requires X-Admin-Token header.

Create key
POST /api/v1?method=keys
X-Admin-Token: your_admin_secret

{ "action": "create", "tier": "basic", "name": "MyApp" }
The key is shown only once in the create response — save it immediately.
Server Cron + Additional v1 Methods #cron
GET/api/cron Server-side wave runner — requires X-Cron-Secret header (cron-job.org)

Called every minute by cron-job.org. Reads active wave jobs from Firebase, fires due waves via /api/repeat. Fires even when user's browser is closed.

⚙️Setup: cron-job.org → GET https://acelerat.vercel.app/api/cron every 1 min, header X-Cron-Secret: <CRON_SECRET>
Response 200
{
  "ok": true, "processed": 2, "succeeded": 2,
  "confirmed": 0, "ms": 894,
  "jobs": [{ "txid": "abc...", "ok": true, "wave": 2, "nextWaveIn": "30 мин" }]
}
GET/api/v1?method=status&txid=<hex> Full TX status via v1 API (same as /api/status, with _meta wrapper)

Returns identical payload to /api/status with additional _meta object containing tier, remaining limits, requestId.

GET/api/v1?method=fees Current fee market — fastest/halfHour/hour/economy + congestion + mempool
Response 200
{
  "ok": true,
  "fees": { "fastest": 8, "halfHour": 5, "hour": 4, "economy": 2 },
  "congestion": "low",
  "mempool": { "count": 24965, "vsizeMB": 19.4 }
}
Rate Limits #rate-limits
Per API key. Current usage in every response under _meta and response headers.
Free
$0 / mo
30 req/min
500 req/day
Basic
$29 / mo
100 req/min
5,000 req/day
Pro ⭐
$99 / mo
500 req/min
50,000 req/day
Partner
Custom
Unlimited
SLA + support
Response Headers
X-RateLimit-Limit-Minute:     500
X-RateLimit-Remaining-Minute: 498
X-RateLimit-Limit-Day:        50000
X-RateLimit-Remaining-Day:    49997
Error Codes #errors
HTTPReasonResolution
200ok: falseTX not found or method returned empty
400Invalid txid / methodEnsure txid = 64 hex chars. Check availableMethods in error body.
401UnauthorizedAPI key missing or invalid. Check Authorization: Bearer header.
429Rate limit exceededSlow down or upgrade tier. See retryAfter ms.
500Internal errorUpstream Bitcoin node error. Retry with backoff.
Error Body
{
  "ok": false,
  "error": "Rate limit exceeded (per_minute)",
  "limit": 30,
  "retryAfter": 45000
}
Changelog #changelog
v14.3 — March 2026
heartLevel sync + i18n + wave timer fixes
  • heartLevel now synced with price tier (feeRate + mpCount + blockTime) — no more mismatch between price and heart animation
  • Removed duplicate heart update in _rtApplyTicker — was causing flicker
  • Full i18n for NI cards, FAQ answers, modal header, pool grid, mempool bar
  • Wave history timer: confirmed TX shows "✅ confirmed" instead of frozen countdown
  • WebSocket: max 2 retries + session-level disable flag — no more console spam
  • Smart Advisor text had broken ternary — fixed lang-aware output
v14.2 — March 2026
Server-side waves + localStorage rewrite
  • Wave system rewritten: localStorage + setInterval replaces 10× setTimeout — survives tab close/refresh
  • Server-side wave cron via cron-job.org + Firebase Realtime DB — waves fire even when browser closed
  • Wave state key: ttx_wave_v2_<txid> with nextWaveAt, wavesDone, active
  • Wave countdown in history detail reads actual nextWaveAt from localStorage
  • Client PRICE_TIERS synced with router.js: low=5–10min, medium=10–15min, high=10–20min
v14.1 — March 2026
Security hardening + bug fixes
  • HMAC activation tokens — PREMIUM_SECRET no longer sent to client
  • broadcast.js accepts both raw secret and HMAC token (backward compat)
  • Fixed dynamic API keys (created via v1 now work in auth)
  • Fixed Lightning bech32 invoice parser
  • Fixed hashrateReach = 0 despite pools responding
  • Fixed channel names mismatch (bitaccelerate, sochain.com, Lincoin)
  • Result panel restored after F5 from localStorage
  • History cards show feeRate, hashrate %, channels, ETA
  • CSP via meta tag (Vercel Hobby plan header limitation)
v14 — Q1 2026
Merged architecture + 10-wave repeat
  • Merged acceleration.js into router (Vercel Hobby 12-function limit)
  • Merged keys.js into v1.js
  • Repeat waves upgraded 8 → 10
  • Dual-signal pricing: fee rate + mempool queue
  • Dynamic cheapWindowForecast with real 24h block data
  • Q1 2026 hashrate: MaraSlipstream, EMCDPool, SBICrypto, 2Miners, Rawpool
v13 — 2025
30 channels + MARA Slipstream
  • 30 channels: 8 nodes + 22 pools (~88% hashrate)
  • MARA Slipstream private mempool bypass
  • Public API v1 with Bearer auth and tiered rate limits
  • Smart Advisor — decision engine with cost analysis
Pay with
Questions? @Sup_TurboTX · Secure · Instant