Private Markets

The private-capital graph: 10.6M companies, 3M deals, 4.9M people/executives, 645k investors & funds with returns (IRR/DPI/TVPI), and 100k+ limited partners — all searchable, queryable, and connected. The crown jewel of Tengu's alternative data suite, sourced from WRDS PitchBook (updated weekly) with real-time enrichment overlays (headcount, jobs, funding freshness) and automatic going-public detection.

What it is#

Private Markets is a PitchBook-grade private-company intelligence surface. It mirrors the public-equity tools but for the private capital ecosystem: search & discovery (free), full company profiles (5 credits), deal history, investor networks, fund performance (IRR/DPI/TVPI), LP commitments, board composition, and comparables. Every entity (company / investor / fund / person / LP) carries deep taxonomies, financials, and a map to traverse the graph—competitors, co-investors, portfolio companies, limited partners, people, locations, industries.

All data is sourced from WRDS PitchBook snapshots (weekly ingest) and comes with freshness metadata (as_of_ts, is_stale flag) so the Brain never presents stale figures as live. A going-public detector reconciles private-→public transitions in real time, so a company that went public is never confidently called private.

Data coverage#

DimensionCountNotes
Private companies10.6MOperating, acquired, bankrupt, and in-registration; has-ticker/public joins available
Deals / funding rounds3MType, size, pre/post valuation, investor syndicate, round number, IPO pricing
People / executives4.9MCurrent/former board, CEO/founders, positions, education, LinkedIn profiles, affiliated deals
Investors / VCs / PE firms645kType, AUM, dry powder, investment preferences (stage/size/industry/geography), portfolio company counts
Funds100k+Vintage, size, status (open/closed), team, LP base; returns time-series (IRR/DPI/TVPI/RVPI) by fund & period
Limited partners100k+Institution type, AUM, commitments (total/active/by-fund-type), allocation targets

EDGAR overlay: Company CIK codes & ticker symbols let you join to public-equity tools; a built-in flag detects and reports when a private company went public (ticker, IPO date, SEC effective date), with direct links to public profiles and filings.

Freshness: All data is a weekly WRDS PitchBook snapshot. Real-time overlays (headcount, jobs, latest funding) are available on /company/{id}/realtime and auto-cache with a 10-minute TTL. Stale data (>180 days old) is flagged in the response; the breaking-news override (?refresh=true) bypasses the 7-day cache for one rebuild.

How access works#

PlanSearch (free)ProfilesMonthly creditsCost
Free✅ (discovery only)1,000$0
Starter250,000$99
Pro✅ (5 credits)2,000,000$499
Enterprise20,000,000Custom

À-la-carte: Add Private Markets $299/mo to any paid plan (Starter, Pro, or Enterprise) to unlock the product + 0-credit searches on any plan.

Credit cost breakdown:

  • Search (/search, /search/suggest): 0 credits (discovery, all plans)
  • Company profile (/company/{id}, /dossier, /deals, /investors): 5 credits (Pro+)
  • Investor / fund / person / LP / deal profiles: 5 credits (Pro+)
  • Screener / comparables / aggregates: 5 credits (Pro+)
  • Relations (competitors, board, co-investors, etc.): 5 credits (Pro+)
  • Real-time overlay (/company/{id}/realtime): 0 credits (a lightweight short-cache merge)

Free discovery, paid detail. /search and /search/suggest are always free — they're the typeahead. The paid detail (5 credits) unlocks company profiles and the graph traversals.

Typical workflow#

  1. Search → find a company, investor, or fund by name/ticker/CIK (free)
  2. Discover → see the result ID and basic metadata (lean columns: name, sector, valuation, location, ticker)
  3. Fetch the profile/company/{id} returns every field (financials, team, contact, parent, legal status)
  4. Traverse the graph → deals, investors, competitors, board, similar companies, LPs
  5. For a VC fund → fetch the fund profile + returns time-series (IRR/DPI/TVPI per period)

Optional: Real-time overlay (/realtime) adds headcount trends and live funding freshness (short cache, moves every 10min).

Endpoints#

