How to subscribe, configure, and receive real-time cryptocurrency prices via Webhook Push delivery.
The Trinity Beast Webhook Push is a real-time price delivery service. Instead of polling our API for prices (pull model), we push prices directly to your endpoint on a schedule you choose (push model). You tell us which assets you want, where to send them, and how often — we handle the rest.
Prices are sourced from 6 live exchange WebSocket feeds (Coinbase, Gemini, Kraken, Gate.io, Bybit, OKX) and delivered via two protocols:
| Protocol | Method | Best For | Reliability |
|---|---|---|---|
| UDP | Fire-and-forget datagram to your IP:port | Low-latency trading systems, internal services | Best-effort (no retries) |
| HTTPS | Signed POST to your URL with HMAC-SHA256 | Web applications, cloud functions, logging systems | 3 retries with exponential backoff |
You can choose UDP only, HTTPS only, or both. Every delivery includes a sequence number for ordering and gap detection.
Why "Associate"? We call our Webhook Push subscribers "Associates" — you are an associate partner in the CPMP mission. 100% of subscription revenue funds freedom from brick kiln debt bondage in Pakistan through Cross Power Ministries of Pakistan.
All prices are monthly. All numbers are multiples of 3 — a core convention of The Trinity Beast.
1 Subscribe — Visit cpmp-site.org/webhook.html and choose your tier. Click "Join Us" to complete checkout via Stripe.
2 Receive your API key — After checkout, you will receive an email receipt with your unique API key. This key authenticates all webhook management API calls. Keep it secure.
3 Configure your endpoints — Call POST /webhook/configure with your API key to register your UDP endpoint (IP:port), HTTPS endpoint (URL), and select your assets. See Section 4.
4 Verify your endpoint — Echo back the verification token from the configure response to POST /webhook/verify. This proves you control the endpoint. See Section 5.
5 Receive prices — Once verified, the delivery engine begins pushing prices to your endpoint at your tier's interval. No further action needed.
After receiving your API key, call the configure endpoint to register where prices should be delivered.
POST https://api.cpmp-site.org/webhook/configure
X-Api-Key: YOUR_API_KEY
Content-Type: application/json
{
"delivery_method": "both",
"udp_host": "203.0.113.50",
"udp_port": 9100,
"https_url": "https://your-app.example.com/webhook/prices",
"assets": ["BTC", "ETH", "SOL", "XRP", "DOGE", "LINK", "DOT", "AVAX", "UNI"]
}
| Field | Type | Required | Description |
|---|---|---|---|
delivery_method | string | No (default: "both") | "udp", "https", or "both" |
udp_host | string | If UDP | Your server's public IP address |
udp_port | integer | If UDP | Port to receive UDP datagrams (1024–65535) |
https_url | string | If HTTPS | Your HTTPS endpoint URL (must be https://) |
assets | array | Yes | Asset symbols to receive (e.g., ["BTC","ETH"]). Max depends on tier. |
{
"status": "✅ [LPO] [us-east-2] [BeastMain] [/webhook/configure] [200]",
"data": {
"message": "Webhook endpoints configured. Send your verification token to POST /webhook/verify to activate delivery.",
"subscription_id": "a1b2c3d4-...",
"delivery_method": "both",
"udp_host": "203.0.113.50",
"udp_port": 9100,
"https_url": "https://your-app.example.com/webhook/prices",
"selected_assets": ["BTC", "ETH", "SOL", "XRP", "DOGE", "LINK", "DOT", "AVAX", "UNI"],
"status": "pending_verification",
"verification_token": "a8f3e2b1c4d5...",
"interval_seconds": 60,
"max_assets": 9
}
}
Save the verification_token — you need it in the next step. A new token is generated every time you call configure.
Echo back the verification token to prove you control the endpoint. Once verified, delivery begins automatically.
POST https://api.cpmp-site.org/webhook/verify
X-Api-Key: YOUR_API_KEY
Content-Type: application/json
{
"verification_token": "a8f3e2b1c4d5..."
}
{
"status": "✅ [LPO] [us-east-2] [BeastMain] [/webhook/verify] [200]",
"data": {
"message": "Endpoint verified. Webhook delivery is now active.",
"subscription_id": "a1b2c3d4-...",
"status": "active",
"delivery_starts": "Prices will begin arriving at your configured interval."
}
}
You're live. The delivery engine will begin pushing prices to your endpoint at your tier's interval. The first delivery typically arrives within one interval cycle.
Every delivery — both UDP and HTTPS — sends the same JSON payload. The payload includes metadata for ordering, deduplication, and source identification.
{
"status": "✅ [Webhook] [us-east-2] [BeastWebhook]",
"subscription_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"delivery_id": "a1b2c3d4-1714780800000-42",
"sequence": 42,
"timestamp": "2026-05-03T22:00:00Z",
"asset_count": 9,
"region": "us-east-2",
"cluster_node": "BeastWebhook",
"tier": "webhook_starter",
"prices": [
{ "asset": "BTC", "price": 79307.95, "source": "coinbase-ws", "updated_at": "2026-05-03T21:59:59Z" },
{ "asset": "ETH", "price": 2348.29, "source": "coinbase-ws", "updated_at": "2026-05-03T21:59:58Z" },
{ "asset": "SOL", "price": 84.80, "source": "coinbase-ws", "updated_at": "2026-05-03T21:59:59Z" },
{ "asset": "XRP", "price": 1.3996, "source": "coinbase-ws", "updated_at": "2026-05-03T21:59:57Z" },
{ "asset": "DOGE", "price": 0.10948, "source": "coinbase-ws", "updated_at": "2026-05-03T21:59:58Z" },
{ "asset": "LINK", "price": 9.209, "source": "coinbase-ws", "updated_at": "2026-05-03T21:59:56Z" },
{ "asset": "DOT", "price": 1.221, "source": "coinbase-ws", "updated_at": "2026-05-03T21:59:55Z" },
{ "asset": "AVAX", "price": 9.19, "source": "coinbase-ws", "updated_at": "2026-05-03T21:59:59Z" },
{ "asset": "UNI", "price": 3.267, "source": "coinbase-ws", "updated_at": "2026-05-03T21:59:58Z" }
]
}
| Field | Type | Description |
|---|---|---|
status | string | Trinity Beast status line with region and node (emoji toggleable via account settings) |
subscription_id | string | Your unique subscription UUID |
delivery_id | string | Unique ID for this delivery (for deduplication) |
sequence | integer | Monotonically increasing per subscription — use for ordering and gap detection |
timestamp | string | ISO 8601 UTC timestamp of this delivery |
asset_count | integer | Number of prices in this delivery |
region | string | AWS region serving this delivery |
cluster_node | string | Container node name (BeastWebhook) |
tier | string | Your subscription tier |
prices[].asset | string | Asset symbol (e.g., BTC, ETH) |
prices[].price | number | Current price in USD |
prices[].source | string | Exchange source (e.g., coinbase-ws, gemini-ws) |
prices[].updated_at | string | When this price was last updated at the exchange |
GET https://api.cpmp-site.org/webhook/status X-Api-Key: YOUR_API_KEY
Returns your subscription status, delivery stats, current configuration, tier limits, and monthly push count.
PUT https://api.cpmp-site.org/webhook/assets
X-Api-Key: YOUR_API_KEY
Content-Type: application/json
{
"assets": ["BTC", "ETH", "SOL", "AVAX", "DOT"]
}
Add or remove assets within your tier's limit. No re-verification needed — changes take effect on the next delivery cycle.
Call POST /webhook/configure again with new endpoint details. This generates a new verification token — you must re-verify before delivery resumes at the new endpoint.
Every HTTPS delivery includes an X-Webhook-Signature header containing an HMAC-SHA256 signature of the payload body, signed with your webhook secret (provided during configuration). Use this to verify that deliveries are genuinely from The Trinity Beast.
import hmac, hashlib
def verify_signature(payload_body, signature_header, webhook_secret):
expected = hmac.new(
webhook_secret.encode(),
payload_body,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature_header)
const crypto = require('crypto');
function verifySignature(payloadBody, signatureHeader, webhookSecret) {
const expected = crypto
.createHmac('sha256', webhookSecret)
.update(payloadBody)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signatureHeader)
);
}
Always verify signatures on HTTPS deliveries before processing the payload. This prevents spoofed deliveries from unauthorized sources.
UDP: Datagrams are fire-and-forget. If your endpoint is down, the delivery is lost. Use the sequence field to detect gaps. HTTPS: Failed deliveries are retried 3 times with exponential backoff (1s, 3s, 9s). If all retries fail, the delivery is logged and skipped.
Yes. Tier changes are handled through Stripe. When your subscription updates, the delivery engine automatically adjusts your interval and asset limit.
150 prewarmed assets across 6 exchanges. Enterprise tier Associates can request all 150. Use GET /exchanges to see the full list of available assets and their exchange sources.
Delivery pauses until the next billing cycle. You can upgrade your tier at any time to increase your limit.
Not currently. We recommend starting with the Starter tier ($30/month) to validate your integration before upgrading.
100% of revenue funds freedom from brick kiln debt bondage in Pakistan through Cross Power Ministries of Pakistan (CPMP). When you subscribe, you are funding the mission.
All endpoints use https://api.cpmp-site.org as the base URL. Authentication is via the X-Api-Key header.
| Method | Endpoint | Purpose |
|---|---|---|
POST | /webhook/configure | Register UDP/HTTPS endpoints and select assets |
POST | /webhook/verify | Echo verification token to activate delivery |
GET | /webhook/status | View subscription status, delivery stats, configuration |
PUT | /webhook/assets | Add or remove assets within tier limit |
GET | /exchanges | List all available assets and exchange sources (public, no auth) |
For the complete API specification including all request/response schemas, error codes, and rate limits, see the Trinity Beast API Reference.