Clous
Agents / Integration

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.

Get API key
01Paste into your agent

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.

system prompt
# 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.ai
02Model Context Protocol

Connect once; the agent gets typed tools. Use the hosted server (zero install) or run the open-source @clous/mcp package locally.

hosted — any MCP clientjson
{
  "mcpServers": {
    "clous": {
      "type": "http",
      "url": "https://mcp.clous.ai",
      "headers": { "Authorization": "Bearer clous_live_…" }
    }
  }
}
local — npx @clous/mcpjson
{
  "mcpServers": {
    "clous": {
      "command": "npx",
      "args": ["-y", "@clous/mcp"],
      "env": { "CLOUS_API_KEY": "clous_live_…" }
    }
  }
}
03Function-calling tool def

Prefer raw function calling? Register Clous endpoints as tools. Full set in the OpenAPI 3.1 spec.

openai tools — examplejson
{
  "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." }
      }
    }
  }
}
04Endpoint spec
EndpointReturnsCredits
GET /v1/filingsEDGAR filing index, all forms5
GET /v1/full-textFull-text search of bodies, 2001+5
GET /v1/financials/{cik}XBRL company facts20
GET /v1/insiderForm 3/4/5 insider transactions5
GET /v1/filings/{accession}/insidersOne ownership filing, structured15
GET /v1/raisesForm D private placements5
GET /v1/cyber-incidents8-K Item 1.05 disclosures10
GET /v1/filings/{accession}/extractNamed section from a filing20
GET /v1/entitiesResolve company / CIK / ticker5

50+ endpoints · 734 SEC form types · full reference at docs.clous.ai

05Response envelope

Every endpoint returns the same shape. Enriched fields carry confidence and as_of; paginate with page.next_cursor.

envelopejson
{
  "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": []
}