### GET /v1/live-orderbook
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns all live orders on the Caplight platform.
```markdown
### Parameters
- **pageNumber** (number, query, optional): Page number (1-based). First page is 1.
### Responses
#### 200 - successful operation
**LiveOrderbook**
- **liveOrderbook** (array (OrderWithCompanyMeta))
Array items:
- **companyMeta** (object)
- **name** (string): Company name (example: "Stripe")
- **domain** (string): Company top-level web domain (example: "stripe.com")
- **caplightId** (string): Caplight Company ID (example: "12d3140kjf90")
- **pitchbookId** (string): Pitchbook Company ID (example: "54782-29")
- **id** (string): Unique record ID (example: "okP88RZSS9e1owCq73iD")
- **direction** (string (bid|offer)): The type of order (bid/offer) (example: "bid") ("bid"|"offer")
- **price** (number (double)): Share price USD (does not include split adjustments to today, i.e. reflective of the share count at the time) (example: 15.9)
- **valuation** (number (double)): Implied valuation USD (example: 5000000000)
- **volume** (number (double)): (Deprecated field - replaced with minVolume). Order volume in USD, minimum amount (example: 1000000)
- **minVolume** (number (double)): Order volume in USD, minimum amount (example: 1000000)
- **maxVolume** (number (double)): Order volume in USD, maximum amount (example: 5000000)
- **minShares** (number (int)): Order share count, minimum amount (example: 80000)
- **maxShares** (number (int)): Order share count, maximum amount (example: 100000)
- **structure** (string (unknown|direct|spv|forward|call_option|put_option|swap|variable_prepaid_forward|exchange_fund)) (example: "spv") ("unknown"|"direct"|"spv"|"forward"|"call_option"|"put_option"|"swap"|"variable_prepaid_forward"|"exchange_fund")
- **isLive** (boolean): Whether an order is currently live (example: true)
- **managementFee** (number (double)): SPV management fee (if exists). Percentage value expressed as a decimal (example: 0.01)
- **carry** (number (double)): SPV carry (if exists). Percentage value expressed as a decimal (example: 0.2)
- **shareClasses** (array (string (common|preferred|unknown))): May be an empty array or null (example: ["common"])
- **brokerClientRelationship** (string (direct|indirect)): Broker's relationship with the end-client (investor/shareholder) behind an order. "indirect" means the broker is working with a client through another broker. (example: "direct") ("direct"|"indirect")
- **originationDate** (string): ISO formatted datetime (example: "2023-01-26T05:56:30 +00:00")
- **date** (string): ISO formatted date without time (example: "2022-09-10")
- **lastUpdatedAt** (string): ISO formatted datetime (example: "2023-01-26T05:56:30 +00:00")
- **pagination** (object)
- **pageNumber** (integer): Page number (1-based). First page is 1. (example: 1)
- **numPages** (integer): Total number of pages for the result set (example: 10)
- **totalRecords** (integer): Total number of records for the result set (example: 250)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v1/live-orderbook?pageNumber=0"
```
```
--------------------------------
### GET /v1/filings/cois/all
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns all COI filings in the Caplight database, ordered by most recently added/updated
```markdown
### Parameters
- **pageNumber** (number, query, optional): Page number (1-based). First page is 1.
### Responses
#### 200 - successful operation
**AllCOIsResponse**
- **cois** (array (COI))
Array items:
- **id** (string): Unique COI ID
- **company** (object)
- **name** (string): Company name (example: "Stripe")
- **domain** (string): Company top-level web domain (example: "stripe.com")
- **caplightId** (string): Caplight Company ID (example: "12d3140kjf90")
- **pitchbookId** (string): Pitchbook Company ID (example: "54782-29")
- **filingDate** (string): ISO formatted date without time (example: "2022-09-10")
- **fileMeta** (object)
- **pdfAvailable** (boolean): Whether the PDF version of the COI is available
- **htmlAvailable** (boolean): Whether the HTML version of the COI is available
- **numberOfPages** (number): Number of pages in the COI. May be null
- **createdAt** (string): ISO formatted datetime (example: "2023-01-26T05:56:30 +00:00")
- **updatedAt** (string): ISO formatted datetime (example: "2023-01-26T05:56:30 +00:00")
- **pagination** (object)
- **pageNumber** (integer): Page number (1-based). First page is 1. (example: 1)
- **numPages** (integer): Total number of pages for the result set (example: 10)
- **totalRecords** (integer): Total number of records for the result set (example: 250)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v1/filings/cois/all?pageNumber=0"
```
```
--------------------------------
### GET /v1/companies/quarterly-market-summary
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns quarterly market summary for a company by Caplight ID.
```markdown
### Parameters
- **caplightId** (string, query, optional): Company Caplight Id
- **pitchbookId** (string, query, optional): Company Pitchbook Id
- **domain** (string, query, optional): Company web domain (e.g. stripe.com). Multiple companies may share the same domain due to acquisitions, mergers, or other reasons. In such cases, only the company with the highest valuation is returned. For precise lookups, prefer querying by caplightId or pitchbookId.
### Responses
#### 200 - successful operation
**QuarterlyMarketSummary**
- **companyMeta** (object)
- **name** (string): Company name (example: "Stripe")
- **domain** (string): Company top-level web domain (example: "stripe.com")
- **caplightId** (string): Caplight Company ID (example: "12d3140kjf90")
- **pitchbookId** (string): Pitchbook Company ID (example: "54782-29")
- **currentMarketPricePPS** (number (double)): Current market price per share (example: 25.5)
- **currentMarketPriceValuation** (number (int64)): Current market price valuation (example: 2500000000)
- **quarterlyMarketData** (array (QuarterlyMarketData))
Array items:
- **quarter** (string): ISO formatted date without time (example: "2022-09-10")
- **quarterStart** (string): ISO formatted datetime (example: "2023-01-26T05:56:30 +00:00")
- **totalTradeVolume** (number (double)): Total volume of trades (example: 50000)
- **totalBidVolume** (number (double)): Total volume of bids (example: 75000)
- **totalOfferVolume** (number (double)): Total volume of offers (example: 65000)
- **fundMarkVWAPPrice** (number (double)): Fund mark VWAP price (example: 25.5)
- **fundMarkCount** (integer (int32)): Count of fund marks (example: 10)
- **marketPricePPSAtStartOfQuarter** (number (double)): Market price per share at start of quarter (example: 20.75)
- **marketPriceValuationAtStartOfQuarter** (number (int64)): Market price valuation at start of quarter (example: 2000000000)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v1/companies/quarterly-market-summary?caplightId=string&pitchbookId=string&domain=string"
```
```
--------------------------------
### GET /v1/filings/cois/download-stats
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns the authenticated account's COI download usage for the current calendar month (UTC).
```markdown
### Responses
#### 200 - successful operation
**COIDownloadStats**
- **monthlyLimit** (number)
- **netNewDownloads** (number)
- **overageDownloads** (number)
- **remainingDownloads** (number)
- **totalDownloads** (number)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v1/filings/cois/download-stats"
```
```
--------------------------------
### GET /v2/funding-rounds/updates
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns funding rounds that have been updated within a date range. Use this for sync/incremental ingestion. Only returns rounds for companies your account has access to.
**Window:** Rounds are returned where `updatedSince < updated_at <= upTo` (updatedSince is exclusive, upTo is inclusive).
**Ordering:** Results are ordered by `updated_at` ascending, then `id` ascending.
**Pagination:** For the first request, omit `upTo` or set it to bound your query. The response includes an `upTo` value. For pages 2 through N of the same batch, pass that same `upTo` as the `upTo` query param so pagination stays consistent.
**Checkpointing:** After fetching all pages for a batch, advance your checkpoint by setting the next request's `updatedSince` to the `upTo` value from the previous response.
**Deleted rounds:** Rounds deleted within the query range are included with `isDeleted: true`.
```markdown
### Parameters
- **updatedSince** (string (date-time), query, required): ISO 8601 date — exclusive lower bound. Return rounds with updated_at strictly after this time. Use the previous response's upTo to checkpoint for the next batch.
- **upTo** (string (date-time), query, optional): ISO 8601 date — inclusive upper bound. Return rounds with updated_at <= this time. Omit for first request (defaults to now). For pages 2..N, reuse the upTo value from the first page response.
- **pageNumber** (integer, query, optional): Page number (1-based). First page is 1.
- **pageSize** (integer, query, optional): Number of results per page (default 50, max 200)
### Responses
#### 200 - Successful operation
**FundingRoundUpdatesResponse**
- **updatedSince** (string): Exclusive lower bound used for this query
- **upTo** (string): Inclusive upper bound used for this query. Reuse this value as up_to when fetching pages 2..N; use as updated_since for the next batch after completing all pages.
- **fundingRounds** (array (FundingRoundSnapshot))
Array items:
- **id** (string): Round ID
- **company** (object): Company summary. Companies have two IDs — v1 and v2 — both provided in caplightIds for cross-referencing across API versions.
- **id** (string): v2 company ID
- **name** (string): Company name
- **domain** (string): Company website domain
- **pitchbookId** (string): Pitchbook company ID
- **caplightIds** (object): Both company ID formats for cross-referencing v1 and v2 endpoints
- **v2Id** (string): v2 company ID (same as id)
- **v1Id** (string): v1 company ID (for v1 API endpoints)
- **status** (string (announced|completed|cancelled|rumored|postponed)) ("announced"|"completed"|"cancelled"|"rumored"|"postponed")
- **isDeleted** (boolean): Soft-deleted flag
- **announcedAt** (string): Announcement date (YYYY-MM-DD)
- **completedAt** (string): Completion date (YYYY-MM-DD)
- **amounts** (object): Funding amounts broken down by total, equity, and debt
- **total** (object): A monetary value with original currency and USD equivalent
- **amount** (number): Amount in the original currency
- **currency** (string): ISO 4217 currency code (e.g. USD, EUR)
- **amountUsd** (number): Amount converted to USD
- **equity** (object): A monetary value with original currency and USD equivalent
- **debt** (object): A monetary value with original currency and USD equivalent
- **valuation** (object): Round valuation
- **preMoney** (object): A monetary value with original currency and USD equivalent
- **postMoney** (object): A monetary value with original currency and USD equivalent
- **pps** (object): A monetary value with original currency and USD equivalent
- **participants** (array (FundingRoundParticipant))
Array items:
- **id** (string): Participation record ID
- **investor** (object)
- **id** (string): Investor ID
- **type** (string (firm|individual)) ("firm"|"individual")
- **name** (string): Investor display name
- **role** (string (lead|participant|unknown)): Investor role in the round ("lead"|"participant"|"unknown")
- **citations** (array (FundingRoundCitation))
Array items:
- **id** (string)
- **type** (string (url|coi|press_release|sec_filing|news|other)) ("url"|"coi"|"press_release"|"sec_filing"|"news"|"other")
- **url** (string)
- **sourceName** (string)
- **publishedAt** (string)
- **restricted** (object): Present when one or more fields are omitted due to account field-level restrictions. The fields array lists omitted field names (e.g. amounts, valuation, pps, participants, citations). Always check for this object and handle missing fields in your integration.
- **fields** (array (string)): Names of fields omitted from the response due to account permissions
- **updatedAt** (string (date-time)): Last update timestamp
- **pagination** (object)
- **pageNumber** (integer): Page number (1-based). First page is 1. (example: 1)
- **numPages** (integer): Total number of pages for the result set (example: 10)
- **totalRecords** (integer): Total number of records for the result set (example: 250)
#### 400 - Invalid date parameters (e.g. missing or invalid updatedSince)
Invalid date parameters (e.g. missing or invalid updatedSince)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v2/funding-rounds/updates?updatedSince=2023-01-01T00:00:00Z&upTo=2023-01-01T00:00:00Z&pageNumber=1&pageSize=50"
```
```
--------------------------------
### GET /v1/market-price-history
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns MarketPrice estimate history for a company by lookup field. One (and only one) lookup field must be provided. By default the best-available price model is returned for the company: the secondaryMarket model, automatically falling back to the fundMarks model when the company has no secondaryMarket series or its secondary-market data has gone stale. Use the x-price-model header to pin a specific model. The returned series is recomputed on each model run, so the set of dates returned for a company can change between requests.
```markdown
### Parameters
- **x-price-model** (string (secondaryMarket|fundMarks), header, optional): Optional. Pins the MarketPrice model used to build the series. Allowed values (case-insensitive): "secondaryMarket" or "fundMarks". When omitted, the best-available model is served (secondaryMarket by default, falling back to fundMarks). Pin "secondaryMarket" to always receive the secondary-market series where one exists. An unrecognized value returns HTTP 400.
- **caplightId** (string, query, optional): Company Caplight Id
- **fixed** (boolean, query, optional): Whether to return the fixed (unrevised) MarketPrice history. For most use-cases do NOT supply this parameter. Only honored for the secondaryMarket price model; combining fixed=true with x-price-model=fundMarks returns HTTP 400.
- **pitchbookId** (string, query, optional): Company Pitchbook Id
- **pageNumber** (number, query, optional): Page number (1-based). First page is 1.
### Responses
#### 200 - successful operation
**MarketPriceHistory**
- **priceModel** (string (secondaryMarket|fundMarks)): The MarketPrice model that produced the returned series: "secondaryMarket" (secondary-market transaction model) or "fundMarks" (fund-marks-based model). Reflects the model selected by default or pinned via the x-price-model request header. Omitted when no series is available for the company. (example: "secondaryMarket") ("secondaryMarket"|"fundMarks")
- **daysSinceLastDataPoint** (number,null): Number of days between the most recent underlying data point (trade, order, funding round, or fund mark) and the latest MarketPrice date. Null when unavailable. (example: 10)
- **companyMeta** (object)
- **name** (string): Company name (example: "Stripe")
- **domain** (string): Company top-level web domain (example: "stripe.com")
- **caplightId** (string): Caplight Company ID (example: "12d3140kjf90")
- **pitchbookId** (string): Pitchbook Company ID (example: "54782-29")
- **marketPriceHistory** (array (MarketPrice))
Array items:
- **date** (string): ISO formatted date without time (example: "2022-09-10")
- **price** (number (double)): Share price USD (example: 15.9)
- **estimatedValuation** (number (int64)): Estimated valuation in USD (nullable) (example: 2150000000)
- **priceStandardError** (number (double)): Standard error of MarketPrice price estimate (example: 1.35)
- **lastUpdated** (string): ISO formatted date without time (example: "2022-09-10")
- **pagination** (object)
- **pageNumber** (integer): Page number (1-based). First page is 1. (example: 1)
- **numPages** (integer): Total number of pages for the result set (example: 10)
- **totalRecords** (integer): Total number of records for the result set (example: 250)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v1/market-price-history?caplightId=string&fixed=true&pitchbookId=string&pageNumber=0"
```
```
--------------------------------
### GET /v1/companies/all-with-data
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns a paginated list of companies with at least one order or trade. Optional filters: `has409aValuations` and `coisAvailable`.
```markdown
### Parameters
- **pageNumber** (number, query, optional): Page number (1-based). First page is 1.
- **has409aValuations** (boolean, query, optional): Filter to only companies with 409a valuations
- **coisAvailable** (boolean, query, optional): Filter to only companies for which Caplight tracks Certificate of Incorporation (COI) filings
### Responses
#### 200 - successful operation
**AllCompaniesWithData**
- **companies** (array (CompanyLite))
Array items:
- **name** (string): Company name (example: "Stripe")
- **caplightId** (string): Caplight Company ID (example: "12d3140kjf90")
- **pitchbookId** (string): Pitchbook Company ID (example: "54782-29")
- **domain** (string): Company website domain (example: "stripe.com")
- **status** (string): Company status (Private, Public, Acquired, or Out of business) (example: "Private")
- **caplightPageURL** (string): Caplight platform URL for the company (example: "https://platform.caplight.com/companies/38048685")
- **hqCountry** (string): Headquarters country (ISO name or code as stored) (example: "United States")
- **countryOfDomicile** (string): Country of domicile (ISO code) (example: "US")
- **industry** (string): Caplight primary industry label (example: "FinTech")
- **legalName** (string): Legal entity name when available (example: "Stripe, Inc.")
- **has409aValuations** (boolean): Whether the company has at least one 409A valuation on file
- **coisAvailable** (boolean): Whether Caplight tracks COI (Certificate of Incorporation) filings for this company
- **pagination** (object)
- **pageNumber** (integer): Page number (1-based). First page is 1. (example: 1)
- **numPages** (integer): Total number of pages for the result set (example: 10)
- **totalRecords** (integer): Total number of records for the result set (example: 250)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v1/companies/all-with-data?pageNumber=0&has409aValuations=true&coisAvailable=true"
```
```
--------------------------------
### GET /v1/order-history
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns 3 months of order (bid/offer) history for a company. These orders do not represent closed (completed) transactions. Either caplightId or pitchbookId must be provided.
```markdown
### Parameters
- **caplightId** (string, query, optional): Company Caplight Id
- **pitchbookId** (string, query, optional): Company Pitchbook Id
- **pageNumber** (number, query, optional): Page number (1-based). First page is 1.
### Responses
#### 200 - successful operation
**OrderHistory**
- **companyMeta** (object)
- **name** (string): Company name (example: "Stripe")
- **domain** (string): Company top-level web domain (example: "stripe.com")
- **caplightId** (string): Caplight Company ID (example: "12d3140kjf90")
- **pitchbookId** (string): Pitchbook Company ID (example: "54782-29")
- **orderHistory** (array (Order))
Array items:
- **id** (string): Unique record ID (example: "okP88RZSS9e1owCq73iD")
- **direction** (string (bid|offer)): The type of order (bid/offer) (example: "bid") ("bid"|"offer")
- **price** (number (double)): Share price USD (does not include split adjustments to today, i.e. reflective of the share count at the time) (example: 15.9)
- **valuation** (number (double)): Implied valuation USD (example: 5000000000)
- **volume** (number (double)): (Deprecated field - replaced with minVolume). Order volume in USD, minimum amount (example: 1000000)
- **minVolume** (number (double)): Order volume in USD, minimum amount (example: 1000000)
- **maxVolume** (number (double)): Order volume in USD, maximum amount (example: 5000000)
- **minShares** (number (int)): Order share count, minimum amount (example: 80000)
- **maxShares** (number (int)): Order share count, maximum amount (example: 100000)
- **structure** (string (unknown|direct|spv|forward|call_option|put_option|swap|variable_prepaid_forward|exchange_fund)) (example: "spv") ("unknown"|"direct"|"spv"|"forward"|"call_option"|"put_option"|"swap"|"variable_prepaid_forward"|"exchange_fund")
- **isLive** (boolean): Whether an order is currently live (example: true)
- **managementFee** (number (double)): SPV management fee (if exists). Percentage value expressed as a decimal (example: 0.01)
- **carry** (number (double)): SPV carry (if exists). Percentage value expressed as a decimal (example: 0.2)
- **shareClasses** (array (string (common|preferred|unknown))): May be an empty array or null (example: ["common"])
- **brokerClientRelationship** (string (direct|indirect)): Broker's relationship with the end-client (investor/shareholder) behind an order. "indirect" means the broker is working with a client through another broker. (example: "direct") ("direct"|"indirect")
- **originationDate** (string): ISO formatted datetime (example: "2023-01-26T05:56:30 +00:00")
- **date** (string): ISO formatted date without time (example: "2022-09-10")
- **lastUpdatedAt** (string): ISO formatted datetime (example: "2023-01-26T05:56:30 +00:00")
- **pagination** (object)
- **pageNumber** (integer): Page number (1-based). First page is 1. (example: 1)
- **numPages** (integer): Total number of pages for the result set (example: 10)
- **totalRecords** (integer): Total number of records for the result set (example: 250)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v1/order-history?caplightId=string&pitchbookId=string&pageNumber=0"
```
```
--------------------------------
### API Overview: Caplight REST API
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
This page provides documentation for the Caplight API, a paid add-on product of [Caplight Data](https://www.data.caplight.com). To request API access, please contact us at contact@caplight.com.
# Production server
https://us-central1-caplight-prod.cloudfunctions.net/api/public
# Staging/sandbox server
https://us-central1-caplight-staging.cloudfunctions.net/api/public
# API versions
Endpoints are versioned via path prefix: `/v1/` for company, market price, and order book; `/v2/` for funding rounds and investors.
# Company IDs
Companies have two ID formats: a **v1 company ID** (used in v1 endpoints) and a **v2 company ID** (used in v2 endpoints). The `company` object in v2 responses includes both in `caplightIds` for cross-referencing. Path params that accept company identifiers support either format, plus PitchBook ID where applicable.
# V2 Access & Permissions
**Company access:** v2 funding round and investor endpoints enforce per-account access control. Your account may have (1) a whitelist of permitted companies, (2) an annual limit on distinct companies you can access, or both. Accessing the same company multiple times counts once toward the limit. The `/funding-rounds/updates` endpoint returns only rounds for companies you have access to.
**Restricted fields:** Some accounts have field-level restrictions. When a field is restricted, it is omitted from the response and its name appears in `restricted.fields` on the funding round object. Restricted fields may include: `amounts`, `valuation`, `pps`, `participants`, `citations`. Check for a `restricted` object and handle omitted fields in your integration.
# Widget Embed
In addition to this API, Caplight also provides an embeddable widget for customers who would like an easy way of integrating Caplight Data into their platform. [See example](https://storage.googleapis.com/caplight-prod.appspot.com/images/embed-example-3.png). For inquiries, please contact us directly.
# Authentication
```yaml
# Caplight REST API
# Version: 2.0.0
This page provides documentation for the Caplight API, a paid add-on product of [Caplight Data](https://www.data.caplight.com). To request API access, please contact us at contact@caplight.com.
# Production server
https://us-central1-caplight-prod.cloudfunctions.net/api/public
# Staging/sandbox server
https://us-central1-caplight-staging.cloudfunctions.net/api/public
# API versions
Endpoints are versioned via path prefix: `/v1/` for company, market price, and order book; `/v2/` for funding rounds and investors.
# Company IDs
Companies have two ID formats: a **v1 company ID** (used in v1 endpoints) and a **v2 company ID** (used in v2 endpoints). The `company` object in v2 responses includes both in `caplightIds` for cross-referencing. Path params that accept company identifiers support either format, plus PitchBook ID where applicable.
# V2 Access & Permissions
**Company access:** v2 funding round and investor endpoints enforce per-account access control. Your account may have (1) a whitelist of permitted companies, (2) an annual limit on distinct companies you can access, or both. Accessing the same company multiple times counts once toward the limit. The `/funding-rounds/updates` endpoint returns only rounds for companies you have access to.
**Restricted fields:** Some accounts have field-level restrictions. When a field is restricted, it is omitted from the response and its name appears in `restricted.fields` on the funding round object. Restricted fields may include: `amounts`, `valuation`, `pps`, `participants`, `citations`. Check for a `restricted` object and handle omitted fields in your integration.
# Widget Embed
In addition to this API, Caplight also provides an embeddable widget for customers who would like an easy way of integrating Caplight Data into their platform. [See example](https://storage.googleapis.com/caplight-prod.appspot.com/images/embed-example-3.png). For inquiries, please contact us directly.
# Authentication
# Base URL: //us-central1-caplight-prod.cloudfunctions.net/api/public
```
--------------------------------
### GET /v1/comps-performance
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns a time series of public comparable performance data as a daily percentage change relative to the beginning of a time period for a private company
```markdown
### Parameters
- **caplightId** (string, query, optional): Company Caplight Id
- **pitchbookId** (string, query, optional): Company Pitchbook Id
- **startDate** (Date, query, optional): Start date and base line for public comparable performance
- **endDate** (Date, query, optional): End date for public comparable performance
### Responses
#### 200 - successful operation
**ComparablePerformance**
- **companyMeta** (object)
- **name** (string): Company name (example: "Stripe")
- **domain** (string): Company top-level web domain (example: "stripe.com")
- **caplightId** (string): Caplight Company ID (example: "12d3140kjf90")
- **pitchbookId** (string): Pitchbook Company ID (example: "54782-29")
- **compsPerformanceOverTime** (array (PublicComparablePerformanceOverTime))
Array items:
- **date** (string): ISO formatted date without time (example: "2022-09-10")
- **percentageChangeVsTimePeriodStart** (number): Percent change negative or positive since start of time period (example: 20.5)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v1/comps-performance?caplightId=string&pitchbookId=string&startDate=value&endDate=value"
```
```
--------------------------------
### GET /v2/companies/{companyId}
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns the canonical Company resource: identity (name, legal name, location), descriptions, and the latest LLM-generated firmographic tags (sectors / verticals / keywords with attribution). Empty tag arrays and `tags.generatedAt: null` when the company has never been tagged.
```markdown
### Parameters
- **companyId** (string, path, required): Company identifier: v2 company ID, v1 company ID, or PitchBook ID (e.g. 41339-53)
### Responses
#### 200 - Successful operation
**PublicCompanyDetails**
- **id** (string) (required): v2 company ID
- **name** (string) (required): Company name
- **domain** (string) (required): Company website domain
- **pitchbookId** (string) (required): Pitchbook company ID
- **caplightIds** (object) (required)
- **v2Id** (string) (required)
- **v1Id** (string) (required)
- **legalName** (string) (required)
- **description** (string) (required)
- **shortDescription** (string) (required)
- **location** (object) (required)
- **country** (string) (required)
- **state** (string) (required)
- **city** (string) (required)
- **tags** (object) (required)
- **sectors** (array (PublicSectorTag)) (required)
Array items:
- **name** (string) (required)
- **confidence** (number) (required)
- **attribution** (number) (required)
- **verticals** (array (PublicVerticalTag)) (required)
Array items:
- **keywords** (array (PublicKeywordTag)) (required)
Array items:
- **keyword** (string) (required)
- **attribution** (number) (required)
- **generatedAt** (string (date-time)) (required): ISO timestamp of the latest LLM tagging run; null if the company has never been tagged.
#### 401 - Missing or invalid API key
Missing or invalid API key
#### 403 - Account does not have Companies V2 API access, or company is outside whitelist / over annual cap
Account does not have Companies V2 API access, or company is outside whitelist / over annual cap
#### 404 - Company not found
Company not found
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v2/companies/{companyId}"
```
```
--------------------------------
### GET /v2/composite-index
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns a market-cap or equal-weighted composite index timeseries for companies in a given sector or vertical. The index is rebased to 100 on the start date. Each day includes constituent weights and implied market caps. Companies that have exited (M&A or IPO) are automatically excluded after their exit date.
```markdown
### Parameters
- **sector** (string, query, optional): Sector name to filter companies by. Provide either `sector` or `vertical`, not both.
- **vertical** (string, query, optional): Vertical name to filter companies by. Provide either `sector` or `vertical`, not both.
- **weightMethod** (string (market_cap|equal), query, optional): Weighting method for the index.
- **weightCap** (number, query, optional): Maximum weight for any single constituent (0-1). 0 means no cap.
- **startDate** (Date, query, optional): Start date for the timeseries. Defaults to 1 year ago.
- **endDate** (Date, query, optional): End date for the timeseries. Defaults to yesterday.
- **topN** (integer, query, optional): Number of top companies by implied market cap to include per day. 0 means no limit.
- **utcHour** (integer, query, optional): UTC hour cutoff for daily price snapshots. Must be one of 0, 4, 8, 12, 16, 20. Use 16 or 20 for best coverage of US market activity.
- **minConfidence** (number, query, optional): Minimum confidence threshold for sector/vertical classification.
- **minAttribution** (number, query, optional): Minimum attribution threshold for sector/vertical classification.
- **includeBespokePublicIndex** (boolean, query, optional): When true, also returns a market-cap-weighted index of the top-N public companies tagged to the same sector/vertical (same `topN` as the private side). Present in the response under `bespokePublicIndex`.
- **includeEtf** (boolean, query, optional): When true, also returns daily close series for representative ETFs mapped to the sector/vertical. Verticals fall back to their parent sector's ETF list if they have no direct entry. Present in the response under `etfs` and `etfMappingSource`.
### Responses
#### 200 - Successful operation
**CompositeIndexResponse**
- **timeseries** (array (CompositeIndexTimeseriesPoint)) (required)
Array items:
- **date** (string): ISO formatted date without time (example: "2022-09-10")
- **index** (number): Index value (rebased to 100 on start date)
- **constituents** (array (CompositeIndexConstituent))
Array items:
- **id** (string,null): Company identifier (UUID). Same as the companyId used in other v2 endpoints.
- **name** (string,null): Company name
- **weight** (number): Constituent weight in the index (0-1)
- **impliedMarketCap** (number): Implied market capitalization in USD
- **metadata** (object)
- **bespokePublicIndex** (object)
- **timeseries** (array (object)) (required)
Array items:
- **date** (string) (required): ISO formatted date without time (example: "2022-09-10")
- **index** (number) (required)
- **constituents** (array (object)) (required)
Array items:
- **ticker** (string) (required)
- **weight** (number) (required)
- **marketCap** (number) (required)
- **metadata** (object)
- **etfs** (array (CompositeIndexEtfEntry)): Optional overlay. Omitted when `includeEtf` is false; otherwise always an array (never null). An empty array means either (a) no ETF mapping was configured for this sector/vertical (`etfMappingSource === 'none'`, no overlay warning with code `python-error`), or (b) the overlay failed and soft-degraded (check `warnings[]` for an entry with `overlay === 'etf-price-timeseries'` and `code === 'python-error' | 'vertical-not-found' | 'etf-mapping-missing'`). Happy-path responses carry one or more ETF entries.
Array items:
- **ticker** (string) (required) (example: "ARKF")
- **name** (string) (required) (example: "ARK Fintech Innovation ETF")
- **timeseries** (array (object)) (required)
Array items:
- **date** (string) (required): ISO formatted date without time (example: "2022-09-10")
- **close** (number) (required)
- **etfMappingSource** (string (sector|vertical|parent_sector|none)): Which lookup path the ETF mapping resolved via. `parent_sector` means the vertical had no direct entry and fell back to its parent sector. Omitted when `includeEtf` is false. ("sector"|"vertical"|"parent_sector"|"none")
- **warnings** (array (CompositeIndexWarning)) (required): Structured warnings surfaced by the private index and any requested overlays. Callers can filter on `overlay` + `code` without regex-matching the free-form `message`.
Array items:
- **overlay** (string (bespoke-public-index|etf-price-timeseries|composite-index)) (required) ("bespoke-public-index"|"etf-price-timeseries"|"composite-index")
- **code** (string (no-public-tickers|empty-result|python-error|python-warning|python-metadata-error|missing-constituents|etf-mapping-missing|vertical-not-found)) (required): Structured warning code. `python-warning` propagates a free-form warning from the python server's `warnings[]` field (e.g. 'thin universe', 'coverage warning') regardless of which overlay emitted it. `python-metadata-error` indicates the python server returned HTTP 200 with `metadata.error` set, typically a partial failure. `python-error` is a full overlay failure — the overlay soft-degraded but the primary index still succeeded. `vertical-not-found` means the ETF overlay caller passed a vertical that doesn't exist in the classification DB. ("no-public-tickers"|"empty-result"|"python-error"|"python-warning"|"python-metadata-error"|"missing-constituents"|"etf-mapping-missing"|"vertical-not-found")
- **message** (string) (required)
#### 400 - Invalid parameters
**ErrorResponse**
- **status** (string) (example: "error")
- **error** (string) (example: "sector or vertical query param is required")
#### 404 - No companies found for the given filter
**ErrorResponse**
- **status** (string) (example: "error")
- **error** (string) (example: "sector or vertical query param is required")
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v2/composite-index?sector=string&vertical=string&weightMethod=market_cap&weightCap=0&startDate=value&endDate=value&topN=10&utcHour=16&minConfidence=0.6&minAttribution=0.2&includeBespokePublicIndex=false&includeEtf=false"
```
```
--------------------------------
### Schema: Timestamp
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
ISO formatted datetime
```markdown
## Schema: Timestamp
ISO formatted datetime
**Type:** string
```
--------------------------------
### GET /v1/stock-splits
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns all stock splits for all companies, ordered by most recently added/revised to the Caplight database
```markdown
### Responses
#### 200 - successful operation
**StockSplits**
- **stockSplits** (array (StockSplit))
Array items:
- **companyMeta** (object)
- **name** (string): Company name (example: "Stripe")
- **domain** (string): Company top-level web domain (example: "stripe.com")
- **caplightId** (string): Caplight Company ID (example: "12d3140kjf90")
- **pitchbookId** (string): Pitchbook Company ID (example: "54782-29")
- **postSplitShares** (number): Post-stock split share count. A post-split value of 10 and pre-split value of 1 implies a 10-to-1 stock split. (example: 10)
- **preSplitShares** (number): Pre-stock split share count. A post-split value of 10 and pre-split value of 1 implies a 10-to-1 stock split. (example: 1)
- **stockSplitDate** (string): ISO formatted datetime (example: "2023-01-26T05:56:30 +00:00")
- **createdAt** (string): ISO formatted datetime (example: "2023-01-26T05:56:30 +00:00")
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v1/stock-splits"
```
```
--------------------------------
### GET /v2/composite-index/sectors
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns a list of all active sector names that can be used with the composite index endpoint.
```markdown
### Responses
#### 200 - Successful operation
- Array of string
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v2/composite-index/sectors"
```
```
--------------------------------
### GET /v2/composite-index/verticals
Source: https://us-central1-caplight-prod.cloudfunctions.net/api/v2/spec
Returns a list of all active verticals with their parent sector names. Optionally filter by sector.
```markdown
### Parameters
- **sector** (string, query, optional): Filter verticals by sector name. Must be a valid sector (use /composite-index/sectors to list).
### Responses
#### 200 - Successful operation
- Array of object
- **name** (string)
- **sectorName** (string)
### Example Usage
```bash
curl -X GET "//us-central1-caplight-prod.cloudfunctions.net/api/public/v2/composite-index/verticals?sector=string"
```
```