> ## Documentation Index
> Fetch the complete documentation index at: https://rekko.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Get your API key and make your first call in under 5 minutes.

<Steps>
  <Step title="Sign up for a free API key">
    <CodeGroup>
      ```bash cURL theme={null}
      curl -X POST https://api.rekko.ai/v1/customers/signup \
        -H "Content-Type: application/json" \
        -d '{"email": "you@example.com", "name": "Your Name"}'
      ```

      ```python Python theme={null}
      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
      ```

      ```javascript JavaScript theme={null}
      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
      ```
    </CodeGroup>

    <Warning>
      Your API key is shown **only once** in the signup response. Store it securely — you cannot retrieve it later.
    </Warning>
  </Step>

  <Step title="List prediction markets">
    <CodeGroup>
      ```bash cURL theme={null}
      curl https://api.rekko.ai/v1/markets \
        -H "Authorization: Bearer YOUR_API_KEY"
      ```

      ```python Python theme={null}
      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']}")
      ```

      ```javascript JavaScript theme={null}
      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}`);
      });
      ```
    </CodeGroup>
  </Step>

  <Step title="Get an AI analysis">
    Analysis runs a deep research pipeline (30-90 seconds). Trigger it, then poll for completion.

    <CodeGroup>
      ```bash cURL theme={null}
      # 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"
      ```

      ```python Python theme={null}
      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']}")
      ```

      ```javascript JavaScript theme={null}
      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}`);
      ```
    </CodeGroup>
  </Step>
</Steps>

## What's next

<CardGroup cols={2}>
  <Card title="Pricing & Tiers" icon="credit-card" href="/pricing">
    Understand what each tier unlocks.
  </Card>

  <Card title="Trading Signals" icon="bullseye-arrow" href="/api-reference/strategy/generate-signal">
    Get actionable signals with position sizing.
  </Card>

  <Card title="MCP Plugin" icon="plug" href="/integrations/mcp/overview">
    Use Rekko directly in your AI coding assistant.
  </Card>

  <Card title="Postman Collection" icon="rectangle-terminal" href="/integrations/postman/overview">
    Import all 29 endpoints into Postman with one click.
  </Card>
</CardGroup>
