Prediction Market Arbitrage Finder (2026)

The Short Answer
An arbitrage finder watches several prediction market venues for the same event priced differently and tells you when a gap appears. The useful ones do something most do not: they check the gap against live asks with size rather than midpoints, subtract both venues' fees, and confirm the two contracts resolve on the same criteria. Predictefy's finder runs across 16 venues and labels a row executable only when every gate passes, leaving it as an indicative price discrepancy otherwise, with the reason it was not upgraded attached.
Key Takeaways
- Most gaps a naive finder reports are computed on midpoints, and midpoints are not prices you can trade.
- The four gates that matter are live asks with size, both markets open, fees and gas, and resolution equivalence.
- A finder should fail closed: when a gate cannot be evaluated it says so rather than upgrading the row anyway.
- "We could not verify this" and "we verified there is no edge" are different answers, and merging them is how a scanner misleads you.
- Cheap contracts produce the most false positives, because a one-cent spread is a large percentage of a three-cent price.
- Predictefy's arbitrage query is free to call on the free plan, which includes 25,000 credits a month.
What does an arbitrage finder actually do?
Three jobs, and tools differ enormously in how many they do.
Match the events. There is no shared identifier for a real-world event. The same election appears on one venue with one slug and a headline-style title, and on another with a different slug and a title written like a legal clause. Before you can compare two prices you have to establish they describe the same thing, and there is no authority to ask. This is entity resolution on prose, with real error rates.
Compare the prices. The easy part, and the part every tool does.
Decide whether the gap is tradable. The part most tools skip, and the only one that determines whether the output is useful.
Why do most finders report gaps that are not there?
Because they compute on midpoints.
A midpoint is the average of the best bid and the best ask. It is a convenient summary and it is not a price anyone will trade with you. You buy at the ask and sell at the bid, so a strategy priced on midpoints has already given away half the spread on each leg before it starts.
On a liquid market that error is small. On the thin markets where gaps look widest, it is most of the apparent edge. Which produces a systematic illusion: the opportunities that look best on a midpoint scanner are disproportionately the ones that do not exist.
There is a second illusion stacked on the first. Even the best ask is only the top of the book. If there are forty contracts available at that price and you want five hundred, you will walk up the ladder and pay worse on the rest. A finder that reports one number without a size attached has not answered the question you asked.
What makes a gap actually executable?
Four gates. A row that passes all four is worth acting on. A row that passes three is not.
| Gate | What it checks |
|---|---|
| Live asks with size | Real depth at the price you would pay, for the quantity you want, not the midpoint and not the top of book alone. |
| Both markets open | A halted or closed leg turns a hedge into a naked position. |
| Fees, and gas where it applies | Both venues' schedules, plus native gas on each chain for onchain venues. |
| Resolution equivalence | Whether the two rulebooks settle the same way in every scenario, not only the obvious one. |
The last gate is the one that gets skipped and the one that costs the most when it bites. Two contracts can describe what sounds like the same event and settle differently on an edge case. When that happens you are not hedged, you have two losing positions that were meant to cancel.
How do you run one?
curl -s "https://data.predictefy.com/api/router/fetchArbitrage?contracts=100&limit=50&executableOnly=true" \
-H "Authorization: Bearer pk_live_YOUR_KEY"
contracts is the size you actually intend to trade, and it changes the answer: a gap that clears at 10 contracts frequently does not clear at 500, so asking without a size gives you a number that means nothing. executableOnly=true returns only rows that passed every gate. Drop it and you also get the indicative rows, each carrying the reason it was not upgraded. fetchArbitrage is router-only, since a cross-venue question needs every venue at once.
Response meta carries asOf, seq and source, so you can tell how fresh the assessment is and whether it came from the published stream or a computed fallback. Treat a row without a timestamp as unusable for anything that decides something.
Why does failing closed matter?
This is the design decision that separates a finder you can trust from one you cannot.
Sometimes a gate cannot be evaluated. Depth might be unavailable for one leg, or the resolution criteria might not be confidently matched. The tempting behavior is to upgrade the row anyway and let the trader sort it out.
The correct behavior is to leave the row labeled indicative and attach the reason it was not upgraded. Because "we could not verify this" and "we verified there is no edge" are completely different statements, and a system that collapses them into one is telling you something it does not know.
When you are evaluating any finder, that is the question to ask. Not how many opportunities it reports. What it does when it is unsure.
What produces false positives?
Cheap contracts. A one-cent spread on a three-cent contract is enormous in percentage terms and almost always unfillable. Longshots are where naive scanners find their best-looking opportunities and where those opportunities are least real.
Stale data on one leg. If one venue's price is thirty seconds old and the other is live, the gap you are seeing may be a timing artifact.
Reconstructed depth. Not every order book is a record of real orders. Some are derived from a pricing curve and arrive looking identical. A finder that treats reconstructed depth as real will report size that nobody will fill.
Near-identical but different contracts. The expensive one, covered above.
Frequently Asked Questions
Is there a free prediction market arbitrage finder?
Yes. Predictefy's free plan includes 25,000 credits a month and the arbitrage query is available on it. An executable arbitrage call costs 15 credits, so the free allowance covers well over a thousand checks monthly, which is enough to run a real scanning loop.
How often should an arbitrage finder run?
It depends on the markets you watch. Fast-moving sports contracts change by the second, while long-dated political markets barely move hourly. Polling everything on a short timer burns credits on markets that did not change, so most people hold a stream open and react to movement instead.
Why is the gap smaller than the finder showed?
Usually because the number was computed on midpoints rather than live asks, or because the size you traded walked up the book past the top level. Fees on both legs and, for onchain venues, gas on both chains account for most of the remainder.
Can an arbitrage finder place the trades for you?
Finding and executing are separate concerns, and keeping them separate is safer. Predictefy builds orders server side and signs them in your own process, so a compromise of the finder cannot move funds. Server-side spend caps of 100 USD per order apply regardless.
How many venues should a finder cover?
More venues means more candidate pairs, and the relationship is not linear: each venue added creates pairs with every existing one. Predictefy reads 16 venues on one normalized schema, so coverage is a parameter rather than another integration you maintain.