80trust / 100
Arb Same Outcome Spread
by api.seerium.xyz in Markets & finance
x402 APIPassing, checked 3 h ago
Prediction market arbitrage and same-outcome spread API for Polymarket, Kalshi, and Gemini. Finds YES or NO price gaps across venues.
GET https://api.seerium.xyz/v1/prediction/arb/same-outcome-spread
Last 30 days
All checks passedSome failedAll failedNot checked
Status and outage history · Atom feed
- Uptime
- 100%
- Response time
- 214 ms typical, 347 ms slowest 5%
- Last check
- 3 h ago
- Next check
- any minute now
How to call it
GET https://api.seerium.xyz/v1/prediction/arb/same-outcome-spread
Each call costs $0.1 in USDC on Base, paid with the request over x402.
Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.
Example request
From the listing.
GET https://api.seerium.xyz/v1/prediction/arb/same-outcome-spread?includeIndicative=true&limit=3&minEdge=0&sources=polymarket%2Ckalshi%2CgeminiParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
includeIndicative | boolean | No | Optional flag for indicative price-only rows. Defaults to true. |
limit | number | No | Optional maximum arb rows to return. Defaults to 20 and is hard-capped at 20. |
minEdge | number | No | Optional minimum net arb edge as a decimal or percentage-style value. |
outcome | string | No | Optional same-outcome filter. One of: yes, no. |
sources | string | No | Optional comma-separated venue filter: polymarket, kalshi, gemini. |
Example response
The provider's example. We can't check it without paying.
Example response, 169 lines
{
"data": {
"criteria": {
"includeIndicative": true,
"limit": 20,
"minEdge": null,
"outcome": "yes",
"sources": [],
"strategy": "same_outcome_spread"
},
"markets": 1200,
"returned": 1,
"rows": [
{
"buy": {
"conditionId": "GEMEXAMPLE",
"endDateIso": "2026-03-30T00:00:00.000Z",
"eventTicker": null,
"eventTitle": "Example Event",
"indicative": true,
"marketSlug": "GEMEXAMPLE",
"marketTicker": null,
"marketUrl": "https://polymarket.com/market/example-market",
"outcome": "yes",
"price": 0.42,
"priceType": "ask",
"question": "Will example event happen by Friday?",
"seriesTicker": null,
"side": "BUY",
"size": null,
"source": "gemini",
"tokenId": "GEMEXAMPLE:YES",
"totalDepth": null
},
"edge": 0.035,
"feeBuffer": 0.002,
"grossEdge": 0.037,
"id": "arb_same_outcome_example",
"key": "question:will example event happen by friday:date:2026-03-30",
"legs": [
{
"conditionId": "GEMEXAMPLE",
"endDateIso": "2026-03-30T00:00:00.000Z",
"eventTicker": null,
"eventTitle": "Example Event",
"indicative": true,
"marketSlug": "GEMEXAMPLE",
"marketTicker": null,
"marketUrl": "https://polymarket.com/market/example-market",
"outcome": "yes",
"price": 0.42,
"priceType": "ask",
"question": "Will example event happen by Friday?",
"seriesTicker": null,
"side": "BUY",
"size": null,
"source": "gemini",
"tokenId": "GEMEXAMPLE:YES",
"totalDepth": null
},
{
"conditionId": "0xexample",
"endDateIso": "2026-03-30T00:00:00.000Z",
"eventTicker": null,
"eventTitle": "Example Event",
"indicative": true,
"marketSlug": "example-market",
"marketTicker": null,
"marketUrl": "https://polymarket.com/market/example-market",
"outcome": "yes",
"price": 0.457,
"priceType": "bid",
"question": "Will example event happen by Friday?",
"seriesTicker": null,
"side": "SELL",
"size": null,
"source": "polymarket",
"tokenId": "poly_yes_token",
"totalDepth": null
}
],
"matchedOn": {
"dateKey": "2026-03-30",
"directionKey": null,
"eventKey": "example event",
"numericKey": null,
"subjectKey": "will example event happen by friday"
},
"outcome": "yes",
"question": "Will example event happen by Friday?",
"requiresShort": true,
"sell": {
"conditionId": "0xexample",
"endDateIso": "2026-03-30T00:00:00.000Z",
"eventTicker": null,
"eventTitle": "Example Event",
"indicative": true,
"marketSlug": "example-market",
"marketTicker": null,
"marketUrl": "https://polymarket.com/market/example-market",
"outcome": "yes",
"price": 0.457,
"priceType": "bid",
"question": "Will example event happen by Friday?",
"seriesTicker": null,
"side": "SELL",
"size": null,
"source": "polymarket",
"tokenId": "poly_yes_token",
"totalDepth": null
},
"sources": [
"gemini",
"polymarket"
],
"spread": 0.037,
"strategy": "same_outcome_spread"
}
],
"sourceTimestamps": {
"gemini": 1760000000000,
"kalshi": 1760000000000,
"polymarket": 1760000000000
},
"totalCandidates": 1,
"totals": {
"fullCover": 0,
"gemini": 250,
"groups": 80,
"kalshi": 450,
"polymarket": 500,
"sameOutcomeSpread": 1
},
"updatedAt": "2026-03-25T11:59:30.000Z",
"warnings": []
},
"meta": {
"freshnessMs": 30000,
"generatedAt": "2026-03-25T12:00:00.000Z",
"requestId": "req_example_123",
"updatedAt": "2026-03-25T11:59:30.000Z"
},
"product": {
"accepts": [
{
"network": "eip155:8453",
"payTo": "0x81832eEDe3a4ad96CB3D7cA09977636D912fd3D5",
"price": "$0.1000",
"scheme": "exact"
},
{
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "2h752kAbb9z1jpdSzqMEYg9JHv6TPJ6T2BfAJMyjLFtZ",
"price": "$0.1000",
"scheme": "exact"
}
],
"id": "prediction-arb-same-outcome-spread",
"method": "GET",
"name": "Prediction Market Same Outcome Spread",
"networks": [
"eip155:8453",
"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
],
"path": "/v1/prediction/arb/same-outcome-spread",
"price": "$0.1000"
},
"service": "seerium-x402-api"
}Call it from code
The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.1.
curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i 'https://api.seerium.xyz/v1/prediction/arb/same-outcome-spread?includeIndicative=true&limit=3&minEdge=0&sources=polymarket%2Ckalshi%2Cgemini'
# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - 'https://api.seerium.xyz/v1/prediction/arb/same-outcome-spread?includeIndicative=true&limit=3&minEdge=0&sources=polymarket%2Ckalshi%2Cgemini' \
| grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decodeJavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
// Pays at most $0.1 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.1" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.1 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.seerium.xyz%2Fv1%2Fprediction%2Farb%2Fsame-outcome-spread
const res = await pay("https://api.seerium.xyz/v1/prediction/arb/same-outcome-spread?includeIndicative=true&limit=3&minEdge=0&sources=polymarket%2Ckalshi%2Cgemini");
console.log(res.status, await res.text());Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
# Pays at most $0.1 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.1"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))
with x402_requests(client) as session:
res = session.get("https://api.seerium.xyz/v1/prediction/arb/same-outcome-spread?includeIndicative=true&limit=3&minEdge=0&sources=polymarket%2Ckalshi%2Cgemini")
print(res.status_code, res.text)Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 3 h ago | Passed | 402 | 351 ms | $0.1 |
| 7 h ago | Passed | 402 | 205 ms | $0.1 |
| 11 h ago | Passed | 402 | 258 ms | $0.1 |
| 15 h ago | Passed | 402 | 211 ms | $0.1 |
| 19 h ago | Passed | 402 | 347 ms | $0.1 |
| 23 h ago | Passed | 402 | 233 ms | $0.1 |
| 26 h ago | Passed | 402 | 167 ms | $0.1 |
| 30 h ago | Passed | 402 | 222 ms | $0.1 |
| 33 h ago | Passed | 402 | 221 ms | $0.1 |
| 37 h ago | Passed | 402 | 239 ms | $0.1 |
| 40 h ago | Passed | 402 | 291 ms | $0.1 |
| 44 h ago | Passed | 402 | 155 ms | $0.1 |
| 47 h ago | Passed | 402 | 264 ms | $0.1 |
| 2 days ago | Passed | 402 | 190 ms | $0.1 |
| 2 days ago | Passed | 402 | 151 ms | $0.1 |