Every tool
Every Unitley tool with its scope, arguments, what it returns and the errors it can send, the same over MCP, the REST API and the web analyst.
Every Unitley tool, grouped by what it works on. The MCP server, the REST API and the web analyst all serve these tools from one registry, so a tool takes the same arguments and returns the same result wherever you call it.
- Over MCP, call a tool with
tools/call, its name and its arguments. See The MCP server. - Over REST,
POSTthe arguments as a JSON object to/api/v1/tools/<name>. See Endpoints.
Each card below shows the tool's arguments and the description agents are given, read from the registry. The notes under a card add what it returns and the errors it can send. Errors lists every error code.
Scopes
Every tool has a scope: read or write. A read-only token can call every read tool. The tools that save to your account, log_bet, settle_bet and save_recommendation, need a token with write access. A read-only token that calls one gets insufficient_scope: HTTP 403 over REST, or an isError result over MCP. The scope is checked before the arguments are. See Tokens and security.
| Tool | Scope | What it does |
|---|---|---|
get_week_slate | read | The games in a date range, soonest first, without prices. By default from 6 hours ago to 8 days ahead, and at most 14 days. |
get_game_odds | read | One game's FanDuel moneyline, spread and total: the chance each price implies, the best price at FanDuel's line across the books Unitley tracks, the no-vig consensus chance and FanDuel's EV at it, with the price's age. |
get_line_movement | read | How FanDuel's price and line moved in one market: the first and current price, the longest and shortest, and how many times it moved. |
get_player_props | read | One game's FanDuel player props (passing, rushing and receiving yards, anytime touchdown) with the same best price, no-vig chance and EV. In the 24 hours before kickoff a call can refresh them, from a limited quota everyone shares. |
get_team_stats | read | A team's season totals and per-game numbers, by team code (KC, SF). |
get_player_stats | read | A player's season numbers and last few games, by part of a name (up to 10 matches) or by playerId. |
get_injury_report | read | Every player not cleared to play, for one team or the league: game status, practice status and reserve lists. Updated about twice a day, without game-day inactives. |
get_game_weather | read | The forecast over a game: kickoff temperature, wind, gusts, rain and snow, from the National Weather Service or MET Norway, with closed and retractable roofs flagged. No forecast yet for games more than 7 days out. |
calc_implied_probability | read | American odds to decimal odds and the chance the price implies, vig included. |
calc_no_vig_odds | read | Takes the margin out of one market: the overround, and each outcome's fair chance and fair odds. |
calc_ev | read | The expected value of a bet at your chance: the edge over the price, EV in dollars and EV per dollar staked. |
calc_kelly_stake | read | A stake sized to your bankroll: your risk profile's fraction of Kelly, held under its cap, your max stake and the room left under your loss limits. |
calc_parlay | read | A parlay of 2 to 25 legs: combined odds and implied chance and, with your chance on every leg, the combined chance and EV. Legs on one game are flagged. |
get_bankroll | read | Your bankroll, unit, risk profile, ROI, profit over the last 24 hours and the last 7 days, max stake, and the room left under each loss limit. |
get_bet_log | read | Your bets, newest first, filtered by date and result, up to 200 at a time with a cursor for the next page. |
log_bet | write | Records a bet you have placed, as pending. A stake past your limits is logged with a warning, not refused. |
settle_bet | write | Sets a bet's result by hand, or reopens it. Moneyline, spread and total bets on games Unitley tracks settle on their own; this is for the rest, and for corrections. |
save_recommendation | write | Saves a pick card to your Overview and Picks page. Unitley works out the implied chance, edge, EV and stake itself, from the price, the chance given and your bankroll. |
search_knowledge | read | Searches Unitley's own notes on how betting works, best match first, with a title, path and snippet for each. |
jev_classify | read | Answers set questions about text you already have, with Jev on your own TypeSafe key. The answers are unverified context and never about odds; 30 calls every 10 minutes. |
Odds
Prices come from The Odds API. FanDuel is the book Unitley shows, and the best price is checked across the other books it tracks. These tools read Unitley's own copy of the odds, except get_player_props, which can refresh one game's props.
get_week_slate
The games in a date range, soonest first, without prices. By default from 6 hours ago to 8 days ahead, and at most 14 days.
Changes nothing
Arguments
- sport
- nfl · optional · default "nfl"
- from
- date-time or date · optional
- to
- date-time or date · optional
What agents are told
The games between from and to (a date such as 2026-10-07, or a date and time), soonest first, without prices: by default from 6 hours ago to 8 days ahead, at most 14 days. Each game has its id, teams, kickoff (timeTbd when the time is not set), status, score, venue and when it was updated. Pass a game's id to get_game_odds, get_player_props, get_line_movement or get_game_weather. sport is optional (default nfl). truncated means the range held more than 200 games: narrow it. Show the attribution with any games or scores you pass on.
- Returns
sport,fromandto(the range it used, as timestamps),games,truncatedandattribution. - A
tobeforefromisinvalid_input. A range longer than 14 days islimit. - There are no prices here. Pass a game's
idtoget_game_oddsfor its lines.
get_game_odds
One game's FanDuel moneyline, spread and total: the chance each price implies, the best price at FanDuel's line across the books Unitley tracks, the no-vig consensus chance and FanDuel's EV at it, with the price's age.
Changes nothing
Arguments
- gameId
- uuid · required
What agents are told
One game's main lines by gameId: moneyline (h2h), spread and total, at FanDuel, the book Unitley shows. Each outcome has FanDuel's price and the chance it implies (vig included); best, the best price at FanDuel's line across the books Unitley tracks; fairProbability and fairAmericanOdds, the no-vig consensus; and expectedValue, FanDuel's EV at that chance (0.021 is +2.1% per 1 staked). consensusBooks counts the books in the consensus. A market FanDuel does not price is null. Every line says how old it is (updatedAgo): say so when it is hours old. Pass priceNote on with any price, and use the calc_ tools for any other math. attribution credits the game's details and score: show it with them.
- Returns
game,lines(h2h,spreadsandtotals),priceNoteandattribution. A market FanDuel does not price isnull. - An unknown
gameIdisnot_found: "That game was not found." - The math behind each outcome: No-vig odds and Expected value.
get_line_movement
How FanDuel's price and line moved in one market: the first and current price, the longest and shortest, and how many times it moved.
Changes nothing
Arguments
- gameId
- uuid · required
- market
- string · required
What agents are told
How FanDuel's price for one market of one game has moved, by gameId and market (h2h, spreads, totals, or a prop market such as player_pass_yds). For each outcome: the first and current price and line, the longest and shortest price seen, and how many times it moved. truncated means the history was too long and its oldest points were left out, so the first point shown is not the opening line.
- FanDuel only: the tool takes no bookmaker.
- Returns
gameId,market,bookmaker,truncatedandoutcomes. Each outcome hasopenandcurrent(each withobservedAt,americanOddsandpoint),longest,shortestandmoves. - A market with no recorded history returns an empty
outcomeslist. An unknowngameIdisnot_found.
get_player_props
One game's FanDuel player props (passing, rushing and receiving yards, anytime touchdown) with the same best price, no-vig chance and EV. In the 24 hours before kickoff a call can refresh them, from a limited quota everyone shares.
Changes nothing · Reaches outside Unitley
Arguments
- gameId
- uuid · required
What agents are told
FanDuel's player props for one game by gameId (passing, rushing and receiving yards, and anytime touchdown), each with its best price across books, the no-vig consensus and EV, as in get_game_odds. Unitley fetches a game's props on request in the 24 hours before kickoff, sharing a limited odds quota. note is null when this call fetched them; otherwise it says why no fetch was made (already current, too early, or the quota is being saved), and the props already on file come back with their age. Pass note and priceNote on. truncated means some props were left out.
- Returns
gameId,fetch,note,props,truncatedandpriceNote.fetch.statusisfetched,skipped(with areason) orerror. The props already on file come back either way. - Props come from a limited odds quota that every Unitley user shares. A game's props are fetched on request: the first call in the 24 hours before kickoff fetches them, and a call in the last 3 hours can refresh them once when the quota allows. Every user then reads that same copy.
noteisnullwhen this call fetched the props. Otherwise it says why they were not fetched or refreshed: props are not offered for the sport yet, it is too early (or the kickoff time is not set), the game has started, the provider has not listed the game, they were already fetched (the note says when they are next refreshed, or that that fetch found none to show), the last fetch found none or failed (it is tried again an hour later), the provider never delivered them and Unitley stopped asking, the quota is being saved for the main lines, props are not set up yet, the odds provider did not answer, or another request is fetching them right now (try again in a moment).- A call that fetches, or waits for another request fetching, can take most of a minute. Give your client a tool-call timeout of at least 60 seconds.
- An unknown
gameIdisnot_found.
Stats and injuries
Season stats and injury reports for NFL teams and players. Each result carries an attribution: show it with any numbers you pass on.
get_team_stats
A team's season totals and per-game numbers, by team code (KC, SF).
Changes nothing
Arguments
- team
- string · required
- sport
- nfl · optional · default "nfl"
- season
- integer · optional · 1,990 to 2,100
What agents are told
A team's season stats by team code (KC, SF; older codes LA, WAS, JAC, OAK, SD and STL work too): games played, season totals and per-game numbers, for the latest season on file unless season is given. perGameWeeks lists any stat reported in fewer NFL weeks than games, with the NFL weeks its per-game number is over. Show the attribution with any numbers you pass on.
- Returns
sport,season,team,games,totals,perGame,perGameWeeks,sourceUpdatedAt,fetchedAt,updatedAgoandattribution. - A team or season with nothing on file is
not_found.
get_player_stats
A player's season numbers and last few games, by part of a name (up to 10 matches) or by playerId.
Changes nothing
Arguments
- sport
- nfl · optional · default "nfl"
- name
- string · optional
- playerId
- string · optional
- season
- integer · optional · 1,990 to 2,100
What agents are told
Players' season stats by name (part of it, any case: 'mahomes') or by playerId: team, position, games, season totals and the last few games for form. Up to 10 matches, newest season first unless season is given; when a name matches several players, ask which one, or pass the playerId. Show the attribution with any numbers you pass on.
- Returns
players(each with season totals andrecent, the last few games) andattribution. - Give a
name(2 to 60 characters) or aplayerId. Neither isinvalid_input: "Give a player's name or id." - A name that matches no one returns an empty
playerslist, not an error.
get_injury_report
Every player not cleared to play, for one team or the league: game status, practice status and reserve lists. Updated about twice a day, without game-day inactives.
Changes nothing
Arguments
- sport
- nfl · optional · default "nfl"
- team
- string · optional
What agents are told
The current injury report for one team (by team code, as in get_team_stats) or the whole league: every player not cleared to play, with position, status and detail. Statuses are the report's game status (Out, Doubtful, Questionable), a missed or limited practice with no game status, or a list that keeps the player off the active roster (Reserve list, PUP list, Suspended, Exempt list); the detail names the NFL week of the report or roster list. Teams whose season is over (missed the playoffs, knocked out, or the season played) are left out, while a playoff team on a bye keeps its last list; an empty list for a team left out is not a clean bill of health (the note says so). Injury data is updated about twice a day, so it can lag the latest news, and it does not cover game-day inactives: pass the note on with any analysis that leans on it, and show the attribution.
- Returns
sport,team,injuries(each withteam,player,position,status,detailandreportedAt),fetchedAt,updatedAgo,noteandattribution. noteis always there. It says how often the report updates, that it has no game-day inactives, and why a team's list is empty when its season is over.
Weather
The forecast over a game's window, from the venue's location.
get_game_weather
The forecast over a game: kickoff temperature, wind, gusts, rain and snow, from the National Weather Service or MET Norway, with closed and retractable roofs flagged. No forecast yet for games more than 7 days out.
Changes nothing
Arguments
- gameId
- uuid · required
What agents are told
The forecast for one game by gameId: temperature at kickoff, the highest wind, gusts and chance of precipitation over the game, expected rain and snow, and the wind direction, from the National Weather Service (US venues) or MET Norway. Says when the venue has a closed roof (weather does not matter), when the roof is retractable (decided about 90 minutes before kickoff) and when no forecast is on file yet (games more than 7 days out). Wind and precipitation matter most for totals and kicking. Show the attribution with any forecast you pass on.
- Returns
gameId,sport,kickoff,venue,status,forecast,roofNote,noteandattribution. statusisindoor(a closed roof),forecastornot_available. Withnot_available,notesays why. Forecasts are kept for games up to 7 days out and refreshed every 3 hours.forecast.staleis true when the kickoff time changed after the forecast was taken.- An unknown
gameIdisnot_found.
Betting math
Calculators that need no data. Out-of-range input, such as American odds between −100 and +100, is invalid_input. Each entry in issues has the field's path and a message. calc_kelly_stake also reads your bankroll.
calc_implied_probability
American odds to decimal odds and the chance the price implies, vig included.
Changes nothing
Arguments
- americanOdds
- integer · required · -100,000 to 1,000,000
What agents are told
Converts American odds to decimal odds and the win probability the price implies, vig included. Example: -110 is 1.909 in decimal and 52.4%.
- Returns
americanOdds,decimalOddsandimpliedProbability. - See Implied probability.
calc_no_vig_odds
Takes the margin out of one market: the overround, and each outcome's fair chance and fair odds.
Changes nothing
Arguments
- prices
- integer[] · required · 2 to 20 items
- method
- multiplicative | power · optional · default "multiplicative"
What agents are told
Removes the bookmaker's margin from one market. Pass every outcome's American price in that market (both sides of a moneyline, spread or total; three with a draw). Returns the overround and each outcome's fair probability and fair odds. method is multiplicative (the default) or power.
- Returns
method,overroundandoutcomes. Each outcome hasamericanOdds,impliedProbability,fairProbability,fairDecimalOddsandfairAmericanOdds. - See No-vig odds.
calc_ev
The expected value of a bet at your chance: the edge over the price, EV in dollars and EV per dollar staked.
Changes nothing
Arguments
- probability
- number · required · 0 to 1
- americanOdds
- integer · required · -100,000 to 1,000,000
- stake
- number · optional · default 100 · 0 to 10,000,000
What agents are told
Expected value of a bet at American odds, given the win probability you estimate (0 to 1). Returns the edge over the price's implied probability, the EV in dollars for the stake (default $100) and the EV per dollar staked (0.05 is +5%).
- Returns
probability,americanOdds,decimalOdds,impliedProbability,edge,stake,expectedValueandexpectedValuePercent. - See Expected value.
calc_kelly_stake
A stake sized to your bankroll: your risk profile's fraction of Kelly, held under its cap, your max stake and the room left under your loss limits.
Changes nothing
Arguments
- probability
- number · required · 0 to 1
- americanOdds
- integer · required · -100,000 to 1,000,000
What agents are told
Suggested stake for a bet, sized to the user's own bankroll in Unitley: their risk profile's fraction of Kelly (never full Kelly), held under the profile's cap, their max stake and the room left under their daily and weekly loss limits. Returns the stake in dollars, the share of the bankroll and which caps applied. Needs the user's bankroll to be set up.
- Returns
stake,kellyShare,bankroll,appliedCaps,riskProfileandkellyLabel. appliedCapslists what held the stake down:profile_cap,max_stake,daily_loss_limit,weekly_loss_limit,no_edgeorbankroll_empty.- With no bankroll set up, it is
not_found: "Set up your bankroll first (Settings → Bankroll), then Unitley can size stakes." See Kelly and stake caps.
calc_parlay
A parlay of 2 to 25 legs: combined odds and implied chance and, with your chance on every leg, the combined chance and EV. Legs on one game are flagged.
Changes nothing
Arguments
- legs
- object[] · required · 2 to 25 itemsEach item:
americanOdds(required);probability,gameId,label(optional).
What agents are told
Combined odds of a parlay of 2 to 25 legs. Each leg takes American odds and, optionally, your win probability, the game id and a label. Returns the parlay's decimal and American odds and implied probability; with a probability on every leg, the combined probability and EV too. Legs on the same game get a correlation warning, since their combined chance is then unreliable.
- Returns
legs,decimalOdds,americanOdds,impliedProbability,combinedProbability,expectedValuePercentandcorrelationWarnings. combinedProbabilityandexpectedValuePercentarenullunless every leg has aprobability.- Two or more legs with the same
gameIdget a warning that names them, since legs on one game are not independent.
Bankroll and bets
Your own bankroll and bet log. These tools act only on the account the token belongs to.
get_bankroll
Your bankroll, unit, risk profile, ROI, profit over the last 24 hours and the last 7 days, max stake, and the room left under each loss limit.
Changes nothing
Arguments
Takes no arguments.
What agents are told
The user's bankroll in Unitley: the current amount, unit size, risk profile (its Kelly fraction and stake cap as a share of the bankroll), ROI, settled and open totals, the profit over the last 24 hours and the last 7 days, their max stake, and their daily and weekly loss limits. room.daily and room.weekly are how much more they can lose over the last 24 hours and the last 7 days: the limit, less what they already lost in that window, less every open bet's stake. A loss limit caps what can be lost in its window; it does not set any of the bankroll aside. Keep every suggested stake within the max stake and the room. Says so when the bankroll is not set up yet.
- With no bankroll set up, it returns
status: "not_set_up"and amessage, not an error. - Otherwise
statusisready, with the amounts,unitSize,roiandroom(dailyandweekly). See Bankroll and risk profiles. - Each
roomis how much more can be lost in that loss limit's window, counting open bets as lost, ornullwith no limit. It caps a stake; it doesn't set any of the bankroll aside.
get_bet_log
Your bets, newest first, filtered by date and result, up to 200 at a time with a cursor for the next page.
Changes nothing
Arguments
- from
- date-time or date · optional
- to
- date-time or date · optional
- result
- pending | won | lost | push | void · optional
- limit
- integer · optional · default 50 · 1 to 200
- cursor
- string · optional · up to 200 characters
What agents are told
The user's logged bets, newest first: selection, market, price, stake, result and profit. Filter by from and to (a date such as 2026-10-07, or a date and time) and by result (pending, won, lost, push or void). Returns up to limit bets (1 to 200, default 50); pass nextCursor back as cursor for the next page.
- Returns
betsandnextCursor.nextCursorisnullon the last page.
log_bet
Records a bet you have placed, as pending. A stake past your limits is logged with a warning, not refused.
Adds new data
Arguments
- market
- h2h | spreads | totals | player_prop | parlay | other · required
- selection
- string · required · up to 200 characters
- americanOdds
- integer · required · -100,000 to 1,000,000
- stake
- number · required · above 0, up to 10,000,000
- sport
- nfl · optional · default "nfl"
- gameId
- uuid · optional · or null
- placedAt
- date-time · optional
- bookmaker
- string · optional · default "fanduel"
- side
- home | away | over | under | draw · optional · or null
- point
- number · optional · -999 to 999 · or null
- recommendationId
- uuid · optional · or null
- notes
- string · optional · up to 1,000 characters · or null
- legs
- object[] · optional · 2 to 25 items · or nullEach item:
selection,americanOdds(required);gameId,market,side,point(optional).
What agents are told
Logs a bet the user has placed, as pending. Only when the user says they placed it: never log a bet on your own. Takes market (h2h, spreads, totals, player_prop, parlay or other), selection (what the bet is on, such as 'KC -3'), americanOdds and stake in dollars; optionally gameId (a game in the bet's sport), side, point, bookmaker (default fanduel), placedAt, recommendationId (the saved card it follows), notes, and legs for a parlay. Returns the bet, with a warning for each limit the stake goes past (max stake, daily or weekly loss limit). It warns rather than refuses, so pass the warnings on.
- Needs a token with write access.
- Returns
betandwarnings. Each warning has acode(max_stake,daily_loss_limitorweekly_loss_limit) and amessage. The loss-limit room counts your open bets. - A
placedAtmore than 5 minutes in the future isinvalid_input: "A bet cannot be placed in the future."legsare for a parlay only, 2 to 25 of them. - An unknown
gameIdorrecommendationIdisnot_found; for the game,issueshas one entry, ongameId. AgameIdin a different sport fromsportisinvalid_input, also marked ongameId: "That game is in another sport. Pass the game's sport, or leave the game out." - An account holds up to 10,000 bets, and past that it is
limit: "You can log up to 10,000 bets. Delete ones you no longer need on the Bet Log page, then try again."
settle_bet
Sets a bet's result by hand, or reopens it. Moneyline, spread and total bets on games Unitley tracks settle on their own; this is for the rest, and for corrections.
Updates saved data · Safe to repeat
Arguments
- betId
- uuid · required
- result
- pending | won | lost | push | void · required
What agents are told
Sets the result of one of the user's bets by hand: won, lost, push or void, or pending to reopen it. Moneyline, spread and total bets on games Unitley tracks settle on their own after the final score; use this for the rest (props, parlays, bets not tied to a game), or to correct one, and only when the user asks.
- Needs a token with write access.
- Offered over MCP and the REST API only. In the console, you settle a bet on the Bet Log page.
- Moneyline, spread and total bets on games Unitley tracks settle on their own after the final score, with
settledByauto. A canceled game voids them.settle_betis for the rest (props, parlays and bets not tied to a game), or to correct a result. - Returns the bet, with
settledAtset to now andsettledByuser.pendingreopens a settled bet and clears both. An unknownbetIdisnot_found: "That bet was not found."
Picks
Saved pick cards, the ones you see on the Picks page.
save_recommendation
Saves a pick card to your Overview and Picks page. Unitley works out the implied chance, edge, EV and stake itself, from the price, the chance given and your bankroll.
Adds new data
Arguments
- market
- h2h | spreads | totals | player_prop | parlay | other · required
- pick
- string · required · up to 200 characters
- americanOdds
- integer · required · -100,000 to 1,000,000
- modelProbability
- number · required · 0 to 1
- confidence
- low | medium | high · required
- sport
- nfl · optional · default "nfl"
- gameId
- uuid · optional · or null
- side
- home | away | over | under | draw · optional · or null
- point
- number · optional · -999 to 999 · or null
- bookmaker
- string · optional · default "fanduel"
- oddsSource
- odds_api | user · optional · default "user"
- oddsAsOf
- date-time · optional · or null
- why
- string[] · optional · default [] · up to 10 items
- risks
- string[] · optional · default [] · up to 10 items
- sources
- object[] · optional · up to 10 itemsEach item:
url(required);title(optional).
What agents are told
Saves a pick as a recommendation card on the user's Unitley Overview and picks history, for picks the user wants kept. Takes market (h2h, spreads, totals, player_prop, parlay or other), pick (such as 'KC -3'), americanOdds, modelProbability (your win chance for the pick, between 0 and 1) and confidence (low, medium or high); optionally sport, gameId, side, point, bookmaker (default fanduel), oddsSource (odds_api for a price from get_game_odds or get_player_props, with oddsAsOf its fetchedAt; user, the default, for a price the user gave) and why and risks (up to 10 short lines each). Unitley works out the implied probability, edge, EV and suggested stake itself, from the price, your probability and the user's bankroll and limits, and returns the saved card. No outside source can be cited yet: leave sources empty, and put any research of your own in why, marked as unverified. Needs the user's bankroll to be set up.
- Needs a token with write access.
- Unitley works out the implied probability, edge, EV and stake itself. Any such values in the request are ignored. The card records where it came from (MCP or the REST API) and your client's name.
whyandriskstake up to 10 lines each, of up to 400 characters, and each list stays under 4,000 bytes in all. No outside source is on the allowed list yet, so a link insourcesisinvalid_input.- With no bankroll set up, it is
not_found. An account holds up to 5,000 saved recommendations, and past that it islimit. Delete old ones on the Picks page.
Knowledge
Unitley's own notes on how betting works. The same notes are MCP resources.
search_knowledge
Searches Unitley's own notes on how betting works, best match first, with a title, path and snippet for each.
Changes nothing
Arguments
- query
- string · required · 2 to 200 characters
- sport
- nfl · optional · default "nfl"
- limit
- integer · optional · default 5 · 1 to 20
What agents are told
Searches Unitley's own betting notes on concepts and methods for the sport (sport is optional, default nfl) and its general notes, best match first: each result's title, path and a snippet, up to limit (1 to 20, default 5). Returns no results when nothing matches. For how betting works only: current odds, stats, injuries and weather come from the other tools.
- Returns
results, each withtitle,path,sport,snippetandscore. - Over MCP, you can also read a whole note as a resource. See Resources.
Research
Optional tools that run on a key you add yourself.
jev_classify
Answers set questions about text you already have, with Jev on your own TypeSafe key. The answers are unverified context and never about odds; 30 calls every 10 minutes.
Changes nothing · Reaches outside Unitley
Arguments
- text
- string · required · up to 20,000 characters
- sourceUrl
- string · required · up to 2,048 characters
- questions
- object[] · required · 1 to 10 items · each one of: yes_no, choice, scoreEach item:
type,id,question(required);yesMeans,noMeans,options,levels(optional).
What agents are told
Answers set questions about text you already have (a page you read, or text the user pasted), using Jev (TypeSafe) on the user's own TypeSafe key. Pass the text (up to 20,000 characters, the relevant part of the page), sourceUrl (the page it came from; never a social media or sportsbook site) and 1 to 10 questions, each with its own id: yes_no (optionally yesMeans and noMeans), choice (2 to 20 options) or score (2 to 10 levels, lowest first, such as Out, Doubtful, Questionable, Full go). Each answer comes back with its probabilities. The answers say only what that text claims: they are unverified context, so label them so. Never ask about odds or prices; odds, stats, injuries and weather come from Unitley's other tools. Limited to 30 calls every 10 minutes.
- Runs on your own TypeSafe key, added under Settings → AI providers. With no key saved, it is
unavailable. TypeSafe bills that key for each call. - Limited to 30 every 10 minutes per user, on top of the other rate limits. A call with invalid input, or with no key saved, does not spend that budget.
- Returns
untrusted,notice,source,model,answersandinputTokens. The answers are what the text claims, not checked facts. See Jev.