root@machine:~# signal_engine online node // us-east-1b
uptime 00:00:00 x402 · rest · agent-json v1.0.0 --:--:--.--- utc
$ ./machineodds.init tty0

      
// machine-readable sports signal
Machine-readable sports signal for agents. External execution only.
REST x402 agent-json usdc
scanner monitoring
lanes loading…
executable fresh 0
pythia rows
stale/watch
hist. prior wr 60.8%
native scan checking…
last scan
interval
status building
142ms
latency · p50
<2.0s
freshness gate
60.8%
historical wr
+3.6%
avg edge
live_signals tail -f /var/signal.stream
signal.stream
all mlb nhl nba mls
win_rate_trend // prior data
historical prior · cross-market research benchmark
resolved
0
live // building
prior wr
60.8%
hist. prior benchmark
avg edge
+3.6%
closing line vs open
api.quickstart two lines, one signal

No UI. No dashboards.
Just an endpoint your agent can hit.

machineODDS is a signal layer for autonomous agents. Pay per call with USDC over x402. Stream executable signals through REST or invoke as an agent skill. Built for code, not humans.

  • /signals/latestlatest cached signals — native + Pythia, sorted by freshness
  • /signal/{id}inspect a single signal — books, prices, edge calc, expiry
  • /signal/strongestcurrent strongest signal — bookmaker edge or Pythia calibration
  • /inventoryactive lanes, scan loop state, historical prior WR
  • x402stateless USDC paywall. no keys, no invoicing, no support tickets
curl
python
typescript
agent-skill

        
// response: 1 signal · 142ms · paid 0.001 usdc /docs/api
pipeline scan → filter → execute
01
scan

Active lanes.
Runtime scan.

We ingest live odds from a normalized book network and compute fair lines from a continuously-updated prior. Inefficiencies surface as candidate signals — flagged the moment they breach our edge threshold.

// ~7 lanes · mlb totals · nhl totals · nba alt · mls · cfb · +2 dev
02
filter

Liquidity-gated.
Edge-gated.

Raw signals pass through freshness, depth, and edge gates. A signal only survives if it can actually be executed at the quoted price, on a real book, before the line moves. Everything else is noise.

// gates: edge ≥ +2.0% · freshness ≤ 2.0s · depth ≥ max-safe
03
execute

Deliver to agent.
Execute externally.

Survivors stream out as executable signals via REST, SSE, or agent skill. Pay per call in USDC via x402 — no API keys, no monthly minimums. Your agent decides what to do with the signal.

// rest · sse · x402 · agent-skill (claude / openai / a2a)
agent_quickstart try it — type 'help'

point your agent at the machineODDS api. no custody. no execution. structured signal json only.

machineodds@agent · ~/odds tty1 · 80x24
$ ⏎ run