For KairoCast Business customers: put signals and football predictions on your site, in your Telegram or WhatsApp channel, or in your own app. Create keys and a webhook on the Business page.
Send your key with every request. Keys unlock your organisation's plan (for example all value picks and 20-game jackpot builds) and count towards its daily limit, 10,000 calls by default, reset at 00:00 UTC.
curl -H "X-Api-Key: kc_live_…" https://kairocast.com/api/v1/football/fixtures?days=1 # or curl -H "Authorization: Bearer kc_live_…" https://kairocast.com/api/v1/markets/signals
{ "error": { "code": "API_QUOTA", "message": "…" } }./api/v1/markets/signalsSignals that passed the safety checks (your organisation's markets and strategies only). ?minConfidence=0.55
/api/v1/markets/predict?symbol=BTCUSDTForecasts for one market, 15 minutes to a year, with backtested hit rates.
/api/v1/markets/tickersLive prices and 24h change for every forecast market.
/api/v1/markets/movers?limit=20Top gainers, losers, most traded and most volatile Binance USDT coins.
/api/v1/football/fixtures?days=2Every match in the window with 1X2, goals, BTTS and the draw-aware advice (safe pick, draw risk, tier).
/api/v1/football/match?league=eng.1&id=…One match in depth: probabilities, correct scores, team form, odds and value edges.
/api/v1/football/liveMatches in progress: score, clock, events and live win chances.
/api/v1/football/valueValue picks: model probability × bookmaker odds beats the stake, with suggested stakes and the public record.
/api/v1/football/jackpot?games=17&doubles=3The most predictable matches as one ticket with doubles placed, and its real odds.
/api/v1/football/track-recordHow every recorded prediction settled.
We POST JSON to your https endpoint when something happens (checked every 15 minutes). Choose the events on the Business page:
signal.new: a new signal that passed every safety check, for your markets.football.picks: once a day from 05:00 UTC, today's bankers and safe picks.football.value: each new value pick.football.results: once a day from 06:00 UTC, how yesterday's recorded picks settled.POST /your-endpoint
X-Kairo-Event: football.picks
X-Kairo-Delivery: football.picks:2026-09-27
X-Kairo-Signature: t=1790467200,v1=5f2c…
{ "id": "football.picks:2026-09-27", "type": "football.picks", "createdAt": "…", "data": { "date": "2026-09-27", "matches": [ … ] } }Verify every delivery with your signing secret, and ignore ones older than five minutes:
import crypto from "node:crypto";
function verify(rawBody, header, secret) {
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
const expected = crypto.createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex");
const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < 300;
return fresh && crypto.timingSafeEqual(Buffer.from(parts.v1), Buffer.from(expected));
}Answer with any 2xx status. A failing endpoint is retried every 15 minutes, and paused after 50 failures in a row; saving the webhook again resumes it. Each event id is delivered once.
While your Business plan is active you may show KairoCast signals and predictions to your members and audience, with “KairoCast” credited unless your plan hides it. Predictions are probabilities, not guarantees: keep the risk wording with them, and don't present them as sure wins. See the Terms.