API

Read-only REST at /api/v1. Unauthenticated requests work so the first curl has zero signup friction. A free key raises the monthly quota — create one here.

Estimates are estimates

Comp output, preference stacks, and many valuations are model estimates, not facts. Look for is_estimated, confidence, ranges, and the assumption notes that ship verbatim on /comp. Do not present a point estimate as a sure outcome.

Auth

Optional header: Authorization: Bearer neov_sk_…. Omit it for the unauthenticated taste (core identity fields, tight per-IP limit). A free key is 1k requests/month, still core fields. Paid tiers (full funding/comp blocks) are not self-serve yet. Standard X-RateLimit-* headers on every response. Invalid keys return 401; over-quota returns 429.

Search

GET /api/v1/companies?q=stripe. Also accepts yc_batch, stage, status, country, min_raised / max_raised, limit (≤50).

Without a key

curl https://www.neov.dev/api/v1/companies?q=stripe

With a key

curl https://www.neov.dev/api/v1/companies?q=stripe \
  -H "Authorization: Bearer neov_sk_YOUR_KEY"

Company

GET /api/v1/companies/stripe. Free and anonymous callers get core identity fields plus attribution; estimated valuation lives behind a paid tier.

Without a key

curl https://www.neov.dev/api/v1/companies/stripe

With a key

curl https://www.neov.dev/api/v1/companies/stripe \
  -H "Authorization: Bearer neov_sk_YOUR_KEY"

Comp

GET /api/v1/companies/stripe/comp?options=10000&strike=4.20. Same model as the web evaluator. Values are estimates — see assumptions in the response.

Without a key

curl "https://www.neov.dev/api/v1/companies/stripe/comp?options=10000&strike=4.20"

With a key

curl "https://www.neov.dev/api/v1/companies/stripe/comp?options=10000&strike=4.20" \
  -H "Authorization: Bearer neov_sk_YOUR_KEY"

MCP

Local MCP in this repo: pnpm mcp (packages/mcp). Same neov_sk_… key as REST. Hosted MCP is not available yet.