Skip to content
DocsUnitley Docs home
MCP reference

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, POST the 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.

ToolScopeWhat it does
get_week_slatereadThe 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_oddsreadOne 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_movementreadHow 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_propsreadOne 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_statsreadA team's season totals and per-game numbers, by team code (KC, SF).
get_player_statsreadA player's season numbers and last few games, by part of a name (up to 10 matches) or by playerId.
get_injury_reportreadEvery 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_weatherreadThe 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_probabilityreadAmerican odds to decimal odds and the chance the price implies, vig included.
calc_no_vig_oddsreadTakes the margin out of one market: the overround, and each outcome's fair chance and fair odds.
calc_evreadThe expected value of a bet at your chance: the edge over the price, EV in dollars and EV per dollar staked.
calc_kelly_stakereadA 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_parlayreadA 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_bankrollreadYour 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_logreadYour bets, newest first, filtered by date and result, up to 200 at a time with a cursor for the next page.
log_betwriteRecords a bet you have placed, as pending. A stake past your limits is logged with a warning, not refused.
settle_betwriteSets 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_recommendationwriteSaves 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_knowledgereadSearches Unitley's own notes on how betting works, best match first, with a title, path and snippet for each.
jev_classifyreadAnswers 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

Game scheduleRead

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, from and to (the range it used, as timestamps), games, truncated and attribution.
  • A to before from is invalid_input. A range longer than 14 days is limit.
  • There are no prices here. Pass a game's id to get_game_odds for its lines.

get_game_odds

Game oddsRead

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, spreads and totals), priceNote and attribution. A market FanDuel does not price is null.
  • An unknown gameId is not_found: "That game was not found."
  • The math behind each outcome: No-vig odds and Expected value.

get_line_movement

Line movementRead

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, truncated and outcomes. Each outcome has open and current (each with observedAt, americanOdds and point), longest, shortest and moves.
  • A market with no recorded history returns an empty outcomes list. An unknown gameId is not_found.

get_player_props

Player propsRead

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, truncated and priceNote. fetch.status is fetched, skipped (with a reason) or error. 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.
  • note is null when 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 gameId is not_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

Team statsRead

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, updatedAgo and attribution.
  • A team or season with nothing on file is not_found.

get_player_stats

Player statsRead

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 and recent, the last few games) and attribution.
  • Give a name (2 to 60 characters) or a playerId. Neither is invalid_input: "Give a player's name or id."
  • A name that matches no one returns an empty players list, not an error.

get_injury_report

Injury reportRead

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 with team, player, position, status, detail and reportedAt), fetchedAt, updatedAgo, note and attribution.
  • note is 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

Game weatherRead

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, note and attribution.
  • status is indoor (a closed roof), forecast or not_available. With not_available, note says why. Forecasts are kept for games up to 7 days out and refreshed every 3 hours.
  • forecast.stale is true when the kickoff time changed after the forecast was taken.
  • An unknown gameId is not_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

Implied probabilityRead

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%.

calc_no_vig_odds

No-vig fair oddsRead

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, overround and outcomes. Each outcome has americanOdds, impliedProbability, fairProbability, fairDecimalOdds and fairAmericanOdds.
  • See No-vig odds.

calc_ev

Expected valueRead

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, expectedValue and expectedValuePercent.
  • See Expected value.

calc_kelly_stake

Suggested stakeRead

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, riskProfile and kellyLabel.
  • appliedCaps lists what held the stake down: profile_cap, max_stake, daily_loss_limit, weekly_loss_limit, no_edge or bankroll_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

Parlay oddsRead

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, expectedValuePercent and correlationWarnings.
  • combinedProbability and expectedValuePercent are null unless every leg has a probability.
  • Two or more legs with the same gameId get 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

BankrollRead

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 a message, not an error.
  • Otherwise status is ready, with the amounts, unitSize, roi and room (daily and weekly). See Bankroll and risk profiles.
  • Each room is how much more can be lost in that loss limit's window, counting open bets as lost, or null with no limit. It caps a stake; it doesn't set any of the bankroll aside.

get_bet_log

Bet logRead

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 bets and nextCursor. nextCursor is null on the last page.

log_bet

Log a betNeeds write

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 bet and warnings. Each warning has a code (max_stake, daily_loss_limit or weekly_loss_limit) and a message. The loss-limit room counts your open bets.
  • A placedAt more than 5 minutes in the future is invalid_input: "A bet cannot be placed in the future." legs are for a parlay only, 2 to 25 of them.
  • An unknown gameId or recommendationId is not_found; for the game, issues has one entry, on gameId. A gameId in a different sport from sport is invalid_input, also marked on gameId: "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

Settle a betNeeds writeNot in the web analyst

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 settledBy auto. A canceled game voids them. settle_bet is for the rest (props, parlays and bets not tied to a game), or to correct a result.
  • Returns the bet, with settledAt set to now and settledBy user. pending reopens a settled bet and clears both. An unknown betId is not_found: "That bet was not found."

Picks

Saved pick cards, the ones you see on the Picks page.

save_recommendation

Save a recommendationNeeds 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.

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.
  • why and risks take 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 in sources is invalid_input.
  • With no bankroll set up, it is not_found. An account holds up to 5,000 saved recommendations, and past that it is limit. Delete old ones on the Picks page.

Knowledge

Unitley's own notes on how betting works. The same notes are MCP resources.

search_knowledge

Search Unitley's notesRead

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 with title, path, sport, snippet and score.
  • 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

Classify text with JevRead

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, answers and inputTokens. The answers are what the text claims, not checked facts. See Jev.

21+ · Gambling problem? Call 1-800-GAMBLER or visit ncpgambling.org

Unitley is an analysis tool, not a sportsbook: it takes no bets and holds no money. Nothing in these docs is a guarantee or financial advice. Only bet where it is legal for you. Unitley is not affiliated with the NFL, its teams, or any sportsbook.

©︎ 2026 Unitley · Analysis, not a guarantee.