# Private Placements & Exempt Offerings Database - SEC Form D > The Form D API allows accessing and searching all private security offering filings in the SEC EDGAR database from 2008 to present. Search by total offering amount, issuer size, industry group, type of offering, sales commission, minimum investment amount and more. Form D XML data is accessible in standardized JSON format, stored in our database and made searchable in real-time. Source: https://sec-api.io/docs/form-d-xml-json-api The Form D API provides an interface to access and search the entire SEC EDGAR database by any Form D filing parameter to find the latest security offerings. Structured XML data of Form D filings is converted into JSON format and made searchable by the API. New Form D filings are added to the corpus in real-time. Find Form D offerings by entity type such as corporations and trusts, by industry group (e.g. insurance, hedge funds, venture capital funds), net asset value ranges (e.g. $25 to $50 million), type of offering (e.g. debt or equity), total offering amount, sales comission, minimum investment amount and any other Form D item. Dataset size: All Form D offerings filed since 2008 to present. Data update frequency: New Form D filings are indexed and searchable in 300 milliseconds after they are published on EDGAR. Survivorship bias free: Yes. The API includes all Form D filings, including those from entities that are no longer active or do not exist anymore. ## API Endpoint https://api.sec-api.io/form-d Supported HTTP methods: `POST` Request and response content type: `JSON` ### Authentication Use the API key shown in your user profile to authenticate your requests. There are two ways to use your API key. It's either/or. - Set as `Authorization` header. Before making a `POST`request to `https://api.sec-api.io/form-d`, you need to set the `Authorization` header to `YOUR_API_KEY` - Set as query parameter. Example: `https://api.sec-api.io/form-d?token=YOUR_API_KEY` In this case, you send `POST` requests to the endpoint `https://api.sec-api.io/form-d?token=YOUR_API_KEY` and not to `https://api.sec-api.io/form-d`. ## Request Parameters All Form D offering properties are searchable. Refer to the complete list of properties in the [Response Structure section](#response-format) below. You can send a search query as JSON formatted payload to the API using the structure below. **Request parameters:** - `query` (string) - Your search criteria. Boolean operators (AND, OR, NOT), range queries across date and number fields, wildcards (*) and nested conditions are fully supported. The query is written in Lucene syntax. More [information on Lucene is available here](https://sec-api.io/resources/lucene-query-syntax-overview). Examples: `"offeringData.offeringSalesAmounts.totalOfferingAmount:[1000000 TO *]"` returns all offerings with a total offering amount of $1 million and more. `"offeringData.industryGroup.investmentFundInfo.investmentFundType:\"Hedge Fund\""` returns all offerings issued by hedge funds. `"offeringData.typesOfSecuritiesOffered.isEquityType:true OR offeringData.typesOfSecuritiesOffered.isPooledInvestmentFundType:true"` returns all equity and pooled investment fund offerings. `"offeringData.salesCommissionsFindersFees.salesCommissions.dollarAmount:[100000 TO *]"` returns all offerings with a sales commission of $100,000 and more. - `from` (integer) - The start position of your search in the result universe. `from` is similar to an index of an array. Increase `from` in order to paginate through the results. For example, set `from` to 50 to get the next 50 matches. Default: 0. - `size` (integer) - The number of offerings to be returned in one response. Default: 50. Max: 50. - `sort` (array) - An array of sort definitions. Each array item defines the sort order of the result. Default:`[{ "filedAt": { "order": "desc" } }]` ### Request Examples Find offerings with a total offering amount of $1 million and more, sort the result by the filing date, starting with the most recently filed offering. ```json { "query": "offeringData.offeringSalesAmounts.totalOfferingAmount:[1000000 TO *]", "from": "0", "size": "10", "sort": [{"filedAt":{"order":"desc"}}] } ``` Find all equity and pooled investment fund security offerings and sort the result by total offering amount, starting with the highest offering. ```json { "query": "offeringData.typesOfSecuritiesOffered.isEquityType:true OR offeringData.typesOfSecuritiesOffered.isPooledInvestmentFundType:true", "from": "0", "size": "10", "sort": [{"offeringData.offeringSalesAmounts.totalOfferingAmount":{"order":"desc"}}] } ``` ## Response Structure **Response type:** JSON The API response represents a JSON object with two properties: `total` (object) and `offerings` (array). The `total.value` property indicates the total number of offerings matching your search query. The `offerings` array holds up to 50 matching Form D offerings. An array item is an object and represents a Form D offering including the following elements: - `id` (string) - System-internal unique identifier of the offering. - `accessionNo` (string) - Accession number of the Form D filing, e.g. `0001946140-22-000002`. - `filedAt` (date) - Date on which the Form D was published on SEC EDGAR, e.g.`2022-10-12T17:29:52-04:00`. - `submissionType` (string) - Possible values: D and D/A. - `primaryIssuer` (object) - Item 1 & 2 - Primary Issuer Information. Information about the issuer's identity, such as CIK, entity name, entity type, address, phone number, and more. - `cik` (string) - The CIK of the issuer, e.g. `0000742118`. - `entityName` (string) - Name of the issuer, e.g. `Ken & Kenner Fund, LLC`. - `issuerAddress` (object) - Address of the issuer, including street, city, state, zip code and a description of the state or country. - - `issuerPhoneNumber` (string) - Phone number of the issuer, e.g. `212-555-1212`. - `jurisdictionOfInc` (string) - Jurisdiction of incorporation of the issuer, e.g. `DELAWARE`. - `issuerPreviousNameList` (array) - List of previous names of the issuer. - - `edgarPreviousNameList` (array) - - `entityType` (string) - Type of the issuing entity. Possible values: `Corporation`, `Limited Partnership`, `Limited Liability Company`, `General Partnership`, `Business Trust`, `Other`. - `entityTypeOtherDesc` (string) - If `entityType` is `Other`, this field contains a description of the entity type. - `yearOfInc` (object) - Year of incorporation of the issuer. If the entity is yet to be formed, the field `yetToBeFormed` is set to `true`. - - `relatedPersonsList` (object) - Item 3 - Related Persons - `relatedPersonInfo` (array of objects) - Information about related persons with the submission. - `relatedPersonName` (object) - Name of the related person, including first, middle, and last name. - - `relatedPersonAddress` (object) - Description of the related person's address, including street, city, state, zip code, and a description of the state or country. - - `relatedPersonRelationshipList` (object) - `relationship` (array of strings) - Relationship of related person to issuer consisting of one or more of the following values: `Executive Officer`, `Director`, `Promoter`. - `relationshipClarification` (string) - Clarification of the relationship of the related person. - `over100PersonsFlag` (bool) - `true` if there are more than 100 related persons, `false` otherwise. - `offeringData` (object) - Item 4 to 16 - Offering Information - `industryGroup` (object) - Item 4 - Industry Group - `industryGroupType` (string) - Refer to [the list of industry groups](#industry-group) to see all possible values. - `investmentFundInfo` (object) - `investmentFundType` (string) - If pooled investment fund represents the group, possible values are: Hedge Fund, Private Equity Fund, Venture Capital Fund and Other Investment Fund. - `is40Act` (bool) - `true` if the issuer registered as an investment company under the Investment Company Act of 1940, `false` otherwise. - `issuerSize` (object) - Item 5 - Issuer Size. Refer to the [overview of possible values of the issuer size](#issuer-size). - `revenueRange` (string) - Revenue range of the issuer. - `aggregateNetAssetValueRange` (string) - Aggregate net asset value range of the issuer. - `federalExemptionsExclusions` (object) - Item 6 - Federal Exemptions and Exclusions Claimed - `item` (array of strings) - List of exemptions under Securities Act. Refer to the [list of federal exemptions and exclusions](#federal-exemption-exclusions-list) to see all possible values. - `typeOfFiling` (object) - Item 7 - Type of Filing - `newOrAmendment` (object) - `isAmendment` (bool) - `true` if the filing is an amendment of a previous filing, `false` otherwise. - `previousAccessionNumber` (string) - If the filing is an amendment, the accession number of the previous filing, e.g. `0001566114-24-000021`. - `dateOfFirstSale` (object) - Date of first sale of securities in the offering. If the date is yet to occur, the field `yetToOccur` is set to `true`. - `value` (date) - Date of first sale of securities in the offering, e.g. `2024-10-12`. - `yetToOccur` (bool) - `true` if a first sale is yet to occur, `false` otherwise. - `durationOfOffering` (object) - Item 8 - Duration of Offering - `moreThanOneYear` (bool) - `true` if the issuer intends this offering to last more than one year, `false` otherwise. - `typesOfSecuritiesOffered` (object) - Item 9 - Types of Securities Offered - `isEquityType` (bool) - `isDebtType` (bool) - `isOptionToAcquireType` (bool) - `isSecurityToBeAcquiredType` (bool) - `isPooledInvestmentFundType` (bool) - `isTenantInCommonType` (bool) - `isMineralPropertyType` (bool) - `isOtherType` (bool) - `descriptionOfOtherType` (string) - `businessCombinationTransaction` (object) - Item 10 - Business Combination Transaction. If this offering is made in connection with a business combination transaction, such as a merger, acquisition or exchange offer. - `isBusinessCombinationTransaction` (bool) - `clarificationOfResponse` (string) - `minimumInvestmentAccepted` (number) - Item 11 - Minimum Investment. Minimum investment in US$ accepted from any outside investor. - `salesCompensationList` (object) - Item 12 - Sales Compensation - `recipient` (array) - `recipientName` (string) - `recipientCRDNumber` (string) - `associatedBDName` (string) - `associatedBDCRDNumber` (string) - `recipientAddress` (object) - - `statesOfSolicitationList` (array) - `state` (string) - `description` (string) - `value` (string) - `foreignSolicitation` (bool) - `over100RecipientFlag` (bool) - `offeringSalesAmounts` (object) - Item 13 - Offering and Sales Amounts - `totalOfferingAmount` (number) - Total offering amount (Item 13.a) in US$ or `-1` for indefinite. - `totalAmountSold` (number) - Total amount sold (Item 13.b). - `totalRemaining` (number) - Total remaining amount (Item 13.c) in US$ or `-1` for indefinite. Total remaining amount is calculated as the total offering amount (`totalOfferingAmount`) minus the total amount sold (`totalAmountSold`). - `clarificationOfResponse` (string) - `investors` (object) - Item 14 - Investors - `hasNonAccreditedInvestors` (bool) - `true` if securities in the offering have been or may be sold to persons who do not qualify as accredited investors, `false` otherwise. - `numberNonAccreditedInvestors` (number) - Number of non-accredited investors who already have invested in the offering. - `totalNumberAlreadyInvested` (number) - The total number of investors who already have invested in the offering, regardless of whether securities in the offering have been or may be sold to persons who do not qualify as accredited investors. - `salesCommissionsFindersFees` (object) - Item 15 - Sales Commissions and Finders' Fees Expenses - `salesCommissions` (object) - `dollarAmount` (number) - `isEstimate` (bool) - `findersFees` (object) - `dollarAmount` (number) - `isEstimate` (bool) - `clarificationOfResponse` (string) - `useOfProceeds` (object) - Item 16 - Use of Proceeds - `grossProceedsUsed` (object) - The amount of the gross proceeds of the offering that has been or is proposed to be used for payments to any of the persons required to be named as executive officers, directors or promoters in response to Item 3 above. If the amount is unknown, an estimate is provided and `isEstimate` is set to `true`. - `dollarAmount` (number) - `isEstimate` (bool) - `clarificationOfResponse` (string) - `signatureBlock` (object) - `authorizedRepresentative` (bool) - `signature` (array) - `issuerName` (string) - `signatureName` (string) - `nameOfSigner` (string) - `signatureTitle` (string) - `signatureDate` (string) ### Response Example json ```json { "total": { "value": 10000, "relation": "gte" }, "offerings": [ { "id": "579daeabaea55b35981ab44de7183d75", "accessionNo": "0001949976-22-000001", "filedAt": "2022-10-12T09:08:37-04:00", "submissionType": "D", "primaryIssuer": { "cik": "0001949976", "entityName": "O2 SIB Co-Investors, LLC", "issuerAddress": { "street1": "40900 WOODWARD AVENUE", "street2": "SUITE 200", "city": "BLOOMFIELD HILLS", "stateOrCountry": "MI", "stateOrCountryDescription": "MICHIGAN", "zipCode": "48304" }, "issuerPhoneNumber": "248-554-4227", "jurisdictionOfInc": "DELAWARE", "issuerPreviousNameList": [ { "value": "None" } ], "edgarPreviousNameList": [ { "value": "None" } ], "entityType": "Limited Liability Company", "yearOfInc": { "withinFiveYears": true, "value": "2022" } }, "relatedPersonsList": { "relatedPersonInfo": [ { "relatedPersonName": { "firstName": "Patrick", "middleName": "R.", "lastName": "Corden" }, "relatedPersonAddress": { "street1": "40900 Woodward Avenue, Suite 200", "city": "Bloomfield Hills", "stateOrCountry": "MI", "stateOrCountryDescription": "MICHIGAN", "zipCode": "48304" }, "relatedPersonRelationshipList": { "relationship": [ "Executive Officer" ] } } ] }, "offeringData": { "industryGroup": { "industryGroupType": "Pooled Investment Fund", "investmentFundInfo": { "investmentFundType": "Private Equity Fund", "is40Act": false } }, "issuerSize": { "revenueRange": "Decline to Disclose" }, "federalExemptionsExclusions": { "item": [ "06b", "3C", "3C.1" ] }, "typeOfFiling": { "newOrAmendment": { "isAmendment": false }, "dateOfFirstSale": { "value": "2022-09-30" } }, "durationOfOffering": { "moreThanOneYear": false }, "typesOfSecuritiesOffered": { "isEquityType": true, "isPooledInvestmentFundType": true }, "businessCombinationTransaction": { "isBusinessCombinationTransaction": true }, "minimumInvestmentAccepted": 0, "salesCompensationList": {}, "offeringSalesAmounts": { "totalOfferingAmount": 25000000, "totalAmountSold": 25000000, "totalRemaining": 0 }, "investors": { "hasNonAccreditedInvestors": false, "totalNumberAlreadyInvested": 2 }, "salesCommissionsFindersFees": { "salesCommissions": { "dollarAmount": 0 }, "findersFees": { "dollarAmount": 0 } }, "useOfProceeds": { "grossProceedsUsed": { "dollarAmount": 0 } }, "signatureBlock": { "authorizedRepresentative": false, "signature": [ { "issuerName": "O2 SIB Co-Investors, LLC", "signatureName": "/s/ Patrick R. Corden", "nameOfSigner": "Patrick R. Corden", "signatureTitle": "Chairman and President", "signatureDate": "2022-10-12" } ] } } } ] } ``` ### Industry Groups | | | | | | | --- | --- | --- | --- | --- | | | Agriculture | | | | | | Banking & Financial Services | | | | | | | Commercial Banking | | | | | Insurance | | | | | | Investing | | | | | | Investment Banking | | | | | | Pooled Investment Fund | | | | | | | Hedge Fund | | | | | Private Equity Fund | | | | | | Venture Capital Fund | | | | | | Other Investment Fund | | | | | | Is the issuer registered as an investment company under the Investment Company Act of 1940? | | | | | | | Yes | | No | | | Other Banking & Financial Services | | | | | | Health Care | | | | | | | Biotechnology | | | | | | Health Insurance | | | | | | Hospitals & Physicians | | | | | | Pharmaceuticals | | | | | | Other Health Care | | | | | Manufacturing | | | | | | Real Estate | | | | | | | Commercial | | | | | | Construction | | | | | | REITS & Finance | | | | | | Residential | | | | | | Other Real Estate | | | | | | | | | | | | | | | | | Technology | | | | | | | Computers | | | | | | Telecommunications | | | | | | Other Technology | | | | | Travel | | | | | | | Airlines & Airports | | | | | | Lodging & Conventions | | | | | | Tourism & Travel Services | | | | | | Other Travel | | | | | | | | | | | Business Services | | | | | | Energy | | | | | | | Coal Mining | | | | | | Electric Utilities | | | | | | Energy Conservation | | | | | | Environmental Services | | | | | | Oil & Gas | | | | | | Other Energy | | | ### Issuer Size | Revenue Range | OR | Aggregate Net Asset Value Range | | | --- | --- | --- | --- | | | No Revenues | | No Aggregate Net Asset Value | | | $1 - $1,000,000 | | $1 - $5,000,000 | | | $1,000,001 - $5,000,000 | | $5,000,001 - $25,000,000 | | | $5,000,001 - $25,000,000 | | $25,000,001 - $50,000,000 | | | $25,000,001 - $100,000,000 | | $50,000,001 - $100,000,000 | | | Over $100,000,000 | | Over $100,000,000 | | | Decline to Disclose | | Decline to Disclose | | | Not Applicable | | Not Applicable | ### Federal Exemption Exclusions List | Name | Value | | --- | --- | | Rule 504(b)(1) (not (i), (ii) or (iii)) | 04 | | Rule 504(b)(1)(i) | 04.1 | | Rule 504(b)(1)(ii) | 04.2 | | Rule 504(b)(1)(iii) | 04.3 | | Rule 506(b) | 06b | | Rule 506(c) | 06c | | Securities Act Section 4(a)(5) | 4a5 | | Investment Company Act Section 3(c) | 3C | | Section 3(c)(1) | 3C.1 | | Section 3(c)(2) | 3C.2 | | Section 3(c)(4) | 3C.4 | | Section 3(c)(5) | 3C.5 | | Section 3(c)(6) | 3C.6 | | Section 3(c)(7) | 3C.7 | | Section 3(c)(9) | 3C.9 | | Section 3(c)(10) | 3C.10 | | Section 3(c)(11) | 3C.11 | | Section 3(c)(12) | 3C.12 | | Section 3(c)(13) | 3C.13 | | Section 3(c)(14) | 3C.14 | ## FAQ Common questions about querying the Form D API - Private Placements & Exempt Offerings, the response shape, and the bulk archives. ### How do I look up a specific private placement filing when I already have its accession number? To retrieve one specific Form D notice, search the `/form-d` endpoint by the accession number recorded on the filing (`accessionNo`), for example `0001213900-25-015909`. The accession number is unique to a single filing, so the match is exact and the response contains at most one offering. The matching offering is returned inside the `offerings` array of the response, with the count in `total.value`. From there you have access to the full filing, including issuer details (`primaryIssuer`), the offering terms (`offeringData`), and the related persons (`relatedPersonsList`). ```json { "query": "accessionNo:\"0001213900-25-015909\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I find all private placement notices filed by a particular company using its SEC identifier? To list every exempt offering notice filed by one company, search the `/form-d` endpoint on the issuer's CIK identifier (`primaryIssuer.cik`). The CIK is the SEC's permanent numeric identifier for the filer, stored zero-padded on the filing, for example `0001962589` for Intus Care, Inc. Because a company can file an original Form D and later amendments, this search returns each notice the issuer has filed. To see the newest first, sort the result by filing date (`filedAt`) in descending order. ```json { "query": "primaryIssuer.cik:\"0001962589\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I search for a private offering by the name of the issuing company? To find a private offering by company name when you do not have a CIK, search the `/form-d` endpoint on the issuer name field (`primaryIssuer.entityName`), for example `Intus Care, Inc.` or `Veda Tech Labs Inc.`. This field holds the name as it appears on the filing. Because company names are not unique and can change over time, a name search may return offerings from more than one issuer, and an issuer that has changed names may have prior names recorded separately (`primaryIssuer.issuerPreviousNameList`). When you need an exact match to a single company, use the CIK identifier (`primaryIssuer.cik`) instead. ```json { "query": "primaryIssuer.entityName:\"Intus Care, Inc.\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I retrieve every exempt offering notice filed within a given date range? To retrieve all Form D notices filed during a window of time, search the `/form-d` endpoint on the filing date (`filedAt`) and constrain it to a range. For example, to get filings from the first quarter of 2025, the value of `filedAt` should fall between `2025-01-01` and `2025-03-31`. The `filedAt` field records the date and time the Form D was published on SEC EDGAR, such as `2025-02-21T10:29:29-05:00`. The response reports the number of matching offerings in `total.value`; if that exceeds 50, page through the result set using the `from` and `size` parameters. ```json { "query": "filedAt:[2025-01-01 TO 2025-03-31]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I get the most recent private placement filings sorted by filing date? To get the newest Form D notices, query the `/form-d` endpoint and sort the result by the filing date (`filedAt`) in descending order. This is also the default sort order, so the most recently filed offerings appear first when no other sort is specified. Each offering in the response carries its `filedAt` timestamp, for example `2025-05-21T16:32:47-04:00`. To scan further back in time, increase the `from` parameter to page through older filings 50 at a time. ```json { "query": "*", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I find private offerings raised by hedge funds versus venture capital or private equity funds? To distinguish offerings by the kind of investment fund behind them, search the `/form-d` endpoint on the investment fund type (`offeringData.industryGroup.investmentFundInfo.investmentFundType`). This field is populated when the issuer is a pooled investment fund and takes one of the values `Hedge Fund`, `Private Equity Fund`, `Venture Capital Fund`, or `Other Investment Fund`. For example, set `offeringData.industryGroup.investmentFundInfo.investmentFundType` to `Hedge Fund` to find hedge fund raises, or to `Private Equity Fund` for private equity offerings. The broader category is also recorded in the industry group type (`offeringData.industryGroup.industryGroupType`), which would be `Pooled Investment Fund` for these issuers. ```json { "query": "offeringData.industryGroup.investmentFundInfo.investmentFundType:\"Hedge Fund\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I narrow my search to offerings from a specific industry such as real estate or biotechnology? To restrict results to one industry, search the `/form-d` endpoint on the industry group type (`offeringData.industryGroup.industryGroupType`). This field carries the issuer's self-reported industry, with values such as `Biotechnology`, `Commercial` and `Residential` under real estate, `Insurance`, `Other Technology`, or `Oil & Gas`. For a biotechnology raise, the value of `offeringData.industryGroup.industryGroupType` should be `Biotechnology`; for a residential real estate raise it should be `Residential`. The complete set of industry group values covers categories from agriculture and banking through energy, health care, manufacturing, real estate, technology, and travel. ```json { "query": "offeringData.industryGroup.industryGroupType:\"Biotechnology\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I find offerings raised specifically by companies that are not investment funds, like operating tech or healthcare startups? To find offerings from operating companies rather than pooled funds, search the `/form-d` endpoint and exclude the pooled-fund industry group. The industry group type (`offeringData.industryGroup.industryGroupType`) should be something other than `Pooled Investment Fund` (and the related fund sub-categories such as `Hedge Fund` or `Private Equity Fund`) — for an operating tech startup it would be a value like `Other Technology` or `Computers`, and for a healthcare company a value like `Biotechnology` or `Pharmaceuticals`. As a further signal, offerings from genuine investment funds also carry the pooled-fund security flag (`offeringData.typesOfSecuritiesOffered.isPooledInvestmentFundType` set to `true`); operating-company raises typically have that flag absent or `false` and instead mark equity (`offeringData.typesOfSecuritiesOffered.isEquityType`) or debt. ```json { "query": "NOT offeringData.industryGroup.industryGroupType:\"Pooled Investment Fund\" AND offeringData.typesOfSecuritiesOffered.isEquityType:true AND NOT offeringData.typesOfSecuritiesOffered.isPooledInvestmentFundType:true", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I distinguish equity raises from debt raises among private placements? To separate equity raises from debt raises, search the `/form-d` endpoint on the security type flags reported in Item 9 of the filing. An equity raise has the equity flag set (`offeringData.typesOfSecuritiesOffered.isEquityType` is `true`), and a debt raise has the debt flag set (`offeringData.typesOfSecuritiesOffered.isDebtType` is `true`). These flags are not mutually exclusive — a single offering can mark both, as when a company offers equity and debt together. To isolate pure equity raises, the equity flag should be `true` and the debt flag should be `false` or absent. Other flags in the same object cover options (`isOptionToAcquireType`), pooled investment fund interests (`isPooledInvestmentFundType`), and other security types (`isOtherType`). ```json { "query": "offeringData.typesOfSecuritiesOffered.isEquityType:true AND NOT offeringData.typesOfSecuritiesOffered.isDebtType:true", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I find pooled investment fund offerings that are also marked as equity offerings? To find pooled investment fund interests that are also reported as equity, search the `/form-d` endpoint and require both security type flags from Item 9 to be set: the pooled investment fund flag (`offeringData.typesOfSecuritiesOffered.isPooledInvestmentFundType`) should be `true` and the equity flag (`offeringData.typesOfSecuritiesOffered.isEquityType`) should be `true`. Many fund offerings mark only the pooled investment fund flag, so requiring the equity flag as well narrows the result to fund interests that the issuer additionally classified as equity securities. The issuer behind these offerings is typically in the `Pooled Investment Fund` industry group (`offeringData.industryGroup.industryGroupType`). ```json { "query": "offeringData.typesOfSecuritiesOffered.isPooledInvestmentFundType:true AND offeringData.typesOfSecuritiesOffered.isEquityType:true", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I filter for offerings above a certain total fundraising target, for example $10 million or more? To find offerings with a fundraising target at or above a threshold, search the `/form-d` endpoint on the total offering amount (`offeringData.offeringSalesAmounts.totalOfferingAmount`) and require it to be greater than or equal to your figure. For a $10 million floor, the value of `offeringData.offeringSalesAmounts.totalOfferingAmount` should be `10000000` or more. This field holds the total offering amount from Item 13.a in US dollars, for example `15000000` or `150000000`. Note that a value of `-1` means the issuer disclosed an indefinite total rather than a number, so exclude `-1` if you want only offerings with a stated dollar target. ```json { "query": "offeringData.offeringSalesAmounts.totalOfferingAmount:[10000000 TO *]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I find large completed raises where the entire offering amount has already been sold? To find raises where nothing remains to be sold, search the `/form-d` endpoint on the remaining amount (`offeringData.offeringSalesAmounts.totalRemaining`) and require it to be `0`. The remaining amount is the total offering amount minus the total amount sold, so a value of `0` means the offering is fully subscribed. To restrict this to large completed raises, also constrain the total offering amount (`offeringData.offeringSalesAmounts.totalOfferingAmount`) to be at or above your size threshold, for example `10000000` or more. In a fully sold offering the amount sold (`offeringData.offeringSalesAmounts.totalAmountSold`) equals the total offering amount, for instance both at `150000000`. ```json { "query": "offeringData.offeringSalesAmounts.totalRemaining:0 AND offeringData.offeringSalesAmounts.totalOfferingAmount:[10000000 TO *]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I identify offerings that still have capacity remaining for new investors? To find offerings that are still open to additional capital, search the `/form-d` endpoint on the remaining amount (`offeringData.offeringSalesAmounts.totalRemaining`) and require it to be greater than `0`. The remaining amount is the total offering amount minus the total amount sold, so any positive value indicates unsold capacity. For example, an offering with a `23459781` total and `13084630` sold reports `10375151` remaining. Be aware that a remaining value of `-1` signals an indefinite total rather than a measurable balance, so a positive-value filter naturally excludes those indefinite offerings. ```json { "query": "offeringData.offeringSalesAmounts.totalRemaining:[1 TO *]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I find offerings that disclose an indefinite or open-ended total raise amount? To find offerings with no fixed dollar target, search the `/form-d` endpoint for a total offering amount (`offeringData.offeringSalesAmounts.totalOfferingAmount`) equal to `-1`. The value `-1` is the convention used in Item 13 to indicate the issuer disclosed an indefinite total rather than a specific number. In these filings the remaining amount (`offeringData.offeringSalesAmounts.totalRemaining`) is also `-1`, while the amount actually sold (`offeringData.offeringSalesAmounts.totalAmountSold`) still carries a real figure. The issuer often explains the indefinite figure in a free-text note (`offeringData.offeringSalesAmounts.clarificationOfResponse`). ```json { "query": "offeringData.offeringSalesAmounts.totalOfferingAmount:\\-1", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find amendments to previously filed private placement notices and link them back to the original filing? To find amended Form D notices, search the `/form-d` endpoint for a submission type (`submissionType`) of `D/A`, which marks an amendment as opposed to an original `D` filing. The same information is available through the amendment flag (`offeringData.typeOfFiling.newOrAmendment.isAmendment` set to `true`). To link an amendment back to what it revises, read the previous accession number recorded on the amendment (`offeringData.typeOfFiling.newOrAmendment.previousAccessionNumber`), for example `0001620473-20-000001`. You can then look up that prior filing on the `/form-d` endpoint by its accession number (`accessionNo`) to retrieve the original notice. ```json { "query": "submissionType:\"D/A\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I find offerings that have accepted money from investors who are not accredited? To find offerings open to non-accredited investors, search the `/form-d` endpoint on the non-accredited investor flag from Item 14 (`offeringData.investors.hasNonAccreditedInvestors`) and require it to be `true`. This flag is `true` when securities have been or may be sold to persons who do not qualify as accredited investors. When the flag is `true`, the count of such investors is reported separately (`offeringData.investors.numberNonAccreditedInvestors`). The total number of investors of any kind who have already participated is held in a different field (`offeringData.investors.totalNumberAlreadyInvested`). ```json { "query": "offeringData.investors.hasNonAccreditedInvestors:true", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I rank offerings by how many investors have already participated? To rank offerings by participation, query the `/form-d` endpoint and sort the result by the total number of investors already invested (`offeringData.investors.totalNumberAlreadyInvested`). Sorting in descending order puts the most widely held offerings first. This field from Item 14 counts every investor who has already invested, regardless of accreditation status — for example `339` for a large fund or `9` for a small startup raise. You can combine the sort with a query that first narrows the result to an industry or date range, then ranks within that subset. ```json { "query": "offeringData.investors.totalNumberAlreadyInvested:[1 TO *]", "from": 0, "size": 50, "sort": [{"offeringData.investors.totalNumberAlreadyInvested":{"order":"desc"}}] } ``` ### How can I find offerings with a high minimum investment threshold, such as $250,000 or more? To find offerings that require a large minimum buy-in, search the `/form-d` endpoint on the minimum investment field from Item 11 (`offeringData.minimumInvestmentAccepted`) and require it to be at or above your figure. For a $250,000 floor, the value of `offeringData.minimumInvestmentAccepted` should be `250000` or more. This field holds the minimum investment in US dollars accepted from any outside investor, for example `250000` or `100000`. A value of `0` means the issuer did not specify a minimum, so a threshold filter naturally excludes those. ```json { "query": "offeringData.minimumInvestmentAccepted:[250000 TO *]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find offerings where the issuer paid significant sales commissions to brokers? To find offerings with large broker commissions, search the `/form-d` endpoint on the sales commission dollar amount from Item 15 (`offeringData.salesCommissionsFindersFees.salesCommissions.dollarAmount`) and require it to be at or above your threshold, for example `100000` or more. This field reports the commission paid in US dollars, such as `304300`. A companion flag (`offeringData.salesCommissionsFindersFees.salesCommissions.isEstimate`) indicates whether the figure is an estimate. A related field covers finders' fees separately (`offeringData.salesCommissionsFindersFees.findersFees.dollarAmount`). ```json { "query": "offeringData.salesCommissionsFindersFees.salesCommissions.dollarAmount:[100000 TO *]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I see which broker-dealers or finders were compensated for selling a particular offering? To see who was paid for selling a specific offering, look up that filing on the `/form-d` endpoint by its accession number (`accessionNo`) and read the Item 12 sales compensation list (`offeringData.salesCompensationList.recipient`). This is an array, with one entry per compensated person or firm. Each recipient entry carries a name (`offeringData.salesCompensationList.recipient.recipientName`), a CRD number (`offeringData.salesCompensationList.recipient.recipientCRDNumber`), the associated broker-dealer name (`offeringData.salesCompensationList.recipient.associatedBDName`), and the states where the recipient solicited investors (`offeringData.salesCompensationList.recipient.statesOfSolicitationList`). If more than 100 recipients were involved, a flag (`offeringData.salesCompensationList.over100RecipientFlag`) is set. ```json { "query": "accessionNo:\"0001213900-25-015909\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find offerings tied to a specific named placement agent or broker firm? To find every offering connected to a particular broker firm, search the `/form-d` endpoint on the associated broker-dealer name within the Item 12 sales compensation list (`offeringData.salesCompensationList.recipient.associatedBDName`), for example `Salient Capital, L.P.`. Because the sales compensation list is an array of recipients, a match means at least one compensated recipient on the offering was associated with that firm. The firm can also be matched on its CRD number (`offeringData.salesCompensationList.recipient.associatedBDCRDNumber`), such as `147912`, which avoids variation in how the firm name is spelled across filings. ```json { "query": "offeringData.salesCompensationList.recipient.associatedBDName:\"Salient Capital, L.P.\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I identify which executives or directors are listed as related persons behind a private offering? To see the people behind an offering, look up the filing on the `/form-d` endpoint and read the Item 3 related persons list (`relatedPersonsList.relatedPersonInfo`). This is an array, with one entry per related person. Each entry records the person's name (`relatedPersonsList.relatedPersonInfo.relatedPersonName`) and their role through the relationship list (`relatedPersonsList.relatedPersonInfo.relatedPersonRelationshipList.relationship`), which contains one or more of the values `Executive Officer`, `Director`, and `Promoter`. To isolate offerings tied to officers or directors, the relationship array should contain `Executive Officer` or `Director`. A flag (`relatedPersonsList.over100PersonsFlag`) signals when there are more than 100 related persons. ```json { "query": "relatedPersonsList.relatedPersonInfo.relatedPersonRelationshipList.relationship:(\"Executive Officer\" OR \"Director\")", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find offerings associated with a particular individual by their name? To find every offering connected to a specific person, search the `/form-d` endpoint on the related person name within the Item 3 list (`relatedPersonsList.relatedPersonInfo.relatedPersonName`). The name is broken into parts — first name, middle name, and last name — so you can match on the last name (`relatedPersonsList.relatedPersonInfo.relatedPersonName.lastName`), for example `Reid` or `Byrne`. Because the related persons list is an array, a match means the person appears as a related person on the offering, whether as an executive officer, director, or promoter. The accompanying relationship array (`relatedPersonsList.relatedPersonInfo.relatedPersonRelationshipList.relationship`) tells you in what capacity. ```json { "query": "relatedPersonsList.relatedPersonInfo.relatedPersonName.lastName:\"Reid\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find private placements by issuers headquartered in a particular state or country? To find offerings from issuers located in a given place, search the `/form-d` endpoint on the issuer's address state or country code (`primaryIssuer.issuerAddress.stateOrCountry`). This field carries a short code, for example `NY` for New York or `ND` for North Dakota, and codes such as `X0` for the United Kingdom or `A8` for Quebec, Canada for non-US issuers. A human-readable form of the same value is available alongside it (`primaryIssuer.issuerAddress.stateOrCountryDescription`), for example `NEW YORK` or `UNITED KINGDOM`, which you can match on if you prefer the spelled-out name. ```json { "query": "primaryIssuer.issuerAddress.stateOrCountry:\"NY\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I find offerings from issuers organized as limited partnerships versus corporations or LLCs? To filter offerings by the legal form of the issuer, search the `/form-d` endpoint on the entity type from Item 1 (`primaryIssuer.entityType`). This field takes one of the values `Corporation`, `Limited Partnership`, `Limited Liability Company`, `General Partnership`, `Business Trust`, or `Other`. For limited partnerships, the value of `primaryIssuer.entityType` should be `Limited Partnership`; for corporations it should be `Corporation`; for LLCs, `Limited Liability Company`. When the value is `Other`, a free-text description is provided in a companion field (`primaryIssuer.entityTypeOtherDesc`). ```json { "query": "primaryIssuer.entityType:\"Limited Partnership\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find offerings made in connection with a merger or acquisition? To find offerings tied to a deal, search the `/form-d` endpoint on the business combination flag from Item 10 (`offeringData.businessCombinationTransaction.isBusinessCombinationTransaction`) and require it to be `true`. This flag is `true` when the offering is made in connection with a business combination such as a merger, acquisition, or exchange offer. When the flag is set, the issuer may add a free-text explanation of the transaction (`offeringData.businessCombinationTransaction.clarificationOfResponse`). Most offerings have this flag `false`, indicating they are stand-alone capital raises. ```json { "query": "offeringData.businessCombinationTransaction.isBusinessCombinationTransaction:true", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How can I find offerings that rely on a specific Regulation D exemption such as Rule 506(b) or 506(c)? To find offerings claiming a particular exemption, search the `/form-d` endpoint on the federal exemptions list from Item 6 (`offeringData.federalExemptionsExclusions.item`). This is an array of short codes: Rule 506(b) is `06b`, Rule 506(c) is `06c`, and the Rule 504 variants are `04`, `04.1`, `04.2`, and `04.3`. To find Rule 506(b) offerings, the `offeringData.federalExemptionsExclusions.item` array should contain `06b`; for Rule 506(c), it should contain `06c`. The same array often also carries Investment Company Act exclusion codes such as `3C`, `3C.1`, and `3C.7`, since an offering can claim several exemptions at once. ```json { "query": "offeringData.federalExemptionsExclusions.item:\"06b\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find newly formed companies raising capital, for example those incorporated within the last five years? To find recently formed issuers, search the `/form-d` endpoint on the year of incorporation object from Item 1 (`primaryIssuer.yearOfInc`). Issuers formed recently carry a flag indicating incorporation within five years (`primaryIssuer.yearOfInc.withinFiveYears` set to `true`), and the specific year is in `primaryIssuer.yearOfInc.value`, for example `2024`. For a precise window you can constrain the year value directly — for instance `primaryIssuer.yearOfInc.value` between `2020` and `2025`. Older issuers instead carry the over-five-years flag (`primaryIssuer.yearOfInc.overFiveYears` set to `true`), and entities not yet formed carry a yet-to-be-formed flag (`primaryIssuer.yearOfInc.yetToBeFormed`). ```json { "query": "primaryIssuer.yearOfInc.withinFiveYears:true", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I page through a large set of matching offerings when there are more results than one response returns? To move through a result set larger than one response, use the `from` and `size` parameters on the `/form-d` endpoint. The `size` parameter sets how many offerings each response returns, with a maximum and default of 50, and `from` sets the starting position in the overall result universe. To walk the results, request the first 50 with `from` at `0`, then the next 50 with `from` at `50`, then `100`, and so on. The total number of matches is reported in `total.value`, so you know how many pages remain. Keep a consistent sort (for example by `filedAt`) across pages so offerings are not skipped or repeated. ```json { "query": "*", "from": 50, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I compute the total amount of private capital raised across an industry over a time period by aggregating offering amounts? To compute total private capital raised in an industry over a period, query the `/form-d` endpoint with a search that constrains both the industry group type (`offeringData.industryGroup.industryGroupType`) to your sector and the filing date (`filedAt`) to your time window, then sum the amount sold field across the matching offerings. The figure to add up is the total amount sold from Item 13.b (`offeringData.offeringSalesAmounts.totalAmountSold`), which holds the dollars actually raised, for example `13084630` or `500000`. Because each response returns at most 50 offerings, page through the full result set with the `from` and `size` parameters and accumulate `offeringData.offeringSalesAmounts.totalAmountSold` from every page until `from` reaches `total.value`. When summing, treat amendments carefully — an issuer's `D/A` filing restates the same offering, so counting both the original and the amendment would double-count that raise. ```json { "query": "offeringData.industryGroup.industryGroupType:\"Biotechnology\" AND filedAt:[2025-01-01 TO 2025-03-31]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ## References For more information about Form D filings visit the SEC websites here: - [Form D General Guidelines](https://www.sec.gov/education/smallbusiness/exemptofferings/formd) - [Form D Filing Process](https://www.sec.gov/corpfin/form-d-filing) - [Form D EDGAR PDF Template](https://www.sec.gov/about/forms/formd.pdf) - [§ 239.500 Form D, notice of sales of securities under Regulation D and section 4(a)(5) of the Securities Act of 1933](https://www.ecfr.gov/current/title-17/chapter-II/part-239/subpart-B/section-239.500)