Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the NegativeEV bet checker, 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%2Fnegativeev.com%2Fnegativeev" | 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%2Fnegativeev.com%2Fnegativeev" | 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 NegativeEV bet checker API.
Grade a bet written as plain text, such as a player prop with its American odds, against simulated outcomes of the game
Receive a verdict as a short text summary plus a structured data part carrying the full result
Check whether a simulated slate exists for the current game_date before spending a check
Read the caller's allowance: limit, used, remaining, and seconds until the window resets
GET STARTED
Mint, list, and revoke nev_ agent keys that carry a signed-in member's allowance
Patterns agents use NegativeEV bet checker API for, with concrete tasks.
★ Betting assistant that sanity-checks a bet
A user asks their AI assistant whether a bet is worth placing. Through Jentic the agent searches for 'grade a sports bet', loads the NegativeEV A2A SendMessage operation with its input schema, and sends the bet as the text part of a user message. The reply's text part summarises the verdict and its data part carries the full result, so the agent answers with the simulated win rate against the price's implied probability rather than an opinion.
Call GET /slate to confirm available is true, then POST /a2a with method SendMessage and the text 'Shohei Ohtani over 1.5 total bases -120', and report the verdict
Spending checks only when there is a slate
Checks are metered, anonymous callers per device per day and signed-in callers per hour, so an agent should not spend one on a day with no simulations. The slate operation answers before a bet is sent with available, game_date, and model_date, and the usage operation returns limit, used, remaining, and reset_in so the agent can tell the user when checks refill.
Call GET /usage and GET /slate, and only grade the bet if remaining is above zero and available is true
Agent keys for a member's own assistant
A signed-in NegativeEV member wants their own agent to run checks under their membership. With a Supabase session token they mint a named nev_ agent key, whose plaintext is shown once and stored only as a hash. Keys can be listed with their prefix and last_used_at, and revoked by id when an assistant is retired.
Call POST /keys with name 'betting-assistant', store the returned key, then later revoke it with POST /keys/revoke using its id
7 endpoints — the negativeev bet checker api grades a sports bet by simulating the game thousands of times, play by play, and comparing how often the bet would have won with the probability the sportsbook's price implies.
METHOD
PATH
DESCRIPTION
/a2a
Grade a bet via A2A SendMessage
/slate
Check for a simulated slate
/usage
Read remaining checks
/keys
Mint an agent key
/keys
List agent keys
/keys/revoke
Revoke an agent key
/a2a
Grade a bet via A2A SendMessage
/slate
Check for a simulated slate
/usage
Read remaining checks
/keys
Mint an agent key
/keys
List agent keys
/keys/revoke
Revoke an agent key
What agents get from Jentic-routed access to this vendor.
Setup
Wiring NegativeEV by hand means building A2A JSON-RPC envelopes with message ids and roles, telling a Supabase session token apart from a nev_ agent key, and reading the slate and allowance before each check. Through Jentic you install once, import NegativeEV from the API Directory, store the key once, and your agent calls it.
Permission scoping
NegativeEV carries the bet and the key id inside the request body, so rules bound which operations your agent may call, not which bet or key. Limit the agent to the operations it needs, such as grading and the slate check, so key minting and revocation are not included unless you add them.
Credential isolation
Your NegativeEV agent 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 'grade a sports bet' or 'check remaining bet checks', and Jentic returns the matching NegativeEV operation with its input schema so the agent sends a well-formed JSON-RPC message.
Alternatives and complements available in the Jentic catalogue.
Specific to using NegativeEV bet checker API through Jentic.
What authentication does the NegativeEV bet checker use?
Per its OpenAPI spec, the grading, slate, and usage operations can be called anonymously, metered per device, or with a bearer token that raises the allowance: either a Supabase access token (a JWT) or a nev_ agent key. The key-management operations under /keys require the Supabase session token, so a key can never mint another key. Through Jentic the token is stored encrypted by your own instance and attached per call.
How do I send a bet to be graded?
POST /a2a with a JSON-RPC 2.0 body whose method is SendMessage and whose message has a user-role text part holding the bet, for example 'Shohei Ohtani over 1.5 total bases -120'. The reply is an agent message: its text part summarises the verdict and its data part carries it in full.
What are the rate limits for the NegativeEV bet checker?
The spec meters checks rather than requests: anonymous callers get an allowance per device per day and signed-in callers per hour. It does not publish the numbers, but GET /usage returns your current limit, used, remaining, and reset_in, and a refused call returns an error code such as out_of_checks or rate_limited.
Is there a NegativeEV MCP server?
Yes - NegativeEV serves an MCP endpoint at POST /mcp with check_bet, get_slate, and get_usage tools. You can also connect it directly through Jentic: your agent gets the full 7-endpoint surface without loading another server's tool definitions into its context, your token is injected at call time by your self-hosted instance instead of living in a config file, and your rules decide which operations the agent may call.
How do I grade a bet with NegativeEV through Jentic?
Import NegativeEV from the API Directory in your Jentic One instance and store your nev_ agent key. Your agent searches for 'grade a sports bet', loads POST /a2a, and sends the bet as message text after a quick GET /slate. 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 NegativeEV?
Yes. Write a rule that allows only POST /a2a, GET /slate, and GET /usage, and the agent can grade bets and watch its allowance but cannot mint or revoke agent keys. Every call it makes is logged.
For Agents
Grade a sports bet against play-by-play game simulations, check whether today's slate has been simulated, and read the remaining check allowance.
Use for: Check whether Shohei Ohtani over 1.5 total bases at -120 is a good bet, I want to know if this sportsbook price is worse than the simulated probability, Is there a simulated slate to grade against today, How many bet checks do I have left
Not supported: Does not place bets, quote live odds, or hold sportsbook accounts. Use for grading a priced bet against game simulations only.
The NegativeEV bet checker API grades a sports bet by simulating the game thousands of times, play by play, and comparing how often the bet would have won with the probability the sportsbook's price implies. A bet such as 'Shohei Ohtani over 1.5 total bases -120' is sent as plain text in an A2A JSON-RPC SendMessage call, and the reply carries a text summary of the verdict plus a data part with the full result. Two GET operations report whether a simulated slate exists for the day and how many checks the caller has left, and signed-in members can mint and revoke nev_ agent keys.
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>