ClousDocs
Recipes

Form D capital-raise radar

Surface new Form D private placements above a size threshold and resolve each issuer to a canonical entity.

Form D capital-raise radar

Find fresh Form D private placements (Reg D exempt offerings) above a dollar threshold — the raw signal behind sourcing, competitive intel, and fundraising trackers — and resolve each issuer to a canonical entity.

Prerequisites

  • A Clous API key — get one free. Export it: export CLOUS_API_KEY=clous_live_...

1. Pull recent raises above a threshold

GET /v1/raises?min_amount=5000000&limit=10
curl -s "https://api.clous.ai/v1/raises?min_amount=5000000&limit=10" \
  -H "Authorization: Bearer $CLOUS_API_KEY"
import os, requests
r = requests.get(
    "https://api.clous.ai/v1/raises",
    params={"min_amount": 5_000_000, "limit": 10},
    headers={"Authorization": f"Bearer {os.environ['CLOUS_API_KEY']}"},
)
raises = r.json()["data"]
for x in raises:
    print(x["issuer_name"], x["issuer_state"], x.get("total_offering_amount"))
const r = await fetch(
  "https://api.clous.ai/v1/raises?min_amount=5000000&limit=10",
  { headers: { Authorization: `Bearer ${process.env.CLOUS_API_KEY}` } },
);
const { data: raises } = await r.json();

2. Filter to a sector or state

Add industry, state, or a name search (q):

curl -s "https://api.clous.ai/v1/raises?min_amount=5000000&state=CALIFORNIA&q=AI" \
  -H "Authorization: Bearer $CLOUS_API_KEY"

3. Resolve the issuer to an entity

Each raise carries an issuer_cik; resolve it for canonical name, ticker, and the entity_id you can join on across endpoints.

curl -s "https://api.clous.ai/v1/entities?cik=0002126250" \
  -H "Authorization: Bearer $CLOUS_API_KEY"

4. Page through everything

Follow page.next_cursor — cursor pagination, no offset ceiling:

url, params = "https://api.clous.ai/v1/raises", {"min_amount": 5_000_000, "limit": 100}
while True:
    resp = requests.get(url, params=params, headers=headers).json()
    handle(resp["data"])
    if not resp["page"]["has_more"]:
        break
    params["cursor"] = resp["page"]["next_cursor"]

How it works

/v1/raises serves entity-resolved Form D offerings from EDGAR. To get a webhook the moment a new raise lands instead of polling, create a monitor on target_type: form, target_value: "D" — see Real-time material-event alerts.

Next steps

On this page