/api/v1/scrapping/query/Advanced Boolean Search.
Advanced Boolean Search.
25 tokensSince v1.0.0
Why use this
Advanced filing search using Lucene-syntax boolean queries, compatible with a widely-used commercial SEC-data API format — drop-in for customers migrating from that API's `/full-text-search` query endpoint. Supports field-scoped filters (`ticker:`, `formType:`, `cik:`, `filedAt:[from TO to]`), boolean operators (`AND`/`OR`/`NOT`), wildcards (`tesla*`), and grouping (`(formType:10-K OR formType:10-Q) AND ticker:AAPL`). The single most powerful metadata-query endpoint in the FinRadar surface — analyst pipelines that need 'all 10-Ks from S&P 500 issuers in 2025' in one shot. Returns paginated filing metadata in the widely-used commercial SEC-data API's exact response shape (`filings[]` + `total: {value, relation}`). For full-text inside filing exhibits use `POST /api/v1/scrapping/search/`; for raw row-shaped reads use `GET /api/v1/sec/filings`.
Common use case
Precise filtering: 'Give me all 10-Ks from Apple or Microsoft filed in 2023'.
Filing query compatible with a widely-used commercial SEC-data API format — pass a Lucene-style query string and receive paginated filing metadata. Supports the same syntax customers already use on that API (e.g. formType:"10-K" AND filedAt:[2025-01-01 TO 2025-12-31]). For raw filing-row reads use GET /api/v1/sec/filings; for full-text inside filing exhibits use POST /api/v1/scrapping/search/ which scans extracted text rather than metadata.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| query | body | required | — | — | Lucene-style query string. Field-scoped: `ticker:AAPL`, `formType:"10-K"` (quote multi-word values), `cik:0000320193`, `filedAt:[2025-01-01 TO 2025-12-31]`. Quoted and unquoted CIK equality selectors match leading-zero variants of the same company ID: `cik:320193` and `cik:"0000320193"` select the same company. This does not change CIK ranges, merge stored records, or deduplicate existing filing/company association rows. Operators: `AND`, `OR`, `NOT`. Wildcards: `tesla*`, `apple?`. Grouping: `(formType:10-K OR formType:10-Q) AND ticker:AAPL`. Bare-word queries match against issuer.name. Identical syntax to the widely-used commercial SEC-data API's full-text-search endpoint. | ticker:AAPL AND formType:10-K |
| limit | body | optional | 50 | — | Maximum filings returned, capped at 50 server-side per page (matches the widely-used commercial SEC-data API's per-page cap). For deeper pagination use the `from` field if your client supports it; for full backfills, prefer date-range chunking via the `query.filedAt:[A TO B]` syntax. | 20 |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| filings | array | no | Matching filing/company association rows; existing duplicates remain separate. |
| filings[].id | string | no | Stored filing/company row identifier, serialized as text. |
| filings[].accessionNo | string | no | SEC filing accession number. |
| filings[].cik | string | yes | Company identifier in its stored spelling; equality searches match leading-zero variants without rewriting this value. |
| filings[].ticker | string | yes | Stored ticker, or null when absent. |
| filings[].formType | string | no | Stored SEC form type. |
| filings[].companyNameLong | string | no | Stored filing-entry title. |
| filings[].companyName | string | yes | Stored company name. |
| filings[].description | string | no | Stored filing-entry title, matching companyNameLong. |
| filings[].linkToFilingDetails | string | yes | Stored primary HTML URL when present, otherwise the primary link. |
| filings[].linkToTxt | string | yes | Stored primary link. |
| filings[].linkToHtml | string | yes | Stored primary HTML URL, or null. |
| filings[].linkToXbrl | string | yes | Associated filing's XBRL link; empty string if no associated filing exists, possibly null when its link is absent. |
| filings[].filedAt | string | yes | Stored filing date as YYYY-MM-DD, or null; not an intraday acceptance timestamp. |
| filings[].periodOfReport | string | yes | This existing endpoint repeats filedAt here; it does not retrieve a separate reporting period. |
| filings[].documentFormatFiles | array | no | Associated filing document rows; empty when none are available. |
| filings[].documentFormatFiles[].sequence | string | yes | — |
| filings[].documentFormatFiles[].size | string | yes | — |
| filings[].documentFormatFiles[].documentUrl | string | yes | — |
| filings[].documentFormatFiles[].description | string | yes | — |
| filings[].documentFormatFiles[].type | string | yes | — |
| filings[].dataFiles | array | no | Associated filing data-file rows; empty when none are available. |
| filings[].dataFiles[].sequence | string | yes | — |
| filings[].dataFiles[].size | string | yes | — |
| filings[].dataFiles[].documentUrl | string | yes | — |
| filings[].dataFiles[].description | string | yes | — |
| filings[].dataFiles[].type | string | yes | — |
| filings[].entities | array | no | The company association represented by this returned row. |
| filings[].entities[].cik | string | yes | — |
| filings[].entities[].companyName | string | yes | — |
| filings[].entities[].type | string | no | — |
| filings[].seriesAndClassesContractsInformation | array | no | Empty array in the existing response. |
| total | object | no | Matching row count before limit and offset; not a distinct-filing or transaction count. |
| total.value | integer | no | — |
| total.relation | string | no | — |
Sample response
·
- "filings":
- "total":
- "value": 1
- "relation": "eq"
Errors
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected server-side failure. Retry with backoff; report if persistent. |
Code samples
curl -X POST "https://api.finradar.ai/api/v1/scrapping/query/" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "ticker:AAPL AND formType:10-K",
"limit": "20"
}'Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).