Professional is free while the API is in beta.Get a key
We're testing with a handful of major leagues right now. More leagues and competitions are coming soon.
Football predictions your code can read
We pull as much as we can get on every match from professional football data feeds: form, head-to-head, standings, odds, injuries, confirmed line-ups. We publish the whole of it, because a prediction is worth exactly what went into it. Then a top-end model reads all of it, the expensive kind, and writes up what it concluded: a match summary, every market with a probability, a confidence and a justification behind the pick, four graded bets from safe to value, plus the one it would actually take. You get all of that as JSON.
Pull today's fixtures, send one id back, and that is the whole call. The data it read comes out of the same key, in every competition we cover. Or let an agent do it over MCP.
While we're in beta that key runs on the Professional limits, free.
The Daily Ticket
Every day the AI builds one ticket: one to three legs it rates highest across the day's fixtures, with the reasoning behind each one. You get today's next to the response your own code would read, then the last 30 days settled leg by leg. Each leg carries its kick-off time and, once the match starts, the score and the minute, so you can follow the ticket as it plays out. Free, and these are probabilities, not sure things.
Free tip · Today21 Jul
Combined odds 2.21
Man City vs Arsenal
Pending
Live1 – 0·67'
Double Chance · Man City or Draw1.30
City unbeaten at home this season; the draw cover absorbs a cagey top-of-table game.
Bayern vs Dortmund
Pending
07:45 PM
Goals Over/Under · Over 2.51.70
Six of the last seven Klassikers cleared 2.5; both attacks in strong scoring form.
Two short, well-covered legs. City rarely drop points at home to a rival, and the Klassiker runs high on goals. Combined, they land in a sensible band without stretching.
example response
{
"get": "/daily-ticket/2026-07-21",
"parameters": {
"date": "2026-07-21"
},
"errors": [],
"results": 1,
"response": [
{
"ticketDate": "2026-07-21",
"status": "PENDING",
"combinedOdds": 2.21,
"reasoning": "Two short, well-covered legs. City rarely drop points at home to a rival, and the Klassiker runs high on goals. Combined, they land in a sensible band without stretching.",
"settledAt": null,
"selections": [
{
"fixtureId": 101,
"match": "Man City vs Arsenal",
"market": "Double Chance",
"pick": "Man City or Draw",
"odd": 1.3,
"justification": "City unbeaten at home this season; the draw cover absorbs a cagey top-of-table game.",
"kickoff": "2026-07-21T17:00:00",
"kickoffTimestamp": 1784653200,
"status": "2H",
"statusLong": "Second Half",
"elapsed": 67,
"homeGoals": 1,
"awayGoals": 0,
"result": null
},
{
"fixtureId": 102,
"match": "Bayern vs Dortmund",
"market": "Goals Over/Under",
"pick": "Over 2.5",
"odd": 1.7,
"justification": "Six of the last seven Klassikers cleared 2.5; both attacks in strong scoring form.",
"kickoff": "2026-07-21T19:45:00",
"kickoffTimestamp": 1784663100,
"status": "NS",
"statusLong": "Not Started",
"elapsed": null,
"homeGoals": null,
"awayGoals": null,
"result": null
}
]
}
]
}
Made-up matches. The fields, and the whole envelope, are what /daily-ticket sends back.
Previous tickets
Lost12 Jul
Combined odds 2.90
Chelsea vs Newcastle
Lost
0 – 1·Full time
Double Chance · Chelsea or Draw1.40
Home edge on paper, but Newcastle nicked it on the counter.
Villarreal vs Betis
Won
2 – 2·Full time
Both Teams to Score · Yes1.55
Both attacking sides; goals at each end as expected.
Ambitious three-leg ticket; two landed, one slipped.
Won13 Jul
Combined odds 1.72
Man Utd vs Everton
Won
2 – 1·Full time
Goals Over/Under · Over 1.51.30
Almost always cleared by this fixture; both attacks in form.
Single-leg goals line with a wide data edge.
Won14 Jul
Combined odds 2.40
Juventus vs Fiorentina
Won
2 – 1·Full time
Double Chance · Juventus or Draw1.35
Strong defensive base at home; unlikely to lose outright.
Sporting vs Braga
Won
2 – 1·Full time
Both Teams to Score · Yes1.78
Both sides scoring freely; open end-to-end history.
A balanced two-leg ticket across two leagues.
Won15 Jul
Combined odds 1.95
Liverpool vs Brentford
Won
3 – 1·Full time
Double Chance · Liverpool or Draw1.20
Rarely beaten at Anfield; the draw absorbs an off day.
Sevilla vs Cadiz
Won
1 – 0·Full time
Goals Over/Under · Under 3.51.62
Low-tempo derby profile; goals scarce between these two.
One confident cover on a clear home favourite.
Lost16 Jul
Combined odds 2.05
PSG vs Nice
Lost
1 – 2·Full time
Match Winner · PSG1.40
Dominant home record, but a red card flipped the game.
Inter vs Torino
Won
1 – 1·Full time
Double Chance · Inter or Draw1.47
Solid at home; the draw cover kept the leg safe.
Favourite cover that ran into a shock result.
Won17 Jul
Combined odds 2.60
Napoli vs Atalanta
Won
3 – 1·Full time
Goals Over/Under · Over 2.51.60
Both among the league's most open sides; high combined xG.
Leverkusen vs Freiburg
Won
2 – 1·Full time
Both Teams to Score · Yes1.62
Leverkusen leaky at the back lately; Freiburg scoring on the road.
Two goals-market legs the numbers agreed on.
Won18 Jul
Combined odds 1.85
Real Madrid vs Getafe
Won
2 – 0·Full time
Draw No Bet · Real Madrid1.85
Heavy quality gap at home; stake returned even if Getafe steal a draw.
Single strong leg. The model preferred it over forcing a combo.
Lost19 Jul
Combined odds 3.46
Ajax vs PSV
Lost
1 – 2·Full time
Match Winner · Ajax2.10
Home form and expected-goals edge favoured Ajax, but PSV nicked it late.
Roma vs Lazio
Won
2 – 1·Full time
Both Teams to Score · Yes1.65
Both derby sides carrying scoring threat; shaky at set pieces.
Higher-variance ticket: a home pick against a live underdog plus a both-teams-to-score leg.
Won20 Jul
Combined odds 2.24
Belgium vs Iran
Won
3 – 0·Full time
Double Chance · Belgium or Draw1.28
Clear gap in squad quality; even a flat Belgium performance covers the draw.
Porto vs Benfica
Won
2 – 2·Full time
Goals Over/Under · Over 2.51.75
Open derby profile, both sides pressing high, expected goals above the line.
A safe favourite cover paired with a goals line the data leaned toward.
Example tickets, not real results. The real one for today is published here every day.
What you get
Top divisions and the cups that go with them, and every one of them carries the same data. What the plan mostly changes is how many calls you get in a day. Only the whole-day call and the daily ticket need a paid key.
competitions
countries
Footballand nothing else
Every competition gets the same data and the same analysis. See the list before you pay for anything.
The window is today, the 2 days before and the 6 days after. We keep no history behind it, so this is not an archive to backtest a system on.
Match data
Fixtures and results
Head-to-head
Leagues and competitions
League standings
Betting odds
Teams
Team statistics
Team comparison
Squad lists
Player statistics
Starting line-ups and formations
Injuries
AI analysis
AI match analysis
Market probabilities
Bet picks
Every analysis for today, in one call
Daily ticket
Daily ticket
Daily ticket track record
Every field, and the competitions each one covers, is on the coverage page.
What you get in one prediction call
You send a fixture id with your key in the x-api-key header. What comes back is the full read of the match, not a single number.
The fields
lineupUsed
Whether this analysis was built after the starting line-ups were confirmed. The pass that has it true is the one to trust.
matchSummary
What the fixture is, in prose: what is at stake and what shape the two sides arrive in.
formAnalysis
Recent form read against the opponent, home and away split, not a single league position.
keyInsights
Five separate findings, key1 to key5. One idea each, no filler entries.
injuryImpact
Who is missing and what it actually costs the side, rather than a list of names.
riskAssessment
What could turn the read over: a rotated squad, a dead rubber, a referee who gives a lot of cards.
marketProbabilities[]
Per market: every selection with its odd and a 0 to 100 probability, a HIGH, MEDIUM or LOW confidence on the market, the recommended pick, and the justification for it.
safeBet, balancedBet, boldBet, valueBet
Four graded picks, each with its market, pick, odd, confidence and reasoning. Each one is null when the match does not support it, and valueBet only fills in where the odds look wrong.
recommendedBet
The one call, in the same shape as the four above. This is the only pick that is never null.
Made-up fixture, made-up odds. Every other field, and the full shape, is what /predict actually sends back.
Or skip the client
The same API is an MCP server. Point Claude, Cursor or an agent of your own at it, and you ask about football in plain words while your assistant picks the tools and calls them.
terminal
claude mcp add --transport http aispapi https://api.aisportspredictionsapi.com/mcp --header "x-api-key: YOUR_KEY"
Then you just ask:
"What's today's daily ticket?"
"Give me the analysis for tonight's Arsenal match."
"Who plays today in the Premier League?"
One tool call is one request, out of the same daily allowance as a REST call. There is no second quota for MCP. All the tools and how to connect.
An agent can also read the whole API reference as one plain text file: /llms.txt
How you start, and what it costs
1
Create an account
An email and a password. No card, nothing to cancel.
2
Generate a key
One click in your dashboard. The key is shown once, so copy it then.
3
Call the API
Send it in the x-api-key header, over REST or from your MCP client.
Today, the two days before it and the six days after. We keep no history behind that window, so this is a feed to build on rather than an archive to backtest a system against.
How often is the analysis refreshed?
Every time fresher data lands for a fixture, and once more after the starting line-ups are confirmed. There is no fixed schedule to wait for. Every response carries lineupUsed, so you always know which pass you are reading. The one after confirmed line-ups is the one to trust.
Where does the data come from?
From professional football data feeds, normalised and stored on our side. That is the point of the middle layer: one consistent shape across every competition we cover, instead of a different schema per source, and an AI read on top of it that you would otherwise have to build yourself.
Does the MCP server have its own quota?
No. One tool call is one request, out of the same daily allowance as a REST call. There is no second quota to keep track of, and no separate key.
Do you cover other sports?
No, football only, and that is deliberate. Every competition we list gets the same data and the same analysis, rather than a thin version of five sports.
Can I cancel?
Any time, from your account, without writing to anyone. You keep the plan until the end of the period you have already paid for, and it does not renew after that.