# Graph Advocate — Prediction Market Spread Finder

> Graph Advocate — Prediction Market Spread Finder is a paid API for AI agents from graphadvocate.com, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-15).

Finds arbitrage spread opportunities between Polymarket and Limitless prediction markets for a given topic, returning semantically matched market pairs ranked by absolute spread.

## Facts

- Endpoint: POST https://graphadvocate.com/predmarket/spread
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/graph-advocate-prediction-market-spread-finder-66d09e9f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WIIPqFpcHJLu6b3h6DzMa

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 graph-advocate-prediction-market-spread-finder-66d09e9f -d '<json body>'
```

Example prompt: Find me the top 3 arbitrage spread opportunities between Polymarket and Limitless for markets about ETH — I want to see which platform has better odds and in which direction to trade.

## When to prefer this

Use this endpoint when you want to identify cross-platform prediction market arbitrage opportunities between Polymarket and Limitless specifically. It is the right choice when a user wants to compare odds on the same underlying event across these two platforms, surface mispriced markets, or scout directional trades. Prefer it over generic prediction market search endpoints because it returns pre-computed spreads, semantic deduplication, and explicit arbitrage direction — saving the agent from doing price comparison logic manually.

## Known failure modes

- No matching markets found for the given topic — returns empty pairs array
- Topic is too ambiguous and semantic matching rejects most candidates — low semantic_match_score pairs
- Limitless or Polymarket data unavailable — endpoint may return partial results or error
- Rate limit exceeded on free tier (3 queries/day) without payment — request rejected
- Invalid limit value outside 1-10 range — schema validation error

## How this service works

Cross-venue arbitrage spread between Polymarket and Limitless on a topic. POST {topic, limit?}. Pulls matching markets from Polymarket's public Gamma API and Limitless's REST search, pairs them by closest-price match, computes per-pair yes-mid spread + arbitrage direction. GA assembles a JOIN that single-venue passthroughs can't return. Naive pair-up — agent should confirm semantic match before sizing.

## Output

Returns a list of matched market pairs between Polymarket and Limitless, each with: spread in basis points, yes-mid prices on both platforms, arbitrage direction (e.g. long-limitless-short-polymarket), semantic match score (Jaccard), market slugs and titles, and an agent note warning about resolution condition differences. Also includes counts of candidates and semantic rejections.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "limit": {
   "type": "integer",
   "default": 5,
   "maximum": 10,
   "minimum": 1
  },
  "topic": {
   "type": "string"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "pairs": [
   {
    "spread_bps": -3250,
    "limitless_slug": "sol-up-or-down-15-min",
    "limitless_title": "SOL Up or Down - 15 Min",
    "polymarket_slug": "will-the-price-of-solana-be-above-70-on-june-15",
    "limitless_yes_mid": 0.59,
    "polymarket_yes_mid": 0.265,
    "arbitrage_direction": "long-limitless-short-polymarket",
    "polymarket_question": "Will the price of Solana be above $70 on June 15?",
    "semantic_match_score": 0.111,
    "limitless_condition_id": "0xabcd...",
    "spread_yes_polymarket_minus_limitless": -0.325
   }
  ],
  "status": "ok",
  "agent_note": "Pairs filtered by semantic content-word overlap + negation consistency, then ranked by absolute spread. semantic_match_score is Jaccard on content words (0-1). Verify same-condition resolution before sizing — Polymarket and Limitless markets on the same topic often have different time horizons.",
  "topic_keyword": "sol",
  "semantic_rejections": 3,
  "limitless_candidates": 5,
  "polymarket_candidates": 1,
  "limitless_binary_candidates": 4
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/graph-advocate-prediction-market-spread-finder-66d09e9f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from graphadvocate.com](https://www.zero.xyz/host/graphadvocate.com/llms.txt)
