Skip to main content

Getting Started

The shortest useful path

Get one issuer, one filing, and one structured statement working first. Do that before you chase a broader integration. If you are connecting an MCP-aware client, start with the hosted MCP metadata below. For REST and SDK work, start with your API key.

Before you make a request

  1. Export SECAPI_API_KEY
  2. Verify health at https://api.secapi.ai/healthz
  3. Verify readiness at https://api.secapi.ai/readyz
  4. Decide whether you are starting with REST, SDK, CLI, or MCP
  5. Pick one identifier you already trust such as ticker, CIK, FIGI, ISIN, or CUSIP

REST quickstart

curl -H "x-api-key: $SECAPI_API_KEY" \
  -H "secapi-version: 2026-03-19" \
  "https://api.secapi.ai/v1/entities/resolve?ticker=AAPL"

curl -H "x-api-key: $SECAPI_API_KEY" \
  -H "secapi-version: 2026-03-19" \
  "https://api.secapi.ai/v1/filings/latest?ticker=AAPL&form=10-K"

curl -H "x-api-key: $SECAPI_API_KEY" \
  -H "secapi-version: 2026-03-19" \
  "https://api.secapi.ai/v1/statements/all?ticker=AAPL&period=annual&limit=1"

JavaScript quickstart

npm install @secapi/sdk-js
import { SecApiClient } from "@secapi/sdk-js"

const client = new SecApiClient({
  apiKey: process.env.SECAPI_API_KEY!,
})

const issuer = await client.resolveEntity({ ticker: "AAPL" })
const filing = await client.latestFiling({ ticker: "AAPL", form: "10-K" })
const statements = await client.allStatements({ ticker: "AAPL", period: "annual", limit: 1 })

Python quickstart

import os

from secapi_client import SecApiClient

client = SecApiClient(
    api_key=os.environ["SECAPI_API_KEY"],
    base_url="https://api.secapi.ai",
)

issuer = client.resolve_entity(ticker="AAPL")
filing = client.latest_filing(ticker="AAPL", form="10-K")
statements = client.all_statements(ticker="AAPL", period="annual", limit=1)

CLI quickstart

Install the CLI via Homebrew or npm:
# Homebrew
brew install autonomous-computer/sec-api/secapi

# or npm
npm install -g @secapi/cli
Then run your first queries:
secapi entities resolve --ticker AAPL --json
secapi filings latest --ticker AAPL --form 10-K --json
secapi statements get --ticker AAPL --statement all --period annual --json

Trace hydration quickstart

When a filing-derived response includes trace references, hydrate them by trace id.
curl -H "x-api-key: $SECAPI_API_KEY" \
  -H "secapi-version: 2026-03-19" \
  "https://api.secapi.ai/v1/traces/<trace_id>"
const trace = await client.getTrace("<trace_id>")

MCP quickstart

  • MCP server: https://api.secapi.ai/mcp
  • Protected resource metadata: https://api.secapi.ai/.well-known/oauth-protected-resource
  • Authorization server metadata: https://api.secapi.ai/.well-known/oauth-authorization-server

First MCP tools to call

  • entities.resolve
  • filings.latest
  • statements.get

What to keep from your first success

  • the Request-Id
  • the exact endpoint or tool you called
  • the provenance, freshness, and trace metadata from the response

Next pages