Point your agent at Clous.
Everything an AI agent needs to query entity-resolved SEC/EDGAR data — one system prompt, an MCP server, function-calling tool defs, and a single response envelope. Built to be pasted into Claude Code, Cursor, or your own loop.
Drop this into CLAUDE.md, .cursorrules, or your system prompt. It teaches the agent the base URL, auth, envelope, pagination, and the endpoints it'll reach for.
# Clous — agent-native SEC/EDGAR API
BASE https://api.clous.ai
AUTH Authorization: Bearer ${CLOUS_API_KEY}
DOCS https://docs.clous.ai/llms.txt (full corpus: /llms-full.txt)
Every response uses ONE envelope:
{ data[], page{ limit, next_cursor, has_more }, as_of, source, query_echo, warnings }
Paginate by passing page.next_cursor back as ?cursor=. No offsets, no result ceiling.
Endpoints you'll use most:
GET /v1/entities?ticker=AAPL resolve a company -> CIK / entity_id
GET /v1/filings?cik=&form_type=&q= EDGAR filing index (all forms)
GET /v1/full-text?q="going concern" full-text search of filing bodies (2001+)
GET /v1/financials/{cik} XBRL company facts
GET /v1/insider?ticker=AAPL Form 3/4/5 insider transactions
GET /v1/raises?min_amount=5000000 Form D private placements
GET /v1/cyber-incidents 8-K Item 1.05 cybersecurity disclosures
GET /v1/filings/{accession}/extract?item=1A pull a named section
Always read query_echo to confirm the params Clous applied.
Get a key (100 free credits): https://clous.aiConnect once; the agent gets typed tools. Use the hosted server (zero install) or run the open-source @clous/mcp package locally.
{
"mcpServers": {
"clous": {
"type": "http",
"url": "https://mcp.clous.ai",
"headers": { "Authorization": "Bearer clous_live_…" }
}
}
}{
"mcpServers": {
"clous": {
"command": "npx",
"args": ["-y", "@clous/mcp"],
"env": { "CLOUS_API_KEY": "clous_live_…" }
}
}
}Prefer raw function calling? Register Clous endpoints as tools. Full set in the OpenAPI 3.1 spec.
{
"type": "function",
"function": {
"name": "clous_full_text_search",
"description": "Full-text search across the body of every EDGAR filing since 2001.",
"parameters": {
"type": "object",
"required": ["q"],
"properties": {
"q": { "type": "string", "description": "Keyword or \"exact phrase\"." },
"forms": { "type": "string", "description": "Comma-separated forms, e.g. 8-K,10-K." },
"limit": { "type": "integer", "description": "1-100, default 25." }
}
}
}
}| Endpoint | Returns | Credits |
|---|---|---|
| GET /v1/filings | EDGAR filing index, all forms | 5 |
| GET /v1/full-text | Full-text search of bodies, 2001+ | 5 |
| GET /v1/financials/{cik} | XBRL company facts | 20 |
| GET /v1/insider | Form 3/4/5 insider transactions | 5 |
| GET /v1/filings/{accession}/insiders | One ownership filing, structured | 15 |
| GET /v1/raises | Form D private placements | 5 |
| GET /v1/cyber-incidents | 8-K Item 1.05 disclosures | 10 |
| GET /v1/filings/{accession}/extract | Named section from a filing | 20 |
| GET /v1/entities | Resolve company / CIK / ticker | 5 |
50+ endpoints · 734 SEC form types · full reference at docs.clous.ai
Every endpoint returns the same shape. Enriched fields carry confidence and as_of; paginate with page.next_cursor.
{
"data": [ /* records */ ],
"page": { "limit": 25, "next_cursor": "…", "has_more": true },
"as_of": "2026-06-12T08:36:42Z",
"source": "form_d",
"query_echo": { "min_amount": 5000000, "limit": 25 },
"warnings": []
}