Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the MoviOdds bet365 Odds API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fmoviodds.com%2Fmoviodds" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fmoviodds.com%2Fmoviodds" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with MoviOdds bet365 Odds API.
Load the current bet365 odds board for a sport, optionally filtered to in-play matches and chosen market groups
Find a match's fixture id from the catalogue of pre-match and in-play matches with league and kickoff
Read a selection's recorded price timeline between from and to timestamps for closing-line and movement analysis
Get each selection's pre-match close and last recorded price for a fixture
GET STARTED
List outright futures markets such as golf tournament winners, Super Bowl, and league top goalscorer
Retrieve finished-match results with final and per-period scores by sport and UTC date
Price Bet Builder slips of 2 to 12 legs from one pre-match match at bet365's combined odds
Patterns agents use MoviOdds bet365 Odds API for, with concrete tasks.
★ AI betting research agent reading live odds
An AI agent answering 'what are the odds for tonight's match' needs a structured board, not a scraped page. Through Jentic the agent searches for 'get current odds for a match', loads the MoviOdds snapshot operation with its input schema, and calls it with the fixture id it found in the catalogue. The response lists every priced selection with odds_dec, odds_frac, side, line, and a suspended flag, so the agent can quote prices and their last-change time accurately.
Call GET /catalog with sport=soccer to find a fixture id, then GET /snapshot with that fi and report the Full Time Result prices
Closing line value tracking
A bettor measuring whether their picks beat the market compares the price they took with the closing line. MoviOdds returns, for each selection of a fixture, the pre_close point recorded at or before kickoff and the last recorded price, plus a pre_close_basis field explaining how the close was found. The full timeline is available from the history route when the bettor wants to see how the price moved into kickoff.
Call GET /closing with fi set to a fixture id and compare each selection's pre_close odds_dec with a recorded bet price
Settling bets from match results
A tracker that records bets needs final scores to settle them. MoviOdds serves finished matches with the final score, per-period scores where available (halves, sets, quarters, periods, innings), a status of finished or unknown, and the finish time, filtered by sport and UTC date or a single fixture id.
Call GET /results with sport=tennis and date=2026-11-08 and mark each tracked bet as won or lost from the final set scores
Pricing correlated Bet Builder slips
A Bet Builder price is not the single odds multiplied together, because bet365 adjusts for linked legs. The MoviOdds Bet Builder route takes up to 50 slips, each with a fixture and 2 to 12 sel_id legs from one pre-match match, and returns bet365's combined price for each slip. It needs an API key sent in the X-API-Key header.
Call GET /snapshot for a fixture to collect three sel_id values, then POST /betbuilder/price with slips containing that fixture and those legs
9 endpoints — the moviodds bet365 odds api returns every market bet365 prices for a match, pre-match and in-play, across soccer, tennis, basketball, american football, ice hockey, baseball, rugby, cricket, australian rules, and more.
METHOD
PATH
DESCRIPTION
/odds
Get every match with current odds
/catalog
List catalogued matches without odds
/snapshot
Get one match's current odds
/history
Get a selection's recorded price timeline
/closing
Get each selection's closing line
/outrights
List outright futures markets
/results
Get finished-match results
/betbuilder/price
Price Bet Builder slips
/odds
Get every match with current odds
/catalog
List catalogued matches without odds
/snapshot
Get one match's current odds
/history
Get a selection's recorded price timeline
/closing
Get each selection's closing line
/outrights
List outright futures markets
/results
Get finished-match results
/betbuilder/price
Price Bet Builder slips
What agents get from Jentic-routed access to this vendor.
Setup
Wiring MoviOdds by hand means mapping market group ids like 40 and 1777, joining fixture ids across pre-match and live, respecting per-IP limits, and attaching an X-API-Key only on the Bet Builder route. Through Jentic you install once, import MoviOdds from the API Directory, store the key once, and your agent calls it.
Permission scoping
MoviOdds carries the fixture id as a query parameter and the Bet Builder legs in the request body, so rules bound which operations your agent may call, not which match. You choose the operations it may call, so the keyed POST /betbuilder/price route is not included unless you add it.
Credential isolation
Your MoviOdds Bet Builder key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'get current odds for a match' or 'price a bet builder slip', and Jentic returns the matching MoviOdds operation with its input schema, including the fi, sport, and groups parameters, so the agent calls the right route directly.
Alternatives and complements available in the Jentic catalogue.
Specific to using MoviOdds bet365 Odds API through Jentic.
What authentication does the MoviOdds bet365 Odds API use?
Per its OpenAPI spec, the odds, catalogue, snapshot, history, closing, outrights, results, and health routes are open and need no key. POST /betbuilder/price is the one route that declares an API key, sent in the X-API-Key header. Through Jentic that key is held by your own instance and attached at call time, so the agent never sees it.
What are the rate limits for the MoviOdds bet365 Odds API?
The OpenAPI spec states 300 requests per minute per IP on GET /odds and 120 requests per minute per IP on GET /history, and recommends the WebSocket at wss://moviodds.com/ws over polling for live updates. A busy archive read on the history route answers 503 with a Retry-After header. See https://moviodds.com/doc for the stream protocol.
Can I get in-play odds for only one market with the MoviOdds API?
Yes. GET /odds accepts in_play=1 to return only matches currently in play, and a comma-separated groups filter of market group ids. For soccer Full Time Result the group is 40 before kickoff and 1777 in play, so groups=1777 with in_play=1 returns just live match-result prices.
How do I read a match's closing line through Jentic?
Search Jentic for 'get the closing odds for a match', load the GET /closing operation, and execute it with fi set to the fixture id from GET /catalog. Each selection comes back with its pre_close and last price points. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Can I limit what my agent is allowed to do with the MoviOdds API?
Yes. Write a rule that allows only GET /odds, GET /catalog, and GET /snapshot, and the agent can read boards and single matches but cannot spend your keyed Bet Builder quota on POST /betbuilder/price. Every call it makes is logged so you can see which matches it looked up.
Is MoviOdds an official bet365 API?
No. MoviOdds is an independent project and is not affiliated with or endorsed by bet365. It serves bet365 prices only, so it is not a multi-bookmaker comparison feed, and it does not place bets.
For Agents
Read bet365 pre-match and in-play odds, price history, closing lines, outright futures, and match results from MoviOdds, and price Bet Builder slips with an API key.
Use for: Get the current bet365 odds for today's soccer matches, List all tennis matches currently in play with their odds, Retrieve the closing line for a finished match, Find the price history of a selection over the last day
Not supported: Does not place bets, compare other bookmakers, or provide team statistics and lineups. Use for reading bet365 odds, price history, outrights, and results only.
The MoviOdds bet365 Odds API returns every market bet365 prices for a match, pre-match and in-play, across soccer, tennis, basketball, American football, ice hockey, baseball, rugby, cricket, Australian rules, and more. Clients load the current board, list catalogued matches to find a fixture id, pull one match's snapshot, and read a selection's recorded price timeline or its pre-match closing line. Outright futures markets and finished-match results with per-period scores are also served, and a keyed Bet Builder route returns bet365's combined price for multi-leg slips. MoviOdds is an independent project and is not affiliated with bet365.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>