Skip to main content

VCPeer Public API

Free REST API for VC data. Pull ratings, peer scores, ghosting rates, and firm profiles into your own tools. 100 requests/day on the free tier no credit card required.

Quick Start

01

Get a key

Sign in and generate a free API key below

02

Authenticate

Pass your key as a Bearer token in every request

03

Build

Query VCs, filter by stage/sector, paginate through results

bash
# List top seed-stage VCs
curl "https://vcpeer.com/api/v1/vcs?stage=seed&limit=10" \
  -H "Authorization: Bearer vcg_your_api_key_here"

# Get a specific VC
curl "https://vcpeer.com/api/v1/vcs/sequoia" \
  -H "Authorization: Bearer vcg_your_api_key_here"

Authentication

All API requests must include your API key as a Bearer token in the Authorization header.

http
Authorization: Bearer vcg_a1b2c3d4e5f6...

Error Responses

401

Missing or invalid API key

429

Rate limit exceeded — daily quota reached

404

Resource not found

500

Internal server error

New

API v3

v3 introduces cursor-based pagination for stable, efficient iteration and field selection to reduce payload size. All v1/v2 endpoints remain available.

Cursor Pagination

Stable iteration using opaque cursor IDs instead of page numbers. No skipped or duplicated results when data changes.

Field Selection

Request only the fields you need with ?fields=name,slug,healthScore to reduce response size.

Rate Limit Headers

Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.

Migrating from v2 to v3

Pagination: Replace page=2 with cursor=<next_cursor> from the previous response. The response shape changes from { page, total_pages } to { next_cursor, has_more }.

Field selection: Add ?fields=name,slug,healthScore to any endpoint. If omitted, all default fields are returned (same as v2).

Base URL: Change /api/v2/ to /api/v3/. All query parameters for filtering and sorting remain the same.

Reviews: v3 reviews endpoint only returns approved reviews by default.

Cursor Pagination Example

javascript
// Iterate through all VCs
let cursor = null;
let allVcs = [];

do {
  const url = new URL("https://vcpeer.com/api/v3/vcs");
  url.searchParams.set("limit", "50");
  url.searchParams.set("fields", "name,slug,healthScore");
  if (cursor) url.searchParams.set("cursor", cursor);

  const res = await fetch(url, {
    headers: { Authorization: "Bearer vcg_your_key" }
  });
  const json = await res.json();

  allVcs.push(...json.data);
  cursor = json.pagination.next_cursor;
} while (cursor);

v3 Endpoints

Rate Limits

Free

100 / day

3 keys · Resets daily midnight UTC

Pro

5,000 / day

10 keys · Resets daily midnight UTC

Enterprise

Unlimited

Unlimited · Resets daily midnight UTC

Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

Your API Keys

Sign in to generate API keys

Sign In

Endpoints

Additional endpoints: /v1/reviews, /v1/sectors, /v1/leaderboard

SDK Examples

javascript
// JavaScript / Node.js
const res = await fetch("https://vcpeer.com/api/v1/vcs?stage=seed", {
  headers: { "Authorization": "Bearer vcg_your_key" }
});
const { data, pagination } = await res.json();
console.log(`Found ${pagination.total} seed VCs`);
data.forEach(vc => console.log(`${vc.name}: ${vc.health_score}pts`));
python
# Python
import requests

headers = {"Authorization": "Bearer vcg_your_key"}
r = requests.get("https://vcpeer.com/api/v1/vcs",
    params={"stage": "seed", "limit": 20}, headers=headers)
vcs = r.json()["data"]
print(f"Top VC: {vcs[0]['name']} — peer score {vcs[0]['health_score']}")
bash
# Pipe to jq for clean output
curl -s "https://vcpeer.com/api/v1/vcs?sector=AI" \
  -H "Authorization: Bearer vcg_your_key" | \
  jq '.data[] | {name: .name, score: .health_score, ghosting: .ghosting_rate}'