Quickstart
Quickstart
Section titled “Quickstart”Get real-time technical analysis data from Cerebrus Pulse in under 5 minutes.
Try the Free Demo First
Section titled “Try the Free Demo First”No wallet needed — the /demo/{coin} endpoint returns the full 1h + 4h analysis for BTC and ETH, free (3 requests/min):
curl https://api.cerebruspulse.xyz/demo/BTCReady for every supported coin, all 6 timeframes and higher rate limits? Set up x402 payments below.
Prerequisites
Section titled “Prerequisites”- A wallet with USDC on Base (chain ID 8453) or Solana (mainnet)
- Python 3.10+ or Node.js 18+
1. Install the x402 SDK
Section titled “1. Install the x402 SDK”# For Base (EVM):pip install "x402[evm]" httpx eth-account# For Solana: pin solana below 0.37 (solana 0.40 removed a module x402's Solana client imports)pip install "x402[svm]" "solana>=0.36,<0.37" "solders>=0.27,<0.28" httpx# x402 v2 client. The older x402-fetch 1.x cannot pay this API.npm install @x402/fetch @x402/evm viem2. Make Your First Request
Section titled “2. Make Your First Request”import asyncioimport osfrom eth_account import Accountfrom x402 import x402Clientfrom x402.http.clients import x402HttpxClientfrom x402.mechanisms.evm.exact import register_exact_evm_client
# A dedicated, low-balance Base wallet (keep the key out of source code)PRIVATE_KEY = os.environ["BASE_WALLET_PRIVATE_KEY"]
async def main(): x402 = x402Client() register_exact_evm_client(x402, Account.from_key(PRIVATE_KEY)) x402.set_spend_controls({"max_amount_per_payment": "$0.10"})
async with x402HttpxClient(x402) as client: # Fetch BTC technical analysis (1h + 4h timeframes) resp = await client.get( "https://api.cerebruspulse.xyz/pulse/BTC", params={"timeframes": "1h,4h"} ) data = resp.json()
print(f"BTC Price: ${data['price']['current']:,.2f}") print(f"Confluence: {data['confluence']['score']} ({data['confluence']['bias']})")
for tf, analysis in data["timeframes"].items(): ind = analysis["indicators"] print(f"\n[{tf}] RSI: {ind['rsi_14']} ({ind['rsi_zone']})") print(f"[{tf}] Trend: {ind['trend']['label']}")
asyncio.run(main())import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";import { ExactEvmScheme } from "@x402/evm";import { privateKeyToAccount } from "viem/accounts";
// A dedicated, low-balance Base wallet (keep the key out of source code)const account = privateKeyToAccount(process.env.BASE_WALLET_PRIVATE_KEY as `0x${string}`);
const fetchWithPayment = wrapFetchWithPaymentFromConfig(fetch, { schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }], spendControls: { maxAmountPerPayment: "$0.10" },});
const response = await fetchWithPayment( "https://api.cerebruspulse.xyz/pulse/BTC?timeframes=1h,4h");
const data = await response.json();
console.log(`BTC Price: $${data.price.current.toLocaleString()}`);console.log(`Confluence: ${data.confluence.score} (${data.confluence.bias})`);# Step 1: an unpaid request returns 402 with the x402 v2 termscurl -i "https://api.cerebruspulse.xyz/pulse/BTC?timeframes=1h,4h"# HTTP/1.1 402 Payment Required# payment-required: <base64 x402 v2 terms: price, networks, payTo>
# Step 2: an x402 v2 client signs a USDC payment and retries the same# request with a PAYMENT-SIGNATURE header. The receipt comes back in# PAYMENT-RESPONSE. See the Python and TypeScript tabs.3. Example Response
Section titled “3. Example Response”The fields are described on the /pulse reference. Funding rates are hourly, open interest is in
contracts (BTC here, not USD), and confluence.score is a bullish vote share, not a confidence.
GET /pulse/BTC?timeframes=1h,4h: real engine output on market data captured at 2026-09-24 17:05 UTC. Lists are cut to 3 items. Live responses may also carry meta.disclaimer, which the gateway adds.
{ "coin": "BTC", "market_symbol": "BTC", "price_unit": "1 BTC", "timestamp_iso": "2026-09-24T17:05:00Z", "price": { "current": 84512.5 }, "timeframes": { "1h": { "indicators": { "rsi_14": 49.16, "rsi_zone": "neutral", "atr_14": 495.286126, "atr_pct": 0.5881, "ema_20": 84134.27882, "ema_50": 84555.185241, "ema_200": 82476.178645, "vwap_20": 84001.13142, "zscore_100": -0.173, "bollinger": { "upper": 84796.137043, "middle": 84040.55, "lower": 83284.962957, "width_pct": 1.7981, "position_pct": 0.6194 }, "trend": { "direction": 1, "label": "weak_bullish", "ema_stack": "mixed" } }, "candle_freshness_seconds": 300.8, "last_closed_candle_time": "2026-09-24T17:00:00Z", "stale": false }, "4h": { "indicators": { "rsi_14": 47.17, "rsi_zone": "neutral", "atr_14": 727.64216, "atr_pct": 0.8715, "ema_20": 84338.703076, "ema_50": 82423.649073, "ema_200": 77957.991913, "vwap_20": 84859.417592, "zscore_100": 1.1847, "bollinger": { "upper": 87855.263546, "middle": 85270.85, "lower": 82686.436454, "width_pct": 6.0617, "position_pct": 0.1557 }, "trend": { "direction": 1, "label": "weak_bullish", "ema_stack": "mixed" } }, "candle_freshness_seconds": 3900.8, "last_closed_candle_time": "2026-09-24T16:00:00Z", "stale": false } }, "derivatives": { "funding_rate": 0.0000125, "funding_annualized_pct": 10.95, "funding_interval_hours": 1, "open_interest": 39370.3015, "impact_bid": 84485.4, "impact_ask": 84500, "impact_spread_bps": 1.73, "spread_bps": 1.73 }, "regime": { "current": "unknown", "as_of": 0 }, "confluence": { "score": 0.62, "bias": "bullish", "signals": { "rsi": "neutral", "trend": "bullish", "bollinger": "neutral", "zscore": "neutral" }, "bullish_count": 1, "bearish_count": 0, "per_timeframe": { "1h": { "score": 0.62, "bull_fraction": 0.625, "family_scores": { "trend_following": 0.75, "mean_reversion": 0.5 }, "bias": "bullish", "signals": { "rsi": "neutral", "trend": "bullish", "bollinger": "neutral", "zscore": "neutral" }, "bullish_count": 1, "bearish_count": 0 }, "4h": { "score": 0.75, "bull_fraction": 0.75, "family_scores": { "trend_following": 0.75, "mean_reversion": 0.75 }, "bias": "bullish", "signals": { "rsi": "neutral", "trend": "bullish", "bollinger": "bullish", "zscore": "neutral" }, "bullish_count": 2, "bearish_count": 0 } }, "aligned": true, "alignment_score": 1, "bull_fraction": 0.625, "family_scores": { "trend_following": 0.75, "mean_reversion": 0.5 }, "primary_timeframe": "1h", "score_type": "heuristic_vote_share", "validated": false, "definition": "score = bull_fraction = (bullish + 0.5*neutral) / votes on primary_timeframe; an unvalidated heuristic, not a confidence or probability" }, "meta": { "provider": "Cerebrus Pulse", "offering": "cerebrus_pulse", "execution_ms": 0, "coins_available": 51, "data_age_seconds": 60, "as_of": { "market_data": "2026-09-24T17:04:00Z", "candles_1h": "2026-09-24T17:00:00Z", "candles_4h": "2026-09-24T16:00:00Z" }, "sources": [ { "name": "Hyperliquid", "url": "https://hyperliquid.xyz" } ] }}Next Steps
Section titled “Next Steps”- API Reference — /pulse — Full endpoint documentation with all parameters
- API Reference — /screener — Scan all 50+ coins in one call
- MCP Server — Use Cerebrus Pulse from Claude, Cursor or any MCP client
- Python Client —
pip install "cerebrus-pulse>=0.4.0": typed methods that pay for you - Python with x402 — Full Python integration with the raw x402 SDK
- TypeScript with x402 — TypeScript/Node.js integration
- x402 Payments Guide — Deep dive into how micropayments work
- Response Schemas — Detailed field descriptions and value ranges
- Supported Coins — Full list of available assets