Polymarket + Kalshi Resolution Evidence & Settlement Monitor avatar

Polymarket + Kalshi Resolution Evidence & Settlement Monitor

Pricing

from $40.00 / 1,000 resolution evidence reports

Go to Apify Store
Polymarket + Kalshi Resolution Evidence & Settlement Monitor

Polymarket + Kalshi Resolution Evidence & Settlement Monitor

Parse market resolution rules, retrieve official evidence, evaluate evidence-supported outcomes, and monitor settlement changes for supported Polymarket and Kalshi markets.

Pricing

from $40.00 / 1,000 resolution evidence reports

Rating

0.0

(0)

Developer

NexaScout

NexaScout

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Turn a prediction-market URL into a structured answer to a harder question than “what are the odds?”:

What exactly resolves this market, which official source determines it, what does that source say now, what outcome does the evidence support, and how certain is that conclusion?

This Actor is a deterministic resolution-evidence engine for Kalshi + Polymarket. V1.1 supports two high-value evidence families: weather (including The Weather Company settlement data used by current Kalshi weather markets) and U.S. macroeconomic releases. Unsupported markets return a safe UNKNOWN result instead of fabricated evidence.

What it does

  1. Loads the market and its resolution rules from Kalshi or Polymarket public market metadata.
  2. Normalizes the resolution condition.
  3. Detects the evidence family and the authoritative source.
  4. Queries an official source only.
  5. Converts raw official data into the metric the market actually resolves on.
  6. Evaluates the evidence-supported YES/NO state when deterministic.
  7. Separates evidence state from the platform's actual final settlement.
  8. In MONITOR mode, compares the report with the prior run and returns only meaningful state-change signals in a monitor object.

V1.1 official sources

Evidence familyOfficial sourceCurrent V1.1 handling
Kalshi weather markets that name The Weather CompanyThe Weather Company (weather.com/kalshi)Extract the market's CLI... settlement location and target date from the rules, query the official /kalshi/api/climate/primary endpoint, match the location record, and evaluate daily high/low or precipitation when the official value is available.
Weather markets that explicitly name NWS/NOAANational Weather Service / NOAA (api.weather.gov)Extract station from rules when possible and aggregate official observations. NWS is used only when the market rules actually name NWS/NOAA as the authoritative source.
CPI / inflationU.S. Bureau of Labor StatisticsCPI-U series; computes YoY or MoM only when the market wording clearly requests it
UnemploymentU.S. Bureau of Labor StatisticsOfficial unemployment-rate series
Payrolls / jobsU.S. Bureau of Labor StatisticsTotal nonfarm payroll level or monthly change when clearly requested
FOMC decisionsFederal ReserveOfficial monetary-policy RSS + FOMC statements; can compute target-rate change in basis points
GDPBureau of Economic AnalysisCurrent official GDP headline; historical-quarter evaluation remains conservative unless the exact target can be verified

Generic weather apps, news articles, social media, market prices, and third-party aggregators are not used as settlement evidence.

Input

{
"marketUrls": [
"https://kalshi.com/markets/...",
"https://polymarket.com/event/..."
],
"mode": "CHECK",
"maxMarkets": 25,
"includeRawEvidence": false,
"failOnUnsupported": false
}

marketUrls also accepts a bare Kalshi ticker such as KX... and a Polymarket slug. Kalshi event URLs/tickers and Polymarket event URLs can expand to multiple child markets, bounded by maxMarkets.

Store health-check default

The published input schema uses https://kalshi.com/markets/kxu3/unemployment/kxu3-26aug/kxu3-26aug-t4.0 as a stable finalized one-market default so Apify Store daily auto-tests produce a non-empty dataset. This is only a demo/health-check input; replace it with the market URL, ticker, or slug you actually want to evaluate.

CHECK example

{
"marketUrls": ["KXHIGHNY-EXAMPLE"],
"mode": "CHECK"
}

The Actor writes one standardized report per market to the default dataset.

For a Kalshi weather market whose rules name The Weather Company, the report uses the official weather.com/kalshi climate endpoint and returns a source type such as OFFICIAL_TWC_KALSHI_CLIMATE. If the exact CLI... record is not published yet, the state is AWAITING_OFFICIAL_SOURCE; NWS is not substituted.

MONITOR example

{
"marketUrls": [
"KXHIGHNY-EXAMPLE",
"https://polymarket.com/event/example-fed-market"
],
"mode": "MONITOR",
"monitorStateKey": "my-resolution-watch"
}

A persistent named Apify key-value store keeps the prior report across separate runs. Each new dataset item receives:

{
"monitor": {
"previousEvidence": {},
"currentEvidence": {},
"evidenceChanged": true,
"resolutionStateChanged": true,
"confidenceChanged": false,
"newOfficialData": true
}
}

Output

