Skip to main content
1

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.
2

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}`);
});
3

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.