{"uid":"cap_qxWcISEq895jw1BftVaNL","slug":"x402-factory-prediction-market-movers-delta-keyset-d1a59744","name":"x402-factory Prediction Market Movers Delta (Keyset)","description":"Only the materially-moved markets changed since your cursor (delta of /v1/movers — Keyset delta of /v1/movers: pass since=<next_cursor from your last call> and get only the materially-moved markets added or changed after it, plus changed_count and a new next_cursor. Omit since once to bootstrap. Cursors are stable across restarts. Poll the free sibling /v1/movers/changes for counts and pay only…","url":"https://x402-factory.com/v1/movers/delta","method":"GET","headers":{},"bodySchema":{"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":[],"properties":{"since":{"type":"string","maxLength":300,"minLength":4,"description":"Opaque cursor from a previous next_cursor; omit once to bootstrap a cursor at now"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","required":["rows","changed_count","next_cursor","as_of"],"properties":{"rows":{"type":"array","items":{"type":"object","required":["slug","question","category","p","prev_p","delta","changed_at"],"properties":{"p":{"type":"number","maximum":1,"minimum":0},"slug":{"type":"string"},"delta":{"type":"number"},"prev_p":{"type":"number","maximum":1,"minimum":0},"category":{"type":"string"},"question":{"type":"string"},"changed_at":{"type":"string"}},"additionalProperties":false}},"as_of":{"type":"string"},"next_cursor":{"type":"string"},"changed_count":{"type":"integer","maximum":9007199254740991,"minimum":0}},"additionalProperties":false},"meta":{"type":"object"}}}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_Cb5u5M9BTbFRHw3IqYsoQ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns only prediction market entries that have materially moved since a given cursor, enabling efficient incremental polling without re-fetching unchanged markets.","exampleAgentPrompt":"Show me only the prediction markets that have materially moved since my last check — use cursor eyJhbGciOiJIUzI1NiJ9abc to fetch the delta and tell me which questions changed, by how much, and in which direction.","exampleUseCases":[{"title":"Incremental political market monitoring","prompt":"I want to track political prediction markets efficiently — fetch only the markets that moved since cursor eyJsYXN0X2lkIjoxMjM0fQ and tell me which questions changed probability, what the new and old values are, and give me the next cursor so I can keep polling."},{"title":"Bootstrap fresh market change feed","prompt":"I've never polled this before — fetch the prediction market movers delta without a since cursor to bootstrap a starting position, then tell me the next_cursor value I should save for future incremental calls."},{"title":"Cost-controlled market change alerting","prompt":"I only want to pay for data that actually changed — give me the delta of prediction market movers since cursor eyJuZXh0IjoiMjAyNC0wNiJ9xyz, show me the changed_count, and list any markets whose probability shifted by more than 5 percentage points."}],"resultDescription":"Returns a JSON object with a data field containing: rows (array of changed markets, each with slug, question, category, current probability p, previous probability prev_p, numeric delta, and changed_at timestamp), changed_count (total number of changed markets), next_cursor (opaque string to use in the next poll), and as_of (timestamp of the snapshot). Also includes a meta object.","failureModes":["Invalid or expired cursor returns an error or resets pagination","Omitting 'since' bootstraps from now, returning no historical rows — intentional but can surprise first-time callers","Payment failure (402) if USDC payment via x402 protocol is not properly included","Empty rows array if no markets have moved since the cursor — changed_count will be 0","Rate limiting or network errors returning 429 or 5xx responses"],"whenToPreferThis":"Use this endpoint when you need to efficiently poll for prediction market changes without re-fetching the entire movers list. It is ideal for agents that periodically sync market state, want to minimize API costs by fetching only changed rows, and need stable cursor-based pagination across restarts. Prefer the free sibling /v1/movers/changes for checking counts before deciding whether to pay for the full delta.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T18:52:50.153Z","isFirstParty":false}