Analyze Form C crowdfunding offerings
Pull every new Regulation Crowdfunding offering filed in a month and summarize targets, maximums, security types and funding portals.
Companies raising money under Regulation Crowdfunding file Form C before the offering starts. The form is structured XML: the issuer, the intermediary (a registered funding portal or broker-dealer), the security offered, the target amount, the maximum amount and the deadline, plus summary financials. /v1/form-c returns each filing with that XML as JSON under data.
This tutorial collects the original Form C filings for September 2026 and summarizes them.
Form types in the family
/v1/form-c covers the whole family. Pass formType to narrow it:
| formType | Meaning |
|---|---|
C | A new offering |
C/A | Amendment to an offering |
C-U | Progress update |
C-AR | Annual report after the offering |
C-TR | Termination of reporting |
The code
import os
from collections import Counter
import requests
BASE = "https://secfeedapi.com"
HEADERS = {"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"}
offerings, start = [], 0
while True:
r = requests.get(f"{BASE}/v1/form-c", headers=HEADERS, timeout=120, params={
"formType": "C", "startDate": "2026-09-01", "endDate": "2026-09-30", "size": 100, "from": start})
r.raise_for_status()
page = r.json()["filings"]
offerings += page
if len(page) < 100:
break
start += 100
print(len(offerings), "new Form C offerings filed in September 2026")
def security_type(off):
s = off.get("securityOfferedOtherDesc") or off.get("securityOfferedType") or ""
return "SAFE" if "safe" in s.lower() or "simple agreement" in s.lower() else s # issuers spell SAFE many ways
rows = []
for f in offerings:
fd = f["data"]["primary_doc"]["formData"]
off = fd.get("offeringInformation") or {}
iss = fd.get("issuerInformation") or {}
rows.append({
"issuer": f["companyName"],
"portal": (iss.get("companyName") or "").strip(),
"security": security_type(off),
"target": float(off.get("offeringAmount") or 0),
"max": float(off.get("maximumOfferingAmount") or 0),
"deadline": off.get("deadlineDate", ""),
})
targets = sorted(r["target"] for r in rows if r["target"])
print(f"median target ${targets[len(targets) // 2]:,.0f}, median maximum ${sorted(r['max'] for r in rows)[len(rows) // 2]:,.0f}")
print("\nSecurity types:")
for kind, n in Counter(r["security"] for r in rows).most_common(6):
print(f"{n:4} {kind}")
print("\nIntermediaries (funding portals and broker-dealers):")
for portal, n in Counter(r["portal"] for r in rows if r["portal"]).most_common(8):
print(f"{n:4} {portal}")
print("\nLargest maximum raises:")
for r in sorted(rows, key=lambda r: -r["max"])[:8]:
print(f"${r['max']:>12,.0f} {r['issuer'][:40]:40} {r['security'][:34]}")
The fields used come straight from the filing: formData.offeringInformation holds offeringAmount (the target), maximumOfferingAmount, securityOfferedType and deadlineDate. The intermediary's name is in formData.issuerInformation.companyName. Issuers describe SAFEs in many ways ("SAFE", "Simple Agreement for Future Equity (SAFE)"), so the script groups them under one label.
Output
Run on 2026-10-13. The 48 filings match the count of formType:"C" filings for September 2026 in the filing index.
48 new Form C offerings filed in September 2026
median target $50,000, median maximum $1,229,999
Security types:
12 SAFE
8 Common Stock
5 Debt
2 Class B Non-Voting Common Stock
2 Class B Common Stock
2 Preferred Stock
Intermediaries (funding portals and broker-dealers):
15 Wefunder Portal LLC
9 StartEngine Primary, LLC
7 DEALMAKER SECURITIES LLC
4 OpenDeal Portal LLC
2 Honeycomb Portal LLC
2 PicMii Crowdfunding LLC
1 ALAO Invest LLC
1 ANDES CAPITAL GROUP, LLC
Largest maximum raises:
$ 5,000,000 String Cubed Inc Class B Non-Voting Common Stock
$ 5,000,000 Fortune Nickel & Gold Inc Common Stock
$ 5,000,000 Brax Technlogies PBC Class B Non-Voting Common Stock
$ 5,000,000 Sherpa Healthy Inc. SAFE
$ 4,999,993 Infinity Fuel Cell & Hydrogen, Inc. Class C Non-Voting Common Stock
$ 4,973,010 POWERLINK DIGITAL PARTNERS I, INC. Common Stock
$ 4,834,820 Cybr International, Inc Class B Common Stock
$ 4,300,000 Shark Wheel, Inc. Convertible Note
Reading the result
- The median target is small ($50,000) while the median maximum is over $1.2 million. Issuers set a low minimum to close and accept oversubscriptions up to the maximum.
- $5,000,000 is the Regulation Crowdfunding cap for a 12 month period, which is why several offerings sit exactly at it.
- Wefunder and StartEngine together handled half of the month's new offerings.
Variations
- Track progress: fetch
C-Ufilings for the same issuers to see which offerings reached their target. - Financial screen:
annualReportDisclosureRequirementshas revenue, assets, cash and debt for the two most recent fiscal years. - Lighter responses: add
fields=flatonce flat fields are filled for the family, or keep only the keys you need client side.