Search & Browse

Company search, exchanges, sectors, and curated subsets. All endpoints live under https://api.edgar.tools/v1.

GET /v1/search

Tier: Free

Search for companies by name, ticker, or CIK.

ParameterTypeDescription
qstring (required)Search query (company name, ticker, or CIK)
curl "https://api.edgar.tools/v1/search?q=Apple" \
  -H "Authorization: Bearer etk_your_key_here"
{
  "entities": [
    {
      "cik": "0000320193",
      "name": "Apple Inc.",
      "ticker": "AAPL",
      "entity_type": "company",
      "sic_description": "Electronic Computers",
      "state_of_incorporation": "CA",
      "fiscal_year_end": "0930"
    }
  ],
  "total": 1,
  "query": "Apple"
}

GET /v1/search/full-text

Tier: Professional+

Full-text search across every SEC filing since 2001 — searches inside the filing body, not just company metadata. Backed by SEC EDGAR's EFTS index.

You must provide at least one of q, forms, ciks, or locations.

Query syntax

The q parameter supports four operators:

SyntaxExampleMeaning
Phrase quotes"material weakness"Exact phrase match
Booleanrevenue OR earnings, gas NOT renewableOR / NOT (AND is implicit between bare terms)
ProximityNEAR(revenue, decline, 5)Two terms within N tokens of each other
Suffix wildcardgas*Prefix-match — matches gas, gases, gasoline, etc.

Form codes are case-sensitive when used as terms (10-K, not 10-k).

Parameters

ParameterTypeDescription
qstringSearch query. Required if no forms/ciks/locations provided
formsstring (CSV)Filter by SEC form types (e.g. 10-K,8-K)
ciksstring (CSV)Filter by company CIKs (zero-padding optional)
date_fromstring (YYYY-MM-DD)Start date (inclusive)
date_tostring (YYYY-MM-DD)End date (inclusive)
locationsstring (CSV)State/country codes (e.g. CA,NY,UK)
location_typestringlocated (HQ) or incorporated — only meaningful with locations
itemsstring (CSV)8-K item codes (e.g. 2.02,5.02) — only meaningful with forms=8-K
fromint (default 0)Pagination offset. Bounded by your tier's result cap
sizeint (default 20, max 100)Results per page

Example

# Find every 10-K filed since 2024 mentioning "material weakness"
curl "https://api.edgar.tools/v1/search/full-text?q=%22material+weakness%22&forms=10-K&date_from=2024-01-01&size=5" \
  -H "Authorization: Bearer etk_your_key_here"

Response

{
  "results": [
    {
      "id": "0000320193-24-000123:filing.htm",
      "score": 12.4,
      "accession": "0000320193-24-000123",
      "form": "10-K",
      "root_forms": ["10-K"],
      "file_type": "10-K",
      "file_date": "2024-11-01",
      "period_ending": "2024-09-28",
      "filename": "filing.htm",
      "url": "https://www.sec.gov/Archives/edgar/data/320193/...",
      "entities": [
        { "cik": "0000320193", "name": "Apple Inc.", "ticker": "AAPL" }
      ],
      "ciks": ["0000320193"],
      "biz_states": ["CA"],
      "biz_locations": ["CA"],
      "inc_states": ["CA"],
      "sics": ["3571"],
      "items": [],
      "is_primary": true,
      "is_amendment": false
    }
  ],
  "total": 142,
  "total_relation": "eq",
  "from": 0,
  "size": 5,
  "tier": "professional",
  "tier_cap": 500,
  "tier_capped": false,
  "facets": {
    "forms": [{ "key": "10-K", "doc_count": 142 }],
    "entities": [{ "cik": "0000320193", "name": "Apple Inc.", "ticker": "AAPL", "count": 3 }],
    "sics": [{ "key": "3571", "doc_count": 35 }],
    "biz_states": [{ "key": "CA", "doc_count": 28 }]
  },
  "query": {
    "q": "\"material weakness\"",
    "forms": ["10-K"],
    "ciks": [],
    "date_from": "2024-01-01",
    "date_to": null,
    "location_codes": [],
    "location_type": null,
    "items": []
  }
}

Results are grouped by filing

EFTS returns one hit per matching document, so a filing that mentions your query in several exhibits would appear several times. The API collapses these into one entry per filing — the results array carries one row per accession, with the best-matching document chosen for the snippet and the matched filenames unioned.

total, however, is a document count, not a filing count: a filing that matched in N documents contributes N to total. The same applies to facets[].doc_count. So total will typically exceed the number of distinct filings you can page through — use it as a relevance signal, not as the count of filings in the result set.

Tier-based result caps

You can paginate up to your tier's ceiling. Past that, tier_capped flips to true and the API returns the last reachable page so you can prompt for upgrade.

TierMax paginated results (from + size)
Professional500
Analyst1,000
Enterprise10,000 (EFTS hard cap)

Free tier returns 403 insufficient_tier at the route — full-text search is Pro+.

Errors

StatusCodeCause
400missing_queryNone of q / forms / ciks / locations provided
400invalid_paramMalformed date_from / date_to / from / size / location_type
400invalid_queryEFTS rejected the query syntax — usually a malformed NEAR() or unbalanced quotes
403insufficient_tierFree tier — upgrade to Professional or above
429upstream_rate_limitedSEC EDGAR rate-limited us; retry after a short pause
502upstream_errorSEC EDGAR returned 5xx or the network call failed

