This website's free forecast tool shows a 30-step Monte Carlo projection for a single timeframe. The Pro API extends it into a machine-readable, paid endpoint designed for AI agents and automated clients:
intervals=1d,1wBTCUSDT and ETHUSDT on the daily timeframe and beyondGET https://stochastic.fastapicloud.dev/forecast-pro
Price: $0.01 per request, paid in USDC on Base
x402 turns the long-forgotten HTTP 402 Payment Required status code into a real
machine-payment layer. No API keys, no accounts, no subscription — the HTTP client
pays on-chain and gets the content:
/forecast-pro without payment and receives 402 with a payment-required header describing price, asset and recipient.payment header.Press the button to send a real request to the endpoint without a payment header. You will get the genuine 402 response exactly as an agent sees it before paying.
| Parameter | Type | Default | Description |
|---|---|---|---|
symbol | string | BTCUSDT | Binance spot trading pair: BTCUSDT or ETHUSDT |
intervals | string | 1d | Comma-separated list of kline intervals: 1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,1M |
from | date | — | Training data range start, YYYY-MM-DD |
to | date | — | Training data range end, YYYY-MM-DD |
A paid response contains one forecast block per requested interval (trimmed here to a single timestamp for readability):
{
"symbol": "ETHUSDT",
"horizon": 90,
"status": "ok",
"build_at_utc": "2026-09-12T12:00:00+00:00",
"forecasts": {
"1d": {
"rows": 999,
"t0": "2023-12-24",
"s0": 2516.43,
"μ": 0.000126,
"σ": 0.035405,
"mean_path": {"2026-09-13 00:00:00+00:00": {"price": 2519.6}},
"sample_paths": {"2026-09-13 00:00:00+00:00": {"0": 2550.7, "1": 2488.2, "...": "..."}},
"prediction_interval_95": [
{"2026-09-13 00:00:00+00:00": {0: 2290.5}},
{"2026-09-13 00:00:00+00:00": {0: 2760.1}}
],
"uncertainty_bounds": [
{"2026-09-13 00:00:00+00:00": {0: 2511.8}},
{"2026-09-13 00:00:00+00:00": {0: 2527.4}}
]
}
},
"errors": {}
}
Any x402-capable HTTP client handles the 402 flow automatically.
curl -i "https://stochastic.fastapicloud.dev/forecast-pro?symbol=BTCUSDT&intervals=1d"
# HTTP/1.1 402 Payment Required
# payment-required: eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiw...
# Decode the header (base64 JSON) to see:
# {
# "x402Version": 2,
# "accepts": [{
# "scheme": "exact",
# "network": "eip155:8453",
# "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", # USDC on Base
# "amount": "10000", # 0.01 USDC (6 decimals)
# "payTo": "0x9e6a..."
# }]
# }import asyncio
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact import ExactEvmScheme
async def main():
buyer = Account.from_key("0x...") # your wallet with USDC on Base
client = x402Client()
client.register("eip155:8453", ExactEvmScheme(signer=buyer))
async with x402HttpxClient(client) as http:
r = await http.get(
"https://stochastic.fastapicloud.dev/forecast-pro",
params={"symbol": "BTCUSDT", "intervals": "1d,1w"},
)
print(r.status_code) # 200 — payment was settled automatically
print(r.json())
asyncio.run(main())import { wrapFetchWithPayment } from "x402-fetch";
const signer = await privateKeyToAccount("0x..."); // wallet with USDC on Base
const fetchWithPayment = wrapFetchWithPayment(fetch, signer);
const res = await fetchWithPayment(
"https://stochastic.fastapicloud.dev/forecast-pro?symbol=BTCUSDT&intervals=1d",
);
console.log(res.status); // 200
const forecast = await res.json(); // μ, σ, 50 paths, 95% interval...A href="https://stochastic.fastapicloud.dev/forecast" free 30-step forecast
remains available on GET /forecast — no payment needed.
The paid /forecast-pro endpoint adds depth, parameters and multi-timeframe output.
https://stochastic.fastapicloud.dev/forecast-pro