MethodPathCreditsDescription
GET/api/v3/private_markets/search0Full-universe search: companies/investors/funds/people/LPs by name, ticker, CIK. Returns {results} array (lean or full detail).
GET/api/v3/private_markets/search/suggest0Typeahead: company names (sub-100ms, in-memory index). Returns {results} (company hits only).
GET/api/v3/private_markets/company/{company_id}5Full company profile: EVERY field (financials, team, contact, parent, sources, classification).
GET/api/v3/private_markets/company/{company_id}/dossier5Complete detail page in one call: profile + deals + investors + competitors + similar + board (can request subsets via ?blocks=).
GET/api/v3/private_markets/company/{company_id}/realtime0Real-time enrichment overlay: headcount trend, open jobs, latest funding freshness. Short cache (10 min).
GET/api/v3/private_markets/company/{company_id}/deals5Full deal/funding-round history (newest first): size, type, round, pre/post valuation, investors.
GET/api/v3/private_markets/company/{company_id}/investors5Investors in the company (via deal↔investor relation): name, AUM, type, preferences.
GET/api/v3/private_markets/company/{company_id}/comparables5Peers: same sector, 0.2x–5x total raised (size band).
GET/api/v3/private_markets/company/{company_id}/relations5Traverse any relation: competitors, board, similar, affiliates, industries, news, financials, etc.
GET/api/v3/private_markets/companies5Screen the 10.5M-company universe by sector, geo, funding, business status, valuation, employees, founding year.
GET/api/v3/private_markets/aggregates5Market overview: buckets (sector/industry/region/country) with counts, raised, valuation, employee medians.
GET/api/v3/private_markets/investor/{investor_id}5Full investor profile: type, AUM, dry powder, portfolio, preferences (stage/size/industry/geography).
GET/api/v3/private_markets/investor/{investor_id}/relations5Investor relations: portfolio companies, funds, co-investors, LPs, board, investment focus.
GET/api/v3/private_markets/fund/{fund_id}5Full fund profile + returns time-series: IRR, DPI, TVPI, RVPI, NAV per period & quartile.
GET/api/v3/private_markets/fund/{fund_id}/relations5Fund relations: investors, LPs, team, portfolio holdings, close history, family.
GET/api/v3/private_markets/person/{person_id}5Full person profile: roles, positions, board/advisory seats, affiliated deals/funds, education, bio.
GET/api/v3/private_markets/limited_partner/{lp_id}5Full LP profile: type, AUM, commitments (total/active/by-fund-type), allocation targets.
GET/api/v3/private_markets/deal/{deal_id}5Full deal profile: size, type, valuation, investors, tranches, bonds, loans, synopsis.
GET/api/v3/private_markets/relations0List all queryable relations per entity (the graph map).

All endpoints return a JSON envelope: { "ok": true, "timestamp": "...", ...data, "cache": {...}, "source": "wrds_pitchbook", "as_of": "..." }.

Examples#

Example 1: Search and fetch a company profile#

Search for Stripe (free), then fetch its full profile (5 credits).