{
"platform": "KALSHI",
"marketId": "KX...",
"marketUrl": "https://kalshi.com/markets/...",
"question": "Will ...?",
"marketStatus": "OPEN",
"resolutionCondition": "value > 80",
"resolutionSourceName": "National Weather Service / NOAA station KNYC",
"resolutionSourceUrl": "https://api.weather.gov/stations/KNYC/observations?...",
"resolutionSourceType": "OFFICIAL_WEATHER_OBSERVATIONS",
"observedValue": "82.0 °F",
"observedAt": "2026-09-23T19:51:00Z",
"sourcePublishedAt": "2026-09-23T19:51:00Z",
"expectedOutcome": "YES",
"resolutionState": "CONDITION_MET",
"confidenceScore": 0.93,
"confidenceLevel": "HIGH",
"evidenceFreshness": "IN_PROGRESS",
"sourceMatchConfidence": 0.96,
"warnings": [],
"evidence": []
}

Supported states:

UNRESOLVED, LIKELY_YES, LIKELY_NO, CONDITION_MET, CONDITION_NOT_MET, AWAITING_OFFICIAL_SOURCE, SOURCE_CONFLICT, DISPUTED, FINAL, UNKNOWN.

Important state semantics

CONDITION_MET means the official evidence currently satisfies the parsed market condition. It does not by itself mean the exchange has settled the contract.

FINAL is reserved for a final/resolved settlement only when the platform exposes an unambiguous YES/NO outcome or supported official evidence deterministically establishes the outcome. A closed/resolved flag by itself does not force FINAL. Polymarket markets can involve UMA challenge/dispute workflows; if platform metadata indicates a challenge/dispute and the market is not final, this Actor returns DISPUTED.

Pricing

The project contains .actor/pay_per_event.json with:

  • apify-actor-start: $0.005 per run (one-time synthetic start event)
  • resolution-evidence: $0.04 per supported market report (primary event)

The Actor checks the user's PPE spending limit before doing the official-source evidence work. A market that is obviously outside the V1.1 evidence families returns UNKNOWN without charging the resolution-evidence event.

x402 / agent use

This product is designed for a predictable agent call:

resolve_evidence(market_url) -> structured JSON report

For direct Apify agentic eligibility, keep the published Actor on Pay per event only, do not pass platform usage through to the user, use limited permissions, keep Standby disabled, and complete the developer KYC. No browser, proxy, LLM, or paid Actor-to-Actor dependency is used in the normal path.

Architecture

Market URL / ticker / slug
↓
Platform detector + metadata client
↓
Resolution rule normalizer
↓
Evidence-family classifier
↓
Authoritative source resolver
↓
Official evidence adapter
↓
Deterministic condition evaluator
↓
Resolution state + confidence + evidence trail
↓
Dataset / API / agent / x402

The normal path uses plain HTTP and is designed for 256 MB memory. TWC metric selection prioritizes the explicit market question/rule clause so generic Kalshi "maximum/minimum" boilerplate cannot invert high vs. low markets.

Limitations

  • V1.1 does not try to resolve arbitrary politics, sports, crypto, awards, or legal/news markets.
  • Weather support is intentionally conservative when the exact official station cannot be identified from the rules. A small city-to-station fallback map is available but is explicitly downgraded in source-match confidence and emits a warning.
  • The Weather Company connector only evaluates a market when it can deterministically extract the market's CLI... settlement location and identify the matching record in the official weather.com/kalshi response. If the value is not published yet, the Actor returns AWAITING_OFFICIAL_SOURCE rather than substituting NWS data.
  • The Weather Company endpoint is treated as the settlement source only when the market rules declare it. NWS-settled weather markets continue to use official NWS/NOAA observations only.
  • The TWC parser is intentionally schema-tolerant because the public weather.com/kalshi JSON shape may evolve; it anchors on the exact CLI... location code and metric names and refuses to use a different location's value.
  • BLS series can be revised. The report describes the official evidence it retrieved; exchange settlement rules remain authoritative.
  • The no-key BEA adapter is strongest for the latest GDP headline. It will not pretend a current headline proves a historical quarter.
  • A parser ambiguity results in UNKNOWN/UNRESOLVED, not a guessed outcome.

This Actor provides resolution research and monitoring data, not financial advice.

Local tests

The test suite uses deterministic fixtures and Node's built-in test runner:

$node --test test/*.test.js

Network access is only needed for live Actor runs, not for the fixture tests.

TWC station-code normalization

Kalshi rules may identify a CLI product as CLINYC, while the Weather Company API returns cliId / stationId as NYC. The connector deterministically strips only the CLI prefix before exact station matching.

TWC settlement guard

The Weather Company connector never substitutes avgTemp or current temperature for a daily high/low settlement value. When the CLI report is not yet published, the Actor returns AWAITING_OFFICIAL_SOURCE.