Sign up for a free API key
curl -X POST https://api.rekko.ai/v1/customers/signup \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "name": "Your Name"}'
import httpx
resp = httpx.post("https://api.rekko.ai/v1/customers/signup", json={
"email": "you@example.com",
"name": "Your Name",
})
data = resp.json()
print(data["api_key"]) # Save this — it's shown only once
const resp = await fetch("https://api.rekko.ai/v1/customers/signup", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email: "you@example.com", name: "Your Name" }),
});
const data = await resp.json();
console.log(data.api_key); // Save this — it's shown only once
Your API key is shown only once in the signup response. Store it securely — you cannot retrieve it later.
List prediction markets
curl https://api.rekko.ai/v1/markets \
-H "Authorization: Bearer YOUR_API_KEY"
import httpx
client = httpx.Client(
base_url="https://api.rekko.ai/v1",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
markets = client.get("/markets").json()
for m in markets[:5]:
print(f"{m['platform']} | {m['title']} | YES: {m['yes_price']}")
const resp = await fetch("https://api.rekko.ai/v1/markets", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const markets = await resp.json();
markets.slice(0, 5).forEach((m) => {
console.log(`${m.platform} | ${m.title} | YES: ${m.yes_price}`);
});
Get an AI analysis
Analysis runs a deep research pipeline (30-90 seconds). Trigger it, then poll for completion.
# 1. Trigger analysis
curl -X POST https://api.rekko.ai/v1/markets/kalshi/KXFED-26MAR19/analyze \
-H "Authorization: Bearer YOUR_API_KEY"
# 2. Poll status (use the analysis_id from step 1)
curl https://api.rekko.ai/v1/markets/kalshi/KXFED-26MAR19/analyze/abc123/status \
-H "Authorization: Bearer YOUR_API_KEY"
# 3. Get the completed analysis
curl https://api.rekko.ai/v1/markets/kalshi/KXFED-26MAR19/analysis \
-H "Authorization: Bearer YOUR_API_KEY"
import time
import httpx
client = httpx.Client(
base_url="https://api.rekko.ai/v1",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
# 1. Trigger analysis
resp = client.post("/markets/kalshi/KXFED-26MAR19/analyze")
analysis_id = resp.json()["analysis_id"]
# 2. Poll until complete
while True:
status = client.get(
f"/markets/kalshi/KXFED-26MAR19/analyze/{analysis_id}/status"
).json()
if status["status"] == "complete":
break
time.sleep(5)
# 3. Get the analysis
analysis = client.get("/markets/kalshi/KXFED-26MAR19/analysis").json()
print(f"Probability: {analysis['probability']}")
print(f"Edge: {analysis['edge']}")
print(f"Recommendation: {analysis['recommendation']}")
const base = "https://api.rekko.ai/v1";
const headers = { Authorization: "Bearer YOUR_API_KEY" };
// 1. Trigger analysis
const trigger = await fetch(
`${base}/markets/kalshi/KXFED-26MAR19/analyze`,
{ method: "POST", headers }
);
const { analysis_id } = await trigger.json();
// 2. Poll until complete
let status;
do {
await new Promise((r) => setTimeout(r, 5000));
const poll = await fetch(
`${base}/markets/kalshi/KXFED-26MAR19/analyze/${analysis_id}/status`,
{ headers }
);
status = await poll.json();
} while (status.status !== "complete");
// 3. Get the analysis
const analysis = await fetch(
`${base}/markets/kalshi/KXFED-26MAR19/analysis`,
{ headers }
).then((r) => r.json());
console.log(`Probability: ${analysis.probability}`);
console.log(`Edge: ${analysis.edge}`);
What’s next
Pricing & Tiers
Understand what each tier unlocks.
Trading Signals
Get actionable signals with position sizing.
MCP Plugin
Use Rekko directly in your AI coding assistant.
Postman Collection
Import all 29 endpoints into Postman with one click.