GET /v1/companies

Tier: Free

List companies with optional sector and exchange filters.

ParameterTypeDescription
pageinteger (default 1)Page number
limitinteger (default 20, max 100)Results per page
sectorstringFilter by sector code
exchangestringFilter by exchange code (e.g. NASDAQ, NYSE)
curl "https://api.edgar.tools/v1/companies?limit=10&exchange=NASDAQ" \
  -H "Authorization: Bearer etk_your_key_here"
{
  "companies": [
    {
      "cik": "0000320193",
      "name": "Apple Inc.",
      "ticker": "AAPL",
      "sic_description": "Electronic Computers"
    }
  ],
  "pagination": { "page": 1, "limit": 20, "total": 10, "has_more": false },
  "filters": { "sector": null, "exchange": "NASDAQ" }
}

GET /v1/companies/{cik}

Tier: Free

Get detailed information about a specific company by CIK or ticker.

ParameterTypeDescription
cikstring (path)Company CIK number or ticker symbol
curl "https://api.edgar.tools/v1/companies/AAPL" \
  -H "Authorization: Bearer etk_your_key_here"
{
  "company": {
    "cik": "0000320193",
    "name": "Apple Inc.",
    "ticker": "AAPL",
    "entity_type": "company",
    "sic_description": "Electronic Computers",
    "state_of_incorporation": "CA",
    "fiscal_year_end": "0930"
  }
}

GET /v1/companies/{cik}/filings

Tier: Free

Get filings for a specific company with optional form type filter.

ParameterTypeDescription
cikstring (path)Company CIK number
pageinteger (default 1)Page number
limitinteger (default 20, max 100)Results per page
form_typestringFilter by form type (e.g. 10-K, 8-K)
curl "https://api.edgar.tools/v1/companies/0000320193/filings?form_type=10-K&limit=5" \
  -H "Authorization: Bearer etk_your_key_here"
{
  "filings": [
    {
      "accession_number": "0001628280-24-123456",
      "form": "10-K",
      "filing_date": "2024-03-15",
      "acceptance_datetime": "2024-03-15T16:30:00Z",
      "description": "Annual Report",
      "size": 1024000,
      "items": ["1.01", "2.02"]
    }
  ],
  "pagination": { "page": 1, "limit": 20, "total": 1, "has_more": false },
  "filters": { "form_type": "10-K" },
  "company_cik": "0000320193"
}

GET /v1/subsets

Tier: Professional

Get available company subsets — curated collections like S&P 500 or Fama-French industry buckets.

curl "https://api.edgar.tools/v1/subsets" \
  -H "Authorization: Bearer etk_your_key_here"
{
  "subsets": [
    {
      "name": "sp500",
      "display_name": "S&P 500",
      "description": "Standard & Poor's 500 index constituents",
      "company_count": 503,
      "tier_required": "professional",
      "tags": ["index", "large-cap"]
    }
  ],
  "user_tier": "professional"
}

GET /v1/subsets/{subset_name}

Tier: Professional

Get companies in a specific subset.

ParameterTypeDescription
subset_namestring (path)Subset identifier (e.g. sp500)
curl "https://api.edgar.tools/v1/subsets/sp500" \
  -H "Authorization: Bearer etk_your_key_here"
{
  "subset_name": "sp500",
  "companies": [
    {
      "cik": "0000320193",
      "name": "Apple Inc.",
      "ticker": "AAPL",
      "sic_description": "Electronic Computers"
    }
  ],
  "total": 503
}

GET /v1/exchanges

Tier: Professional

Get the list of available stock exchanges.

curl "https://api.edgar.tools/v1/exchanges" \
  -H "Authorization: Bearer etk_your_key_here"
{
  "exchanges": [
    { "code": "NASDAQ", "name": "NASDAQ", "country": "US" },
    { "code": "NYSE", "name": "New York Stock Exchange", "country": "US" },
    { "code": "AMEX", "name": "American Stock Exchange", "country": "US" }
  ],
  "total": 3
}

GET /v1/exchanges/{exchange}/companies

Tier: Professional

Get companies listed on a specific exchange.

ParameterTypeDescription
exchangestring (path)Exchange code (e.g. NASDAQ)
limitinteger (default 20, max 100)Max results
curl "https://api.edgar.tools/v1/exchanges/NASDAQ/companies?limit=10" \
  -H "Authorization: Bearer etk_your_key_here"
{
  "exchange": "NASDAQ",
  "companies": [
    {
      "cik": "0000320193",
      "name": "Apple Inc.",
      "ticker": "AAPL",
      "sic_description": "Electronic Computers"
    }
  ],
  "total": 50,
  "limit": 20
}

GET /v1/sectors

Tier: Professional

Get the list of available industry sectors.

curl "https://api.edgar.tools/v1/sectors" \
  -H "Authorization: Bearer etk_your_key_here"
{
  "sectors": [
    { "code": "technology", "name": "Technology", "description": "Software, hardware, and tech services" },
    { "code": "healthcare", "name": "Healthcare", "description": "Pharmaceuticals, biotechnology, and medical devices" }
  ],
  "total": 11
}