Search Form D Filings With Python
The Python tutorial illustrates how to find Form D offerings using different form attributes as search criteria.
Click on "Open in Colab" to run the Python code in a Jupyter notebook on Google Colab in your browser.
We start with installing the sec-api
Python package.
pip install sec-api
Initilize the FormDApi
with your API key so that your requests are automatically authenticated.
from sec_api import FormDApi
formDApi = FormDApi("YOUR_API_KEY")
Next, we define our search_query
:
offeringData.offeringSalesAmounts.totalOfferingAmount:[1000000 TO *]
The search returns all Form D filings with a total offering amount greater than $1,000,000.
Matching Form D filings are returned by the Form D API after calling the function .get_data(search_query)
. The return value of the function represents a dictionary with two keys total
and offerings
. total
tells us how many Form D matched our query in total, and offerings
represents a list of dictionaries where each dictionary represent an offering.
The structure of an offering dictionary has the same the structure as the API response described in the documentation here.
search_query = {
"query": "offeringData.offeringSalesAmounts.totalOfferingAmount:[1000000 TO *]",
"from": "0",
"size": "10",
"sort": [{"filedAt": {"order": "desc"}}],
}
response = formDApi.get_data(search_query)
response["offerings"][0]
{'schemaVersion': 'X0708',
'submissionType': 'D',
'testOrLive': 'LIVE',
'primaryIssuer': {'cik': '0001955372',
'entityName': 'Cortland Enhanced Value Fund VI, L.P.',
'issuerAddress': {'street1': '3424 PEACHTREE ROAD N.E.',
'street2': 'SUITE 300',
'city': 'ATLANTA',
'stateOrCountry': 'GA',
'stateOrCountryDescription': 'GEORGIA',
'zipCode': '30326'},
'issuerPhoneNumber': '404.965.3988',
'jurisdictionOfInc': 'DELAWARE',
'issuerPreviousNameList': [{'value': 'None'}],
'edgarPreviousNameList': [{'value': 'None'}],
'entityType': 'Limited Partnership',
'yearOfInc': {'withinFiveYears': True, 'value': '2022'}},
'relatedPersonsList': {'relatedPersonInfo': [{'relatedPersonName': {'firstName': 'N/A',
'lastName': 'Cortland Enhanced Value Fund VI GP, LLC.'},
'relatedPersonAddress': {'street1': '3424 Peachtree Road N.E.',
'street2': 'Suite 300',
'city': 'Atlanta',
'stateOrCountry': 'GA',
'stateOrCountryDescription': 'GEORGIA',
'zipCode': '30326'},
'relatedPersonRelationshipList': {'relationship': ['Director']},
'relationshipClarification': 'General Partner of the Issuer'},
{'relatedPersonName': {'firstName': 'Steven', 'lastName': 'DeFrancis'},
'relatedPersonAddress': {'street1': '3424 Peachtree Road N.E.',
'street2': 'Suite 300',
'city': 'Atlanta',
'stateOrCountry': 'GA',
'stateOrCountryDescription': 'GEORGIA',
'zipCode': '30326'},
'relatedPersonRelationshipList': {'relationship': ['Executive Officer']},
'relationshipClarification': 'Manager of Cortland Partners, LLC, sole member of the General Partner of the Issuer'}]},
'offeringData': {'industryGroup': {'industryGroupType': 'Pooled Investment Fund',
'investmentFundInfo': {'investmentFundType': 'Other Investment Fund',
'is40Act': False}},
'issuerSize': {'aggregateNetAssetValueRange': 'Decline to Disclose'},
'federalExemptionsExclusions': {'item': ['06b', '3C', '3C.6', '3C.7']},
'typeOfFiling': {'newOrAmendment': {'isAmendment': False},
'dateOfFirstSale': {'value': '2022-11-15'}},
'durationOfOffering': {'moreThanOneYear': True},
'typesOfSecuritiesOffered': {'isEquityType': True,
'isPooledInvestmentFundType': True},
'businessCombinationTransaction': {'isBusinessCombinationTransaction': False},
'minimumInvestmentAccepted': 250000,
'salesCompensationList': {'recipient': [{'recipientName': 'Morgan Stanley Smith Barney LLC',
'recipientCRDNumber': '149777',
'associatedBDName': 'None',
'associatedBDCRDNumber': 'None',
'recipientAddress': {'street1': '2000 Westchester Avenue',
'city': 'Purchase',
'stateOrCountry': 'NY',
'stateOrCountryDescription': 'NEW YORK',
'zipCode': '10577'},
'statesOfSolicitationList': [{'value': 'All States'}],
'foreignSolicitation': False}]},
'offeringSalesAmounts': {'totalOfferingAmount': 1500000000,
'totalAmountSold': 200435000,
'totalRemaining': 1299565000,
'clarificationOfResponse': 'In Item 11, the General Partner may, at its discretion, accept subscriptions of lesser amounts.'},
'investors': {'hasNonAccreditedInvestors': False,
'totalNumberAlreadyInvested': 292},
'salesCommissionsFindersFees': {'salesCommissions': {'dollarAmount': 1424680},
'findersFees': {'dollarAmount': 0}},
'useOfProceeds': {'grossProceedsUsed': {'dollarAmount': 0}},
'signatureBlock': {'authorizedRepresentative': False,
'signature': [{'issuerName': 'Cortland Enhanced Value Fund VI, L.P.',
'signatureName': '/s/ STEVEN DEFRANCIS',
'nameOfSigner': 'Steven DeFrancis',
'signatureTitle': 'Manager of the General Partner of the Issuer',
'signatureDate': '2022-12-01'}]}},
'accessionNo': '0001955372-22-000001',
'filedAt': '2022-12-01T17:25:12-05:00',
'id': '72fcd53f6dc0bfa4d9b0d3ada098bc41'}
Performing a different Form D search with a new query is as simple as replacing the search_query
with new search criteria.
The next example finds all equity and pooled investment fund security offerings and sorts the result by total offering amount, starting with the highest offering.
This means, we want the Form D API to return all filings that meet one of the following two criteria:
isEquityType
set totrue
isPooledInvestmentFundType
set totrue
An offering is included in the response universe if one of the two criteria are met, and a filing doesn't have to meet both criteria at the same time. In other words, a match occurs if isEquityType
is true
, irrespective of the isPooledInvestmentFundType
value. On the other hand, as long as isPooledInvestmentFundType
is true
, the value of isEquityType
does not impact the decision whether to include the filing into the universe or not. For that reason, we use the OR
operator to combine both criteria.
search_query = {
"query": "offeringData.typesOfSecuritiesOffered.isEquityType:true OR offeringData.typesOfSecuritiesOffered.isPooledInvestmentFundType:true",
"from": "0",
"size": "10",
"sort": [
{ "offeringData.offeringSalesAmounts.totalOfferingAmount": { "order": "desc" }}
]
}
response = formDApi.get_data(search_query)
response["offerings"][0]
{'schemaVersion': 'X0708',
'submissionType': 'D/A',
'testOrLive': 'LIVE',
'primaryIssuer': {'cik': '0001701389',
'entityName': '1B USD WORLDWIDE VENTURE CAPITAL FUND',
'issuerAddress': {'street1': 'WHOMENTORS.COM, INC.',
'street2': '101A CLAY STREET NUM 250',
'city': 'SAN FRANCISCO',
'stateOrCountry': 'CA',
'stateOrCountryDescription': 'CALIFORNIA',
'zipCode': '94111'},
'issuerPhoneNumber': '415-373-6767',
'jurisdictionOfInc': 'DELAWARE',
'issuerPreviousNameList': [{'value': 'None'}],
'edgarPreviousNameList': [{'value': 'None'}],
'entityType': 'Limited Partnership',
'yearOfInc': {'yetToBeFormed': True}},
'relatedPersonsList': {'relatedPersonInfo': [{'relatedPersonName': {'firstName': 'Rauhmel',
'lastName': 'Fox'},
'relatedPersonAddress': {'street1': '101A CLAY STREET NUM 250',
'city': 'SAN FRANCISCO',
'stateOrCountry': 'CA',
'stateOrCountryDescription': 'CALIFORNIA',
'zipCode': '94111'},
'relatedPersonRelationshipList': {'relationship': ['Executive Officer',
'Director',
'Promoter']}}]},
'offeringData': {'industryGroup': {'industryGroupType': 'Pooled Investment Fund',
'investmentFundInfo': {'investmentFundType': 'Venture Capital Fund',
'is40Act': False}},
'issuerSize': {'revenueRange': 'Not Applicable'},
'federalExemptionsExclusions': {'item': ['06c', '3C', '3C.1']},
'typeOfFiling': {'newOrAmendment': {'isAmendment': True,
'previousAccessionNumber': '0001701389-19-000003'},
'dateOfFirstSale': {'yetToOccur': True}},
'durationOfOffering': {'moreThanOneYear': True},
'typesOfSecuritiesOffered': {'isPooledInvestmentFundType': True},
'businessCombinationTransaction': {'isBusinessCombinationTransaction': False},
'minimumInvestmentAccepted': 0,
'salesCompensationList': {'recipient': [{'recipientName': 'WHOMENTORS.COM, INC.',
'recipientCRDNumber': 'None',
'associatedBDName': 'None',
'associatedBDCRDNumber': 'None',
'recipientAddress': {'street1': '101A CLAY STREET NUM 250',
'city': 'SAN FRANCISCO',
'stateOrCountry': 'CA',
'stateOrCountryDescription': 'CALIFORNIA',
'zipCode': '94111'},
'statesOfSolicitationList': [{'value': 'All States'}],
'foreignSolicitation': True}]},
'offeringSalesAmounts': {'totalOfferingAmount': 999999999999,
'totalAmountSold': 0,
'totalRemaining': 999999999999},
'investors': {'hasNonAccreditedInvestors': False,
'totalNumberAlreadyInvested': 0},
'salesCommissionsFindersFees': {'salesCommissions': {'dollarAmount': 0},
'findersFees': {'dollarAmount': 0}},
'useOfProceeds': {'grossProceedsUsed': {'dollarAmount': 0}},
'signatureBlock': {'authorizedRepresentative': False,
'signature': [{'issuerName': '1B USD WORLDWIDE VENTURE CAPITAL FUND',
'signatureName': 'RAUHMEL FOX',
'nameOfSigner': 'RAUHMEL FOX',
'signatureTitle': 'CEO',
'signatureDate': '2019-03-28'}]}},
'accessionNo': '0001701389-19-000004',
'filedAt': '2019-03-28T12:43:55-04:00',
'id': '241e12ccf4ecbe2b9f00f5d8f138a390'}