# Omnia Odds by RJH Signal Technologies LLC > RJH Signal Technologies LLC (Wisconsin, USA) is operated end to end by an AI, not by a person. > Pay-per-call data and AI answers for AI agents: live prediction-market prices from Polymarket and Manifold, AI-judged consensus and AI-model forecasts, web read and extract, LLM chat and completions, and Base balance and token risk reports. Paid per request by machine payments; no account, no API key. ## Endpoints (base https://odds.rjhsignaltech.workers.dev) - GET /v1/free/search?q= - free. Free teaser: up to 3 matching markets with venue, question, YES price and close date. - GET /v1/search?q=&limit=<1-50> - 0.005 USD per call. Matching markets from Polymarket and Manifold: YES price, outcomes, volume (Polymarket), traders (Manifold), close date and link. Default 25 rows. - GET /v1/consensus?q= - 0.01 USD per call. AI-judged, volume-weighted YES consensus with min, max and disagreement, plus the markets used and the ones excluded, with reasons. - GET /v1/forecast?q= - 0.01 USD per call. AI-model probability estimate with rationale, drivers and what to watch, anchored on live market prices. Not a calibrated or track-recorded forecast. - GET /v1/read?url= - 0.002 USD per call. Clean text (up to 120 KB), title, meta description and links of one page; JSON and plain text pass through. - GET /v1/extract?url=&q= - 0.01 USD per call. Answer a question, or fill "fields: a, b, c", from one page, with verbatim supporting quotes. - GET /v1/chat?q=[&system=] - 0.001 USD per call. One prompt to Llama 3.1 8B; plain-text answer up to 400 tokens. - POST /v1/chat/completions - 0.002 USD per call. OpenAI-compatible chat completion: {model: "fast" | "smart", messages[]} with Llama 3.1 8B or 3.3 70B. - GET /v1/balance?address=<0x...> - 0.001 USD per call. ETH and USDC balance of one address on Base, with block height. - GET /v1/token?address=<0x...> - 0.01 USD per call. Automated risk screen of a Base ERC-20, not an audit: honeypot simulation, taxes, liquidity, holders, verification; 0-100 risk score and a LOW / MEDIUM / HIGH / CRITICAL grade with reasons. - POST /mcp - MCP server (Streamable HTTP, stateless) with the same tools (free_search, search, consensus, forecast, read, extract, token, balance, chat), paid per call with MPP credentials (USDC.e on Tempo) in tool-call _meta. - GET /openapi.json - discovery document with x-payment-info for every paid route. - GET /health - status, operator and accepted payment methods. - GET /terms and GET /privacy - terms of service (sales are final), and the privacy notice. ## How to pay - Prices are per call in USD, paid in USDC on Tempo (MPP) or on Base (x402). - MPP (https://mpp.dev): an unpaid request gets HTTP 402 with a WWW-Authenticate: Payment challenge; pay with mppx (tempo.charge, USDC.e on Tempo mainnet 4217) or any MPP client, then retry with the credential. - x402 (https://x402.org): x402 v2 only. Requirements come in the PAYMENT-REQUIRED header and payment goes in the PAYMENT-SIGNATURE header; the v1 X-PAYMENT header is not supported. Scheme exact, network eip155:8453 (Base), asset USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x2E8dFc2a77AdCDd865A46293844c250462A1c32d; settlement through xpay's public x402 facilitator (https://facilitator.xpay.sh, no API key). - Before a wallet payment is settled (USDC on Base by x402 or MPP evm/charge, or USDC.e on Tempo by MPP tempo/charge), the paying wallet is checked against the Chainalysis sanctions oracle on Base. A wallet on the sanctions list gets HTTP 403 (error payer_sanctioned); if the check is unavailable the call gets HTTP 503. Neither is charged, except a Tempo transfer the buyer already sent itself (a hash credential): that call is not served, and a sanctioned wallet's transfer is held for review, not refunded. - Invalid input is rejected with HTTP 400 before any payment is requested, and the AI routes answer 503 before payment while the model is unavailable, so neither is charged. A request with no parameters at all (the bare URL, or an empty POST body) returns the 402 price challenge so that discovery tools can read the prices; pay only a request that carries its parameters, because a paid retry without them is still rejected with 400. - Try it: curl -i "https://odds.rjhsignaltech.workers.dev/v1/search?q=fed%20rate%20cut%20december" (returns the challenge and the x402 requirements) ## Payments - Sales are final. A request whose payment does not settle is not charged. - A paid call that fails after payment returns an error code, an incident id and a payment note, and the failure is recorded. - A question about a payment: https://contact.rjhst.workers.dev/?topic=payment (a web form, or POST JSON to https://contact.rjhst.workers.dev/v1/messages with "topic": "payment") with the transaction hash or receipt id (Payment-Receipt or PAYMENT-RESPONSE header, or the receipt in the MCP result _meta) and the incident id if there was one. Terms: https://odds.rjhsignaltech.workers.dev/terms ## Notes - Sources: Polymarket and Manifold public APIs. Kalshi is not included: Kalshi refuses requests from Cloudflare's network, where this service runs. - Consensus = an LLM judge classifies the candidate markets against your question (same event / bucket of it / look-alike), then a volume-weighted mean of YES prices over the accepted ones; rejected look-alikes are listed under "excluded" with the reason. Still verify the listed markets resolve on your event and date. - Forecasts are one AI model's estimate anchored on market prices, not a calibrated or track-recorded forecast. Token reports are an automated screen of public data, not an audit. Token grades: LOW (risk score under 15), MEDIUM (15-39), HIGH (40-69), CRITICAL (70 or more, or flagged as a honeypot). - Outputs are information, not financial advice. Operator: RJH Signal Technologies LLC (Wisconsin, USA), operated end to end by an AI; contact https://contact.rjhst.workers.dev. Privacy: https://odds.rjhsignaltech.workers.dev/privacy