# Scanna Live Predict

> Scanna Live Predict is a paid API for AI agents from api.scanna.xyz, paid per call via x402, $0.050011/call, status unknown (last checked 2026-09-15).

Returns a live CatBoost-generated win probability, current market price, divergence signal, and a ~28-field feature snapshot for a single active Polymarket prediction market.

## Facts

- Endpoint: GET https://api.scanna.xyz/live-predict
- Price: $0.050011/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/scanna-live-predict-25218c79
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_PeDCirosdDHFegvL0qVFw

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability scanna-live-predict-25218c79
```

Example prompt: What's Scanna's model probability and market divergence for Polymarket condition ID 0x1234abcd right now — is the current price higher or lower than the CatBoost prediction?

## When to prefer this

Use this endpoint when you need a machine-learning-derived probability estimate for a specific active Polymarket market alongside its current market price and divergence signal in a single call. Prefer this over the risk-grade endpoint when you need a numeric probability rather than a letter grade, or when you want the raw feature snapshot for further analysis. Best suited for trading signal generation, mispricing detection, or pre-trade model validation on individual markets.

## Known failure modes

- 404 market_not_found: market_id is valid but not in the live worker cache
- 404 insufficient_data: market has fewer than 5 trades and cannot be scored
- 400: market_id query parameter is absent
- confidence_band='unavailable': confidence interval could not be computed, confidence_low/high will be null
- features_snapshot may reflect stale worker DB state even though snapshot_at is request time
- Divergence and divergence_pp fields are omitted entirely when either predicted probability or market_price is missing

## How this service works

One market_id in, one live CatBoost probability out, plus market_price, divergence and a ~28-field feature snapshot. Features come from the worker-maintained DB serving state, not request-time compute, and snapshot_at is stamped at request time, so stale state looks fresh. Confidence band often nulls to unavailable. No empty 200: missing data is a 404.

## Output

A JSON object containing the market_id, predicted probability, current YES market price, divergence (predicted minus market price, to 3 decimal places), divergence_pp (same in percentage points, 1dp), confidence_low and confidence_high (or confidence_band='unavailable' when no real interval exists), prediction_status ('provisional' or 'canonical_enforced'), model_source, feature_count, and a features_snapshot object with ~28 raw feature values stamped at request time. Returns 404 if the market is not in the live cache or has fewer than 5 trades; 400 if market_id is absent.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "market_id"
     ],
     "properties": {
      "market_id": {
       "type": "string",
       "description": "Condition ID of an ACTIVE market. Absent is 400; not in the live cache is 404 market_not_found; fewer than 5 trades is 404 insufficient_data."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "market_id",
      "prediction_status"
     ],
     "properties": {
      "market_id": {
       "type": "string"
      },
      "divergence": {
       "type": [
        "number",
        "null"
       ],
       "description": "predicted_probability - market_price, 3dp. OMITTED when either side is missing."
      },
      "market_price": {
       "type": [
        "number",
        "null"
       ],
       "description": "Current YES price; null when the market has no finite price"
      },
      "model_source": {
       "type": "string"
      },
      "divergence_pp": {
       "type": [
        "number",
        "null"
       ],
       "description": "Same signal in percentage points, 1dp. Omitted with divergence."
      },
      "feature_count": {
       "type": "integer",
       "description": "Features the model consumed"
      },
      "confidence_low": {
       "type": [
        "number",
        "null"
       ],
       "description": "null when no real interval exists — see confidence_band"
      },
      "confidence_band": {
       "enum": [
        "unavailable"
       ],
       "type": "string",
       "description": "Present ONLY when the band was nulled; absent when the interval is real"
      },
      "confidence_high": {
       "type": [
        "number",
        "null"
       ],
       "description": "null when no real interval exists — see confidence_band"
      },
      "features_snapshot": {
       "type": "object",
       "description": "~28 raw feature values. Field
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/scanna-live-predict-25218c79/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scanna.xyz](https://www.zero.xyz/host/api.scanna.xyz/llms.txt)
