KickOff Football Predictions API

Football predictions with verifiable hit rate — not vibes.

Daily predictions across 30+ markets including halftime Double Chance, DNB, and Win Either Half. Public 30-day verification dashboard you can check before you subscribe. Built for tipster blogs, affiliate sites, and Telegram channel automation.

Live verification

Most "85% accurate" tipster claims are unverified marketing copy. Ours is a single GET request, no auth, edge-cached 6h, aggregated directly from the production database that ships our predictions. Click and read the JSON before you subscribe.

Loading verification
Raw JSON response (click to expand)
Fetching…
Open the public endpoint →

Live performance

Pulled live from the production database. Aggregated breakdowns (Accuracy, Calibration, By League, Daily History) and pick samples for our three pick filters. In the pick samples, upcoming fixtures are anonymised; settled fixtures show real team names — full transparency on wins and losses.

Loading…

Pricing

Tiers fragment realistic webmaster usage so a tipster site listing ~30 daily fixtures lands comfortably in PRO ($17). Subscribe and rate-limit on RapidAPI; we mirror quotas server-side.

Tier Price (RapidAPI) Daily quota What you get
BASIC Free 50 Top 3 daily picks, confidence band only (HIGH/MED/LOW), no halftime, single league filter
ULTRA $39/mo 4,000 Everything in PRO, plus: H2H, recent-form, weather, unlimited prose previews, /picks/high-confidence filter, league date-range queries
MEGA $89/mo 18,000 Everything in ULTRA, plus: /picks/history archive (settled picks with outcomes), bulk fixture queries

What makes this API different

Endpoint surface (v1)

GET /track-record/last-30-daysPUBLIC
By-market and by-league verified hit rate over last 30 days. The wedge.
GET /track-record/by-tier-promiseBASIC
Live check that each tier's promised hit rate is currently being met.
GET /picks/todayBASIC
Today's picks. BASIC: top 3 + confidence band. PRO+: all + probability + real-odds.
GET /picks/by-fixture/{id}PRO
Full pick set for one fixture, halftime included.
GET /picks/by-league/{slug}PRO
Picks per league. ULTRA+ adds ?from/?to date range (max 30d).
GET /picks/high-confidenceULTRA
Filter today's picks by ?min_probability threshold.
GET /picks/historyMEGA
Settled picks with outcome. Filters: ?from&to&market&league&limit.
GET /context/h2h/{id}ULTRA
Last 10 head-to-head meetings.
GET /context/recent-form/{id}ULTRA
Last 5 results per side, W/D/L summary.
GET /context/weather/{id}ULTRA
Open-Meteo daily forecast at venue. CC BY 4.0 (non-commercial).
GET /preview/{id}?lang=enPRO
150-300 word English narrative; deterministic templating, cached forever.
GET /leaguesBASIC
All leagues with sample size + last-30d hit rate.
GET /quotaBASIC
Live quota status for the calling subscription.

All endpoints under https://kickoff-collector.trisstann.workers.dev/api/v1/marketplace/. RapidAPI proxies your calls and injects the X-RapidAPI-Proxy-Secret, X-RapidAPI-Subscription, and X-RapidAPI-User headers automatically.

Code samples

Once subscribed on RapidAPI, replace YOUR_RAPIDAPI_KEY with the key from your dashboard. RapidAPI handles the proxy secret server-side.

curl --request GET \
  --url 'https://kickoff-football-predictions.p.rapidapi.com/picks/today' \
  --header 'X-RapidAPI-Host: kickoff-football-predictions.p.rapidapi.com' \
  --header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
import requests

url = "https://kickoff-football-predictions.p.rapidapi.com/picks/today"
headers = {
    "X-RapidAPI-Host": "kickoff-football-predictions.p.rapidapi.com",
    "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
}
resp = requests.get(url, headers=headers, timeout=10)
data = resp.json()
for f in data["fixtures"]:
    print(f["home_team"], "vs", f["away_team"], "->", f["top_pick"]["market"])
const fetch = require("node-fetch");

const headers = {
  "X-RapidAPI-Host": "kickoff-football-predictions.p.rapidapi.com",
  "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
};

(async () => {
  const r = await fetch(
    "https://kickoff-football-predictions.p.rapidapi.com/picks/today",
    { headers }
  );
  const data = await r.json();
  console.log(`${data.count} fixtures today`);
  data.fixtures.forEach((f) =>
    console.log(`${f.home_team} vs ${f.away_team} -> ${f.top_pick.market}`)
  );
})();
<?php
// WordPress: drop into a theme function or shortcode handler.
$response = wp_remote_get(
  'https://kickoff-football-predictions.p.rapidapi.com/picks/today',
  [
    'headers' => [
      'X-RapidAPI-Host' => 'kickoff-football-predictions.p.rapidapi.com',
      'X-RapidAPI-Key'  => 'YOUR_RAPIDAPI_KEY',
    ],
    'timeout' => 10,
  ]
);
if ( is_wp_error( $response ) ) {
  return '<p>Picks unavailable</p>';
}
$data = json_decode( wp_remote_retrieve_body( $response ), true );
$out  = '<ul>';
foreach ( $data['fixtures'] as $f ) {
  $out .= sprintf(
    '<li>%s vs %s — %s</li>',
    esc_html( $f['home_team'] ),
    esc_html( $f['away_team'] ),
    esc_html( $f['top_pick']['market'] )
  );
}
$out .= '</ul>';
return $out;