DEV Community

Michalis Solomou
Michalis Solomou

Posted on

I Built a Free Tool to Search Any Company's SEC Form D Funding History

A few weeks ago I wrote about Form D filings as a funding-data source. The most common question I got back was some version of "cool, but does it cover [my specific company]?"

So I shipped a small search tool that answers that directly.

What it does

funding-signals-api.onrender.com/lookup — type a company name, get every matching Form D filing in the free-tier window: raise size, industry, and a 0-100 lead score. No signup, no API key, just a search box.

How it's built

It reuses the same public teaser query the /this-week and /industry/{slug} pages already use — a case-insensitive LIKE match on company_name, filtered through the same free-tier freshness delay so the public page never leaks real-time data:

@app.get("/lookup", include_in_schema=False)
def lookup(q: str | None = Query(None), conn=Depends(get_conn)) -> HTMLResponse:
    term = (q or "").strip()
    rows = _public_teaser_rows(
        conn, " AND lower(company_name) LIKE ?", (f"%{term.lower()}%",), limit=25
    ) if term else []
    ...
Enter fullscreen mode Exit fullscreen mode

_public_teaser_rows pulls a top-500-by-score candidate pool first, then filters by parsed filing date in Python — the underlying filed_at column mixes YYYYMMDD (EDGAR) and RFC-822 (RSS-sourced) date formats, so a raw SQL string comparison on dates would silently sort wrong. Same pattern as everywhere else this API does date filtering.

Why bother with a search box instead of just the API

Most people evaluating a data API don't want to read docs first — they want to type one company name they actually care about and see if it's there. A search box answers "is this any good" in five seconds; a Swagger page doesn't.

Free tier, no card: docs.

Top comments (0)