Docs
API Reference
GET /v1/people

GET /v1/people

The Stealth lane: founders the network is converging on before a company exists. People who just left a role to start something, went stealth on LinkedIn, or are being followed as a builder by several tracked investors. One row per person, with the day we first reported them.

The same rows the app's Stealth tab and the Frontrun Report show. Judged and gated: you get the card copy, the links and the followers drawn from your own tracked accounts, never the network's.

Cost: Draws on your monthly usage. Empty answers are free.

Availability: Plans that include the stealth lane (see Pricing). Other keys get 403 lanes_not_enabled. GET /v1/status → lanes.people tells you before you call.

curl "https://frontrun.vc/v1/people?since=7d&lane=stealth&limit=20" \
  -H "X-API-Key: your_api_key"

Parameters

ParameterTypeDefaultDescription
sincestring (query)7dWindow: 7d, 48h, 30d or YYYY-MM-DD. Max 90 days.
lanestring (query)--stealth (went stealth / left a role, from LinkedIn), follow (the network follows them as a builder), convergence (several tracked accounts converging). Omit for all three.
qstring (query)--Search name, handle, bio, past company, what they are building.
scopestring (query)--tracked keeps only people one of your tracked accounts follows. list:<id> does the same for one of your lists (on keys with lists enabled). Omit for everyone the lane reported.
limitinteger (query)50Max rows (max 100).
offsetinteger (query)0Pagination offset.

Response

{
  "since": "2026-10-20",
  "lane": "stealth",
  "total": 23,
  "returned": 2,
  "offset": 0,
  "has_more": true,
  "people": [
    {
      "entity_id": "b917b9ed-e228-491f-adc9-3980fde6d151",
      "name": "Jane Park",
      "username": "janepark",
      "x_username": "janepark",
      "description": "prev: infra @ Stripe. now: building something new",
      "profile_image_url": "https://pbs.twimg.com/profile_images/.../400x400.jpg",
      "linkedin_url": "https://www.linkedin.com/in/janepark",
      "website_url": "https://janepark.com",
      "lane": "stealth",
      "signal_type": "departed_role",
      "trigger_label": "Left Stripe",
      "building_claim": true,
      "named_company": null,
      "prev_orgs": ["Stripe"],
      "stealth_started": "2026-10",
      "followers_count": 1240,
      "x_last_post_at": "2026-10-25",
      "judge": {
        "card": {
          "who": "Ex-Stripe infra engineer, 6 years on payments reliability",
          "who_domain": "stripe.com",
          "building": "Stealth: something in developer infrastructure",
          "building_domain": null,
          "credentials": ["Stripe (2020-2026)", "MIT CS"]
        }
      },
      "followed_by": ["garrytan"],
      "tracked_by": [],
      "followed_by_count": 1,
      "first_reported": "2026-10-24",
      "last_reported": "2026-10-26"
    }
  ],
  "cost_credits": 24,
  "balance_credits": 9800
}
FieldTypeDescription
lanestringstealth, follow or convergence: which detector reported the person.
signal_typestring | nulldeparted_role when the trigger was leaving a job; otherwise null.
judge.cardobjectThe card copy: who (one line on the person), building (what we can say they are building), credentials. Only display copy, never the judgement behind it.
x_usernamestring | nullConfirmed X handle. null when we could not confirm one; do not reach out through an unconfirmed handle.
followed_by / tracked_bystring[]Which of your tracked accounts follow this person. The network's other followers are never listed.
followed_by_countintegerSize of the union of the two lists above.
first_reported / last_reporteddateThe first and most recent day the lane carried this person inside the window.

Rows are the day's net-new lane: a person reported on several days keeps the freshest card and the first date.

Push instead of poll

Subscribe a webhook to the people event to receive the day's new stealth founders when the lane publishes (about 6 AM ET), with the same filters (lanes, tracked_only).

MCP

The same lane is frontrun_people on the MCP server.