Shell
1# 1. Search for Stripe (returns company ID, basic info, logo_url)2curl -H "Authorization: Bearer $TENGU_API_KEY" \3  "https://firm.tengu.co/api/v3/private_markets/search?q=stripe&type=company&limit=5"4 5# Response structure:6# {7#   "ok": true,8#   "timestamp": "2024-12-16T14:22:00Z",9#   "query": "stripe",10#   "type": "company",11#   "count": 1,12#   "detail": "lean",13#   "search_mode": "index",14#   "source": "wrds_pitchbook",15#   "as_of": "2024-12-09T00:00:00Z",16#   "is_stale": false,17#   "results": [18#     {19#       "companyid": "stripe_inc_1234567",20#       "companyname": "Stripe, Inc.",21#       "ticker": null,22#       "exchange": null,23#       "primaryindustrysector": "Financial Services",24#       "primaryindustrygroup": "Fintech",25#       "hqcity": "San Francisco",26#       "hqlocation": "United States",27#       "website": "stripe.com",28#       "domain": "stripe.com",29#       "logo_url": "https://logo.clearbit.com/stripe.com",30#       "lastknownvaluation": 95000.0,31#       "lastknownvaluationdealtype": "Series G",32#       "totalraised": 18000.5,33#       "employees": 8000,34#       "yearfounded": 2010,35#       "ownershipstatus": "Privately Held",36#       "cikcode": null37#     }38#   ]39# }40 41# 2. Fetch the full profile using the companyid from above (5 credits)42curl -H "Authorization: Bearer $TENGU_API_KEY" \43  "https://firm.tengu.co/api/v3/private_markets/company/stripe_inc_1234567"44 45# Response structure:46# {47#   "ok": true,48#   "timestamp": "2024-12-16T14:22:15Z",49#   "company_id": "stripe_inc_1234567",50#   "found": true,51#   "field_count": 127,52#   "source": "wrds_pitchbook",53#   "as_of": "2024-12-09T00:00:00Z",54#   "is_stale": false,55#   "company": {56#     "companyid": "stripe_inc_1234567",57#     "companyname": "Stripe, Inc.",58#     "companyalsoknownas": "Stripe",59#     "companylegalname": "Stripe, Inc.",60#     "descriptionshort": "Fintech and payment processing platform",61#     "primaryindustrysector": "Financial Services",62#     "primaryindustrygroup": "Fintech",63#     "primaryindustrycode": "5812",64#     "companyfinancingstatus": "Venture Capital-Backed",65#     "businessstatus": "Generating Revenue",66#     "ownershipstatus": "Privately Held",67#     "totalraised": 18000.5,68#     "lastknownvaluation": 95000.0,69#     "lastknownvaluationdate": "2024-05-01",70#     "lastfinancingdate": "2024-05-01",71#     "lastfinancingdealtype": "Series G",72#     "employees": 8000,73#     "yearfounded": 2010,74#     "website": "stripe.com",75#     "domain": "stripe.com",76#     "logo_url": "https://logo.clearbit.com/stripe.com",77#     "hqlocation": "United States",78#     "hqcity": "San Francisco",79#     "hqstate_province": "California",80#     "hqcountry": "United States",81#     "cikcode": null,82#     "ticker": null,83#     "exchange": null,84#     "parentcompany": null,85#     "parentcompanyid": null,86#     "verticals": ["Financial Services", "Payments"],87#     "keywords": ["payment processing", "fintech", "payments"],88#     "...": "127 total fields (financials, contact, social, classification, etc.)"89#   },90#   "cache": {91#     "policy": "weekly",92#     "ttl_s": 604800,93#     "requested": false,94#     "refreshed": false95#   }96# }
Python
1import os, requests2 3# 1. Search (free)4r = requests.get(5    "https://firm.tengu.co/api/v3/private_markets/search",6    params={"q": "stripe", "type": "company", "limit": 5},7    headers={"Authorization": f"Bearer {os.environ['TENGU_API_KEY']}"},8    timeout=30,9)10r.raise_for_status()11data = r.json()12company_id = data["results"][0]["companyid"] if data["results"] else None13print(f"Found: {data['results'][0]['companyname']}")14print(f"Valuation: ${data['results'][0]['lastknownvaluation']}M")15print(f"Logo: {data['results'][0].get('logo_url')}")16 17# 2. Fetch full profile (5 credits)18if company_id:19    r = requests.get(20        f"https://firm.tengu.co/api/v3/private_markets/company/{company_id}",21        headers={"Authorization": f"Bearer {os.environ['TENGU_API_KEY']}"},22        timeout=30,23    )24    r.raise_for_status()25    profile = r.json()26    company = profile.get("company", {})27    print(f"\nFull profile: {company.get('field_count')} fields")28    print(f"Board/team: {company.get('boardmembers', [])}")29    print(f"Freshness: {profile['as_of']} (stale={profile.get('is_stale')})")

Example 2: Fetch a fund profile with returns#

Get a VC fund's profile and return time-series (IRR/DPI/TVPI).

Shell
1curl -H "Authorization: Bearer $TENGU_API_KEY" \2  "https://firm.tengu.co/api/v3/private_markets/fund/sequoia_capital_fund_2020_1"3 4# Response structure:5# {6#   "ok": true,7#   "timestamp": "2024-12-16T14:22:30Z",8#   "fund_id": "sequoia_capital_fund_2020_1",9#   "found": true,10#   "source": "wrds_pitchbook",11#   "as_of": "2024-12-09T00:00:00Z",12#   "is_stale": false,13#   "fund": {14#     "fundid": "sequoia_capital_fund_2020_1",15#     "fundname": "Sequoia Capital Fund 2020",16#     "fundno": "2020",17#     "investor": "Sequoia Capital",18#     "vintage": 2020,19#     "fundstatus": "Active",20#     "fundsize": 7000.0,21#     "fundcategory": "Venture Capital",22#     "fundtype": "VC",23#     "closedate": "2021-06-15",24#     "fundtargetsize": 7000.0,25#     "fundlocation": "United States",26#     "fundcountry": "United States",27#     "totalfundinvestments": 165,28#     "preferredindustry": ["Technology"],29#     "preferredverticals": ["Enterprise SaaS", "AI/ML"],30#     "preferredgeography": ["United States", "Europe"],31#     "preferreddealsize": [50, 500]32#   },33#   "returns": [34#     {35#       "fundid": "sequoia_capital_fund_2020_1",36#       "fundname": "Sequoia Capital Fund 2020",37#       "asofyear": 2024,38#       "asofquarter": "Q3",39#       "irr": 45.2,40#       "dpi": 3.8,41#       "tvpi": 4.1,42#       "rvpi": 0.3,43#       "nav": 2800.0,44#       "contributed": 7000.0,45#       "distributed": 10640.0,46#       "drypowder": 560.0,47#       "quartile": "Top Quartile"48#     },49#     {50#       "fundid": "sequoia_capital_fund_2020_1",51#       "fundname": "Sequoia Capital Fund 2020",52#       "asofyear": 2024,53#       "asofquarter": "Q2",54#       "irr": 42.8,55#       "dpi": 3.5,56#       "tvpi": 3.8,57#       "rvpi": 0.3,58#       "nav": 2950.0,59#       "contributed": 7000.0,60#       "distributed": 10150.0,61#       "drypowder": 450.0,62#       "quartile": "Top Quartile"63#     }64#   ],65#   "cache": {66#     "policy": "weekly",67#     "ttl_s": 604800,68#     "requested": false,69#     "refreshed": false70#   }71# }

