US Private Fundraising Filings
US private companies that just raised — offering amount, first-sale date and officers, as declared in their filings.
513 rows in the dataset
Download the dataset
Get every row this scraper has collected as one CSV or JSONL file. If the data is older than maxAgeHours, the scraper is re-run with its configured settings first. The key needs the datasets:export scope.
DOWNLOAD_ID=$(curl -s -X POST "https://api.pandorlabs.com/v1/datasets/us-private-fundraising/downloads" \ -H "Authorization: Bearer $PANDORLABS_KEY" \ -H "Content-Type: application/json" \ -d '{"maxAgeHours":24,"format":"csv"}' | jq -r '.id')while true; do STATUS=$(curl -s "https://api.pandorlabs.com/v1/downloads/$DOWNLOAD_ID" \ -H "Authorization: Bearer $PANDORLABS_KEY" | jq -r '.status') [ "$STATUS" != "refreshing" ] && break sleep 5donecurl -s "https://api.pandorlabs.com/v1/downloads/$DOWNLOAD_ID/file" \ -H "Authorization: Bearer $PANDORLABS_KEY" \ -o dataset.csvAt its current 513 rows, this download costs 6 credits when the data is fresh enough, or 12 credits when it has to be refreshed first.
The rate is 1 credit per 100 rows cached and 2 credits live, charged on the rows in the dataset when the download becomes ready. A failed refresh is not charged. The file stays downloadable for 24 hours. See pricing.
Start a run
To choose the targets yourself, send the parameters below as input. The call returns 202 with the run; the key needs the scrapers:run scope and the account a positive credit balance.
curl -X POST "https://api.pandorlabs.com/v1/scrapers/us-private-fundraising/runs" \ -H "Authorization: Bearer $PANDORLABS_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": { "lookbackDays": 7, "excludeFunds": true, "industryGroups": [ "Agriculture" ], "minAmountSold": 0 } }'A run is billed at the live rate once it finishes: 2 credits per 100 rows it collected. A run that collects nothing costs nothing.
Parameters
Every parameter is optional. Anything you leave out uses the default shown here; an unknown name or an invalid value is rejected with a 400 that lists each problem.
Targeting
lookbackDaysnumber
Look back (days)
Daily indexes are walked one calendar day at a time. Weekends and federal holidays have no index and are skipped.
- Default
7- Range
- 1 to 365
excludeFundsboolean
Exclude investment vehicles
Drops filings whose industry group is one of: Pooled Investment Fund, Investing, Investment Banking, Other Banking and Financial Services, REITS and Finance. About two thirds of all Form D filings are funds raising from their own investors, which are not leads.
- Default
true
industryGroupsenum[]
Industry groups
Empty means every group that survives the fund screen. A business-to-business starting point: Business Services, Computers, Other Technology, Telecommunications, Biotechnology, Pharmaceuticals, Manufacturing, Retailing.
- Default
- none
- Allowed values
AgricultureAirlines and AirportsBiotechnologyBusiness ServicesCoal MiningCommercial BankingComputersConstructionElectric UtilitiesEnergy ConservationEnvironmental ServicesHealth InsuranceHospitals and PhysiciansInsuranceInvestingInvestment BankingLodging and ConventionsManufacturingOil and GasOtherOther Banking and Financial ServicesOther EnergyOther Health CareOther Real EstateOther TechnologyOther TravelPharmaceuticalsPooled Investment FundREITS and FinanceResidentialRestaurantsRetailingTelecommunicationsTourism and Travel Services
minAmountSoldnumber
Minimum raised ($)
Screens on the amount already sold, not the amount offered. A filing reporting $0 sold has announced an offering it has not closed.
- Default
0- Range
- at least 0
maxAmountSoldnumber
Maximum raised ($)
Zero means no upper bound.
- Default
0- Range
- at least 0
statesstring[]
Issuer states
Two-letter codes, matched against the issuer's own address. Empty means anywhere.
- Default
- none
- Example
CA, NY, TX
newIssuersOnlyboolean
Recently incorporated issuers only
Keeps only issuers who declared incorporation within the last five years.
- Default
false
Advanced
includeAmendmentsboolean
Include amendments (D/A)
An amendment usually reports a later closing at a higher amount, which is a live signal in its own right. Rows carry `is_amendment` either way.
- Default
true
filedFromstring
Filed from (YYYY-MM-DD)
Overrides the lookback window.
- Default
- none
- Example
2026-08-01
filedTostring
Filed to (YYYY-MM-DD)
- Default
- none
- Example
2026-08-31
maxFilingsnumber
Max filings per run
Each filing costs one extra request, so this is the main lever on run time.
- Default
2000- Range
- 1 to 50000
requestDelayMsnumber
Delay between requests (ms)
EDGAR asks for no more than ten requests a second and blocks clients that ignore it. The floor here is deliberate.
- Default
120- Range
- 100 to 30000
userAgentstring
User-Agent override
Defaults to the SEC_EDGAR_USER_AGENT environment variable. EDGAR's access policy requires a name and a contact address.
- Default
- none
- Example
Acme Research [email protected]
Input as JSON Schema
The same schema the API validates against. Use it as a tool input schema or to generate a typed client.
{ "type": "object", "additionalProperties": false, "properties": { "lookbackDays": { "type": "number", "minimum": 1, "maximum": 365, "title": "Look back (days)", "description": "Daily indexes are walked one calendar day at a time. Weekends and federal holidays have no index and are skipped.", "default": 7 }, "excludeFunds": { "type": "boolean", "title": "Exclude investment vehicles", "description": "Drops filings whose industry group is one of: Pooled Investment Fund, Investing, Investment Banking, Other Banking and Financial Services, REITS and Finance. About two thirds of all Form D filings are funds raising from their own investors, which are not leads.", "default": true }, "industryGroups": { "type": "array", "items": { "type": "string", "enum": [ "Agriculture", "Airlines and Airports", "Biotechnology", "Business Services", "Coal Mining", "Commercial Banking", "Computers", "Construction", "Electric Utilities", "Energy Conservation", "Environmental Services", "Health Insurance", "Hospitals and Physicians", "Insurance", "Investing", "Investment Banking", "Lodging and Conventions", "Manufacturing", "Oil and Gas", "Other", "Other Banking and Financial Services", "Other Energy", "Other Health Care", "Other Real Estate", "Other Technology", "Other Travel", "Pharmaceuticals", "Pooled Investment Fund", "REITS and Finance", "Residential", "Restaurants", "Retailing", "Telecommunications", "Tourism and Travel Services" ] }, "uniqueItems": true, "title": "Industry groups", "description": "Empty means every group that survives the fund screen. A business-to-business starting point: Business Services, Computers, Other Technology, Telecommunications, Biotechnology, Pharmaceuticals, Manufacturing, Retailing.", "default": [] }, "minAmountSold": { "type": "number", "minimum": 0, "title": "Minimum raised ($)", "description": "Screens on the amount already sold, not the amount offered. A filing reporting $0 sold has announced an offering it has not closed.", "default": 0 }, "maxAmountSold": { "type": "number", "minimum": 0, "title": "Maximum raised ($)", "description": "Zero means no upper bound.", "default": 0 }, "states": { "type": "array", "items": { "type": "string" }, "maxItems": 1000, "title": "Issuer states", "description": "Two-letter codes, matched against the issuer's own address. Empty means anywhere.", "default": [], "examples": [ "CA, NY, TX" ] }, "newIssuersOnly": { "type": "boolean", "title": "Recently incorporated issuers only", "description": "Keeps only issuers who declared incorporation within the last five years.", "default": false }, "includeAmendments": { "type": "boolean", "title": "Include amendments (D/A)", "description": "An amendment usually reports a later closing at a higher amount, which is a live signal in its own right. Rows carry `is_amendment` either way.", "default": true }, "filedFrom": { "type": "string", "maxLength": 2000, "title": "Filed from (YYYY-MM-DD)", "description": "Overrides the lookback window.", "examples": [ "2026-08-01" ] }, "filedTo": { "type": "string", "maxLength": 2000, "title": "Filed to (YYYY-MM-DD)", "examples": [ "2026-08-31" ] }, "maxFilings": { "type": "number", "minimum": 1, "maximum": 50000, "title": "Max filings per run", "description": "Each filing costs one extra request, so this is the main lever on run time.", "default": 2000 }, "requestDelayMs": { "type": "number", "minimum": 100, "maximum": 30000, "title": "Delay between requests (ms)", "description": "EDGAR asks for no more than ten requests a second and blocks clients that ignore it. The floor here is deliberate.", "default": 120 }, "userAgent": { "type": "string", "maxLength": 2000, "title": "User-Agent override", "description": "Defaults to the SEC_EDGAR_USER_AGENT environment variable. EDGAR's access policy requires a name and a contact address.", "examples": [ "Acme Research [email protected]" ] } }}Run, poll, read rows
The run is asynchronous. Poll it until it reaches a terminal status and its billing is paid, then page through its rows. Until then the rows endpoint answers 409 (still queued or running) or 402 (payment required).
RUN_ID=$(curl -s -X POST "https://api.pandorlabs.com/v1/scrapers/us-private-fundraising/runs" \ -H "Authorization: Bearer $PANDORLABS_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": { "lookbackDays": 7, "excludeFunds": true, "industryGroups": [ "Agriculture" ], "minAmountSold": 0 } }' | jq -r '.id')while true; do RUN=$(curl -s "https://api.pandorlabs.com/v1/runs/$RUN_ID" \ -H "Authorization: Bearer $PANDORLABS_KEY") STATUS=$(echo "$RUN" | jq -r '.status') BILLING=$(echo "$RUN" | jq -r '.billing.status') case "$STATUS" in queued|running) ;; *) [ "$BILLING" != "pending" ] && break ;; esac sleep 5doneecho "$RUN" | jq '{status, rowCount, billing}'curl -s "https://api.pandorlabs.com/v1/runs/$RUN_ID/rows?page=1&limit=100" \ -H "Authorization: Bearer $PANDORLABS_KEY"See the API reference for pagination, cancelling and listing runs.
Output fields
Rows have no fixed schema; these are the fields observed in the rows collected so far. Coverage is the share of rows where the field is present.
| Field | Type | Coverage |
|---|---|---|
| accession_number | string | 100% |
| amount_remaining | number | 86% |
| amount_sold | number | 100% |
| cik | string | 100% |
| city | string | 100% |
| date_of_first_sale | date | 89% |
| entity_type | string | 100% |
| federal_exemptions | array | 100% |
| filing_date | date | 100% |
| finders_fees | number | 100% |
| first_sale_yet_to_occur | boolean | 11% |
| form_type | string | 100% |
| has_non_accredited_investors | boolean | 100% |
| incorporated_within_five_years | boolean | 71% |
| industry_group | string | 100% |
| investor_count | number | 100% |
| is_amendment | boolean | 100% |
| is_debt_offering | boolean | 8% |
| is_equity_offering | boolean | 71% |
| is_investment_vehicle | boolean | 100% |
| issuer_name | string | 100% |
| jurisdiction_of_incorporation | string | 100% |
| minimum_investment | number | 100% |
| phone | string | 100% |
| primary_contact_name | string | 100% |
| primary_contact_role | string | 100% |
| related_persons | array | 100% |
| revenue_range | string | 100% |
| sales_commissions | number | 100% |
| signers | array | 100% |
| state | string | 100% |
| state_description | string | 100% |
| street1 | string | 100% |
| street2 | string | 48% |
| total_offering_amount | number | 86% |
| total_offering_amount_indefinite | boolean | 14% |
| year_of_incorporation | number | 71% |
| zip_code | string | 100% |
| created_at | date | 100% |
| first_seen_at | date | 100% |
| last_seen_at | date | 100% |
| updated_at | date | 100% |
| _id | string | 100% |
