Skip to content
/api/v1/scrapping

Live SEC EDGAR scrape with form-type + CIK + date filtering.

Live SEC EDGAR scrape with form-type + CIK + date filtering. Returns filings synthesized by a Python subprocess that scrapes EDGAR's search pages — heavier and slower than the local-index `/api/v1/sec/filings` endpoint. Use this when you need filings that haven't been ingested locally yet, or when you need EDGAR's search-page-specific fields not stored in the local index.

10 tokensSince v1.0.0

Why use this

Live scrape against SEC EDGAR's search pages — heavier (10 token cost reflects the full-EDGAR roundtrip via a Python subprocess) and slower than `GET /api/v1/sec/filings` (which hits the local index instantly and costs only 5 tokens). Use this when: (a) you need filings that haven't been ingested locally yet (very recent filings before the RSS poller catches them), (b) you specifically want EDGAR's search-result schema rather than FinRadar's normalized schema, (c) you're integrating from a tutorial that referenced this endpoint and don't want to refactor. For 99% of workflows prefer [GET /api/v1/sec/filings](/docs/sec-filings/sec-filings-api/get-sec-filings) — it's faster, cheaper, and self-healing (auto-backfills via this scrape on first-touch). Note: returns a different envelope shape than the rest of the SEC Filings API (`{query, filings}` rather than `ApiResponse.success`).

Common use case

Tutorial follow-along where the example is parameterized for `/scrapping`. For new integrations, prefer `/sec/filings`.

Live SEC EDGAR scrape via Python subprocess — heavier than the local-index siblings. Cost is 10 tokens (vs 5 for /sec/filings) reflecting the full-EDGAR round-trip. The 10-token tier signals: this endpoint is intended for fallback / tutorial-compatibility use, not as the primary filings list. For 99% of workflows you should be using GET /api/v1/sec/filings — it's faster (local DB hit), cheaper (5 tokens), and self-healing (auto-backfills missing tickers via this scraper internally). Returns a different envelope shape than the rest of the SEC Filings API ({query, filings} rather than ApiResponse.success-wrapped) — preserved verbatim for backwards compatibility with sec-api.io-derived tutorials. When you only need raw filing body content from a known URL, use GET /api/v1/sec/document?url=... instead — that endpoint is also 5 tokens and handles arbitrary SEC URLs.

Parameters

NameInRequiredDefaultAllowedDescriptionExample
form_Typequeryoptional10-KForm type to scrape (`10-K`, `10-Q`, `8-K`, `4`, `13F-HR`, `S-1`, etc. — see [SEC EDGAR form types](https://www.sec.gov/forms)). Note the CamelCase param name (`form_Type` not `form_type`) — preserved verbatim from EDGAR's URL convention. Defaults to `10-K` when omitted.10-K
cikqueryoptional10-char zero-padded CIK to filter by. Use the CIK rather than ticker — EDGAR's search index is CIK-keyed. Resolve a ticker → CIK via [GET /api/v1/scrapping/cik](/docs/sec-filings/search-and-extraction/get-scrapping-cik) first.0000320193
countqueryoptional0Number of filings to return. `0` (default) means "unlimited" — beware on large issuers. Cap at 40 for predictable latency.10
sizequeryoptional10Page size for EDGAR's pagination (1-40). Mirrors EDGAR's `count` URL param verbatim. Lower values reduce per-call latency.10
start_DatequeryoptionalLower-bound filing date in `YYYY-MM-DD` format. CamelCase param name (`start_Date`) preserved from EDGAR's URL convention. Filtered client-side after EDGAR returns — does NOT reduce upstream load.2025-01-01
end_DatequeryoptionalUpper-bound filing date in `YYYY-MM-DD` format. Filtered client-side after EDGAR returns.2025-12-31

Response schema

FieldTypeNullableDescription
queryobjectnoEcho of the resolved query parameters used for the EDGAR scrape — useful for debugging when results don't match expectations.
query.formTypestringnoEchoed form type (uppercased). Confirms the `form_Type` param was parsed correctly.
query.resultintegernoCount of filings returned in `filings[]` after date filtering. Equals `filings.length`.
filingsarraynoArray of filing records as scraped from SEC EDGAR's search pages. Schema differs from `GET /api/v1/sec/filings`'s normalized schema — uses EDGAR-native field names. Empty array on no match. The cost-zero distinction: this is a heavyweight call (10 tokens) that runs a Python subprocess against EDGAR; use the local index endpoint when possible.
filings[].accession_NumberstringnoSEC accession number in canonical 18-char dashed format `XXXXXXXXXX-YY-NNNNNN`. CamelCase field name (`accession_Number`) reflects EDGAR's stored form.
filings[].cikstringnoFiler CIK as zero-padded 10-character string.
filings[].formTypestringnoCanonical SEC form type (e.g. `10-K`, `10-Q`, `8-K`, `4`, `13F-HR`).
filings[].filingDatestringnoISO date `YYYY-MM-DD` of the filing's SEC acceptance date in ET. CamelCase field name reflects EDGAR's stored form.
filings[].linkToFilingDetailsstringnoCanonical SEC EDGAR URL for the filing's index page. Pass this to [GET /api/v1/sec/document?url=...](/docs/sec-filings/sec-filings-api/get-sec-document) to fetch the filing body.

Sample response

·
  • "query":
    • "formType": "10-K"
    • "result": 1
    }
  • "filings":
    ]
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/api/v1/scrapping?api_Token=YOUR_API_KEY" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).