Example 3: Company dossier (profile + deals + investors + board in one call)#

Fetch the complete detail page for a company — all the context you need in a single cached call.

Shell
1curl -H "Authorization: Bearer $TENGU_API_KEY" \2  "https://firm.tengu.co/api/v3/private_markets/company/stripe_inc_1234567/dossier?limit=50&peers=25&investors=100&blocks=deals,investors,competitors,board"3 4# Response structure:5# {6#   "ok": true,7#   "timestamp": "2024-12-16T14:22:45Z",8#   "company_id": "stripe_inc_1234567",9#   "found": true,10#   "company": {11#     "companyid": "...",12#     "companyname": "Stripe, Inc.",13#     "...": "127 fields"14#   },15#   "deals": {16#     "rows": [17#       { "dealid": "...", "dealdate": "2024-05-01", "dealtype": "Series G", "dealsize": 6500.0, ... },18#       { "dealid": "...", "dealdate": "2023-08-01", "dealtype": "Series F", "dealsize": 2800.0, ... }19#     ],20#     "count": 1221#   },22#   "investors": {23#     "company_id": "stripe_inc_1234567",24#     "relation": "investors",25#     "rows": [26#       {27#         "investorid": "sequoia_capital_1",28#         "investorname": "Sequoia Capital",29#         "primaryinvestortype": "Venture Capital",30#         "aum": 250000.0,31#         "drypowder": 45000.0,32#         "totalinvestments": 890,33#         "medianvaluation": 250.034#       }35#     ],36#     "investors": [37#       { "investorid": "sequoia_capital_1", "investorname": "Sequoia Capital", ... }38#     ],39#     "count": 1540#   },41#   "competitors": {42#     "company_id": "stripe_inc_1234567",43#     "relation": "competitors",44#     "rows": [45#       {46#         "competitorid": "square_1",47#         "competitorname": "Square, Inc.",48#         "totalraised": 2800.0,49#         "lastknownvaluation": 8000.050#       }51#     ],52#     "companies": [53#       { "companyid": "square_1", "companyname": "Square, Inc.", ... }54#     ],55#     "count": 856#   },57#   "board": {58#     "company_id": "stripe_inc_1234567",59#     "relation": "board",60#     "rows": [61#       {62#         "personid": "ceo_patrick_collison_1",63#         "fullname": "Patrick Collison",64#         "primaryposition": "Co-founder & CEO",65#         "primarycompany": "Stripe, Inc."66#       }67#     ],68#     "people": [69#       { "personid": "...", "fullname": "Patrick Collison", ... }70#     ],71#     "count": 1272#   },73#   "source": "wrds_pitchbook",74#   "as_of": "2024-12-09T00:00:00Z",75#   "is_stale": false,76#   "cache": { "policy": "weekly", "ttl_s": 604800, "requested": false, "refreshed": false }77# }

Notes#

  • Freshness: All data is sourced from WRDS PitchBook weekly snapshots. Every response carries as_of (the snapshot date) and is_stale (true if >180 days old). The /realtime overlay adds live headcount & job freshness on a 10-minute cache.

  • Going-public detection: If a company went public, the response includes a public_transition block with the IPO date, ticker, and a link to public-equity tools (tengu_v3_fundamentals_price_snapshot, tengu_v3_fundamentals_company_facts). Historical private figures are marked as stale and never presented as current.

  • Breaking-news override: Add ?refresh=true to bypass the 7-day cache for one rebuild. Debounced per key (cooldown 30s) and globally capped (20 refreshes/minute) to prevent abuse.

  • Search scope: /search covers all 10.6M companies (via a confidence-gated Athena substring match), not just the top-100K index. A tail company (outside the prominent index) is still discoverable.

  • Errors: On 402 plan_required, the response body names which plan unlocks Private Markets (Pro or Enterprise, or the $299/mo add-on). No credits charged on any error.

  • Rate limits: Pro plan: 600 req/min. Enterprise: 6,000 req/min. See Pricing & credits for details.