Regulatory filings and compliance search

SEC filings, regulations, and audited sources for finance & legaltech.

For

Fintech, regtech, legaltech — products where the answer must be sourced from a regulator or filing, not from a blog post or Reddit thread.

The pain

Without a real retrieval layer.

Generic search returns 90% noise for compliance queries. SEC EDGAR is free but a pain to query. Lexis costs $50k/year. Building your own filings crawler is six months of regex.

With SiftQ

One call, the right shape.

The `document` scope is a SiftQ vertical that prioritizes PDFs, filings, and primary-source documents. Combine with `includeRawContent=true` to pull the full text of a filing into your LLM context.

Recommended config

Start with this shape.

scopedocument
size10
optionsincludeRawContent=true (pull full filing text) · ZDR enterprise tier for confidentiality
Working code

Paste, run, ship.

Python — SEC filing analysis
import os, requests, anthropic

claude = anthropic.Anthropic()
HEADERS = {"Authorization": f"Bearer {os.environ['SIFTQ_API_KEY']}"}

def find_filings(query: str, k: int = 5) -> list[dict]:
    r = requests.post(
        "https://api.siftq.com/v1/search",
        headers=HEADERS,
        json={
            "q": query,
            "scope": "document",
            "size": str(k),
            "includeRawContent": True,   # +3 credits / page, pulls full text
        },
        timeout=30,
    )
    return r.json().get("documents", [])

def material_risks(company_ticker: str) -> str:
    docs = find_filings(f"{company_ticker} 10-K risk factors")
    if not docs:
        return "No filings found."
    primary = docs[0]
    msg = claude.messages.create(
        model="claude-sonnet-4-6", max_tokens=1024,
        messages=[{
            "role": "user",
            "content": (
                f"Extract the top 5 material risks from this 10-K filing.\n"
                f"Cite section numbers when present.\n\n"
                f"FILING: {primary.get('title')}\n"
                f"SOURCE: {primary.get('link')}\n\n"
                f"{primary.get('snippet', '')}"
            ),
        }],
    )
    return msg.content[0].text

print(material_risks("NVDA"))
Why SiftQ for this
FAQ

Likely questions.

Does this cover SEC filings only, or international too?

Document scope spans SEC, EU regulator filings, IRS publications, and other public primary sources. UK Companies House, Japan EDINET, and similar non-US filings are in roadmap.

Can I get a specific filing by accession number?

Yes — put the accession number directly in the query. Document scope matches exact identifiers efficiently.

How should regulated teams evaluate this?

Regulated workloads need a customer-specific review. Enterprise customers can request security documentation, DPA review, and retention terms by agreement.

Keep reading
Use case
Search for autonomous research agents
Give your agent a primitive it can call dozens of times per task.
Use case
Competitive intelligence on demand
Monitor competitors, markets, and signals — programmatically.
Glossary
Web retrieval API
An API that takes a query and returns ranked web documents in a format an LLM can consume.
Glossary
Citation
A link or reference back to the source from which an LLM-generated claim was derived.

Try it on your
real workload.

The free tier covers most prototypes. No credit card.