
Prediction Market Analyzer
Independent probability that a Polymarket or Kalshi market resolves Yes, checked against the live book. Pass a market (slug, URL, conditionId or Kalshi ticker) and/or news text: the agent reads the rules, end date and best asks, estimates 0-100 with live web search (falling back to model knowledge if search is slow), and returns verdict.action BUY_YES / BUY_NO / NO_TRADE with edge in bps after taker fees, a confidence gate, quarter-Kelly size and sourced factors for and against. Resolved markets return their outcome without a model call. Not financial advice.
What you get
A BUY_YES / BUY_NO / NO_TRADE call with the edge after fees and a quarter-Kelly stake per market, cheap enough to run on every news event or every open market a trading bot watches.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/predict-market. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/predict-market \
-H 'content-type: application/json' \
-d '{"market":"will-jd-vance-win-the-2028-us-presidential-election","minEdgePct":5,"bankrollUsd":10000}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
text | string; length 1..20000 | no | News excerpt or event description. Required unless market is given; with market, extra evidence you want weighed. |
question | string; length 0..500 | no | Exact market question; inferred when omitted (read from the market when market is given). |
market | string; length 3..500 | no | Polymarket slug, market URL or conditionId, or a Kalshi ticker or URL. Reads the question, rules, end date and live best asks; marketPriceYes then defaults to the book mid. A resolved market returns its outcome without a model call. |
minEdgePct | number; 0..100 | no | Minimum edge after taker fees, in percentage points, before verdict.action is BUY_YES or BUY_NO (default 5). A low-confidence estimate never produces a BUY. |
bankrollUsd | number; 0..1000000000000 | no | Converts the quarter-Kelly fraction into verdict.size_usd. |
marketPriceYes | number; 0..100 | no | Current implied Yes probability, used to compute edge. Percent (0-100) by default; a value strictly between 0 and 1 is read as a 0-1 market price (Polymarket/Kalshi style) unless marketPriceScale says otherwise. |
marketPriceScale | string; one of "percent", "fraction" | no | Force the unit of marketPriceYes: percent (35 = 35%) or fraction (0.35 = 35%). |
Example request body
{
"market": "will-jd-vance-win-the-2028-us-presidential-election",
"minEdgePct": 5,
"bankrollUsd": 10000
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
market_question | string | yes | The binary Yes/No question being forecast, stated precisely. |
probability_yes | integer | yes | Probability (0-100) that the event resolves Yes. |
confidence | string; one of "low", "medium", "high" | yes | |
sentiment | object | yes | |
factors_for_yes | array<string> | yes | |
factors_for_no | array<string> | yes | |
information_gaps | array<string> | yes | |
rationale | string | yes | |
probability_no | integer | yes | |
market_price_yes_pct | number | no | marketPriceYes normalized to percent; present only when a price was given. |
market_price_interpretation | string; one of "percent", "fraction" | no | How marketPriceYes was read. |
edge_vs_market | number | no | probability_yes minus the normalized market price; present only when a price was given. |
analyzed_at | string | yes | |
verdict | object | yes | Machine-readable call, computed in code. Leads the answer; detail follows in the other fields. |
disclaimer | string | yes | Not financial advice. |
used_web_search | boolean | yes | True when the estimate used live web search. |
sources | array<object> | yes | Pages the search cited, when used. |
market | object | no | Present when market was given: venue, id, end date, closed, resolved outcome and best asks. |
trade | one of | yes | Better side after taker fees: side, all_in_cost and edge_after_fees_pct; null when no price was available. |
Pay and connect
Available through: x402 (USDC on Base), MCP, RapidAPI.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent