Developers
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
Get a key
Sign in and generate a free API key below
Authenticate
Pass your key as a Bearer token in every request
Build
Query VCs, filter by stage/sector, paginate through results
# 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.
Authorization: Bearer vcg_a1b2c3d4e5f6...
Error Responses
401Missing or invalid API key
429Rate limit exceeded — daily quota reached
404Resource not found
500Internal server error
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
// 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 / 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
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']}")# 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}'