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

# Quickstart

> The VC workflow end to end: add companies, poll, review signals, triage leads.

This is the workflow the API was validated against, in the order a VC (or an agent acting for one) uses it. `$KEY` is the API key.

<Info>
  The MCP server exposes the same steps as tools: `add_company`, `get_company`, `list_signals`, `list_leads`, `track_lead`, `decide_lead`. See [Connect a client](/mcp/connect).
</Info>

<Steps>
  <Step title="Add founders to track">
    Send what you know. Missing LinkedIn/X profiles are found automatically in the background.

    ```bash theme={null}
    curl -X POST https://app.raisegate.com/api/v1/tracker \
      -H "Authorization: Bearer $KEY" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: add-example-bio-2026-09-18" \
      -d '{
        "companyName": "Example Bio",
        "companyWebsite": "https://example.bio",
        "founders": [{ "name": "Jane Founder" }, { "name": "John Cofounder" }],
        "thingsToTrack": "Fundraising, partnerships with food or pet-care companies, scale-up milestones.",
        "alertEmails": ["partners@fund.example"],
        "cadenceDays": 7,
        "confirmed": true
      }'
    ```

    The call returns in about 2-3 seconds with `{ data, operation }`. `operation.pollUrl` is the company you just created.
  </Step>

  <Step title="Poll until it is ready">
    Call `operation.pollUrl` every `suggestedPollIntervalSeconds` until `operation.enrichmentComplete` is `true`.

    The first tracker run starts automatically. It has finished when `lastScrapedAt` is set and `scrapeHealthReason` no longer says a run is in progress.

    In testing, enrichment took about 10 seconds (both founders' LinkedIn and X found from names alone) and the first run finished within 6 minutes.
  </Step>

  <Step title="Review what happened">
    ```http theme={null}
    GET /api/v1/signals?since=2026-09-18
    GET /api/v1/signals?needsAttention=true
    GET /api/v1/alerts?since=2026-09-18
    GET /api/v1/alerts?outcome=all&latestPerEntity=true
    GET /api/v1/tracker?classification=biotech
    ```
  </Step>

  <Step title="Triage leads">
    Founders discovered around your tracked companies.

    ```http theme={null}
    GET  /api/v1/leads?decision=unreviewed
    GET  /api/v1/leads?decision=unreviewed&sourceQuery=example bio&stage=pre_seed_seed
    GET  /api/v1/leads/{id}
    POST /api/v1/leads/{id}/track      {"thingsToTrack": "...", "alertEmails": ["..."]}
    POST /api/v1/leads/{id}/decision   {"accepted": false}
    ```
  </Step>

  <Step title="Come back later">
    ```http theme={null}
    GET /api/v1/leads?decision=accepted
    GET /api/v1/leads?decision=rejected
    GET /api/v1/leads?decision=unreviewed
    GET /api/v1/tracker
    ```

    Accepted leads include `decision.trackedEntityId`. The unreviewed inbox is everything not yet decided.
  </Step>

  <Step title="Manage the portfolio">
    ```http theme={null}
    PATCH  /api/v1/tracker/{id}          {"alertEmails": ["..."], "cadenceDays": 3, "tags": ["biotech"]}
    PATCH  /api/v1/tracker/{id}          {"founders": [{"name": "Jane Founder"}, {"name": "New Cofounder"}]}
    POST   /api/v1/tracker/{id}/refresh
    PATCH  /api/v1/tracker/{id}          {"status": "paused"}
    PATCH  /api/v1/tracker/{id}          {"status": "ok"}
    DELETE /api/v1/tracker/{id}
    ```
  </Step>
</Steps>

<Check>
  A company created through the API is indistinguishable from one created in the UI. Lead decisions are shared both ways.
</Check>
