SEC filings research
Answer filing questions with identifiable documents, reporting periods, and
source links. Separate reported facts, management statements, and analytical
interpretations; a filing lookup alone does not support a buy/sell conclusion.
Setup
Set CRAWLORA_API_KEY to your key from crawlora.net.
Run the bundled scripts/crawlora.sh from this skill directory or by absolute
path. It uses x-api-key at https://api.crawlora.net/api/v1; keep the key in
the environment. Read reference/endpoints.md for live
SEC tools and the selected stored company/position datasets.
Resolve, retrieve, compare
Resolve the correct legal entity with /sec/company/search?q=.... Preserve
the CIK, ticker when available, and company name; tickers and names can change.
Use /sec/company/submissions with cik or ticker, optional form,
from, to, and limit (max 500). One company identifier is required even
when the catalog marks each individual field optional. Filing-date filters
are not reporting-period filters. Resolve accession numbers from results.
Retrieve /sec/filing with accession plus the company identifier. For a
10-K/10-Q/8-K analysis, /sec/filing/sections accepts items and max_chars
(default 20,000; max 200,000 per section). Item numbering differs by form;
read the returned form/title rather than assuming every Item 7 is MD&A.
Compare equivalent sections from the requested filings. If truncated=true,
increase the cap within limits or inspect the primary document using
/web/scrape. If text is still unavailable, narrow the claim. Never conclude
a risk disappeared solely because it is absent from truncated extraction.
For numeric comparisons, /sec/financials supports statement=income,
balance, or cash_flow; period=annual or quarterly; limit up to 20.
Preserve fiscal period, end date, currency, form, and returned source URL.
Normalized values use latest-filed figures per period and may reflect
restatements; they are not necessarily what was known on a historical date.
Use the specialized surfaces only when needed:
| Question |
Surface and constraint |
| Find filings mentioning a topic |
/sec/full-text-search; confirm hits in the actual filing |
| Company overview |
/sec/company/intelligence; requested unavailable enrichments appear in degraded |
| Insider disclosures |
/sec/insider with company identifier; inspect transaction codes/roles instead of calling every acquisition a market purchase |
| Manager's holdings |
/sec/institutional-holdings requires the manager's CIK, not the issuer's ticker; returns latest 13F-HR holdings |
| Cross-company XBRL fact |
/sec/frames requires concept and period; match taxonomy/unit and distinguish duration from instant frames |
| Bulk company/position discovery |
Selected /datasets/sec-companies/* and /datasets/sec-institutional-positions/*; discover facet values and label these stored snapshots |
scripts/crawlora.sh /sec/company/search q=Apple
scripts/crawlora.sh /sec/company/submissions ticker=AAPL form=10-K limit=2
# Use a returned accession for filing/sections; do not reuse a stale example ID.
scripts/crawlora.sh /sec/financials ticker=AAPL statement=income period=annual limit=2
Evidence and limits
Return a brief or comparison with entity/CIK, accession, form, filing date,
reporting date/period, cited section or fact, source URL, and retrieval time.
Show calculations and distinguish missing values from zeros.
- Match currency, units, duration, and fiscal calendars. A quarterly cash-flow
disclosure can be year-to-date; do not assume it is a standalone quarter.
Calendar frames can contain different start/end dates across filers. Verify
comparability before calculating growth or ranking companies.
- Check amendments and restatements when the question depends on historical
changes. An incomplete recent-submissions window is not an exhaustive archive.
- 13F is a delayed reporting snapshot with defined coverage, not a current
complete portfolio or a record of every trade. Do not infer trade dates or
investor intent from a change in reported holdings alone.
- Dataset results may lag live filings. Keep data-as-of dates distinct from
collection time. Inspect
degraded rather than silently filling enrichment gaps.
- Back off on
429, retry a transient 5xx once, stop on 401/403, and
check application code. Preserve partial evidence with explicit gaps.
For XBRL context and frame semantics, see the SEC's API documentation.
1---2name: sec-filings-research3description: Research SEC EDGAR filings and financial disclosures through Crawlora, including company filings, extracted sections, normalized financials, insider transactions, and institutional holdings. Use for sourced filing briefs and period-aware company or disclosure comparisons.4---56# SEC filings research78Answer filing questions with identifiable documents, reporting periods, and9source links. Separate reported facts, management statements, and analytical10interpretations; a filing lookup alone does not support a buy/sell conclusion.1112## Setup1314Set `CRAWLORA_API_KEY` to your key from [crawlora.net](https://crawlora.net).15Run the bundled `scripts/crawlora.sh` from this skill directory or by absolute16path. It uses `x-api-key` at `https://api.crawlora.net/api/v1`; keep the key in17the environment. Read [reference/endpoints.md](reference/endpoints.md) for live18SEC tools and the selected stored company/position datasets.1920## Resolve, retrieve, compare21221. Resolve the correct legal entity with `/sec/company/search?q=...`. Preserve23 the CIK, ticker when available, and company name; tickers and names can change.242. Use `/sec/company/submissions` with `cik` or `ticker`, optional `form`,25 `from`, `to`, and `limit` (max 500). One company identifier is required even26 when the catalog marks each individual field optional. Filing-date filters27 are not reporting-period filters. Resolve accession numbers from results.283. Retrieve `/sec/filing` with `accession` plus the company identifier. For a29 10-K/10-Q/8-K analysis, `/sec/filing/sections` accepts `items` and `max_chars`30 (default 20,000; max 200,000 per section). Item numbering differs by form;31 read the returned form/title rather than assuming every Item 7 is MD&A.324. Compare equivalent sections from the requested filings. If `truncated=true`,33 increase the cap within limits or inspect the primary document using34 `/web/scrape`. If text is still unavailable, narrow the claim. Never conclude35 a risk disappeared solely because it is absent from truncated extraction.365. For numeric comparisons, `/sec/financials` supports `statement=income`,37 `balance`, or `cash_flow`; `period=annual` or `quarterly`; `limit` up to 20.38 Preserve fiscal period, end date, currency, form, and returned source URL.39 Normalized values use latest-filed figures per period and may reflect40 restatements; they are not necessarily what was known on a historical date.416. Use the specialized surfaces only when needed:4243 | Question | Surface and constraint |44 |---|---|45 | Find filings mentioning a topic | `/sec/full-text-search`; confirm hits in the actual filing |46 | Company overview | `/sec/company/intelligence`; requested unavailable enrichments appear in `degraded` |47 | Insider disclosures | `/sec/insider` with company identifier; inspect transaction codes/roles instead of calling every acquisition a market purchase |48 | Manager's holdings | `/sec/institutional-holdings` requires the **manager's CIK**, not the issuer's ticker; returns latest 13F-HR holdings |49 | Cross-company XBRL fact | `/sec/frames` requires `concept` and `period`; match taxonomy/unit and distinguish duration from instant frames |50 | Bulk company/position discovery | Selected `/datasets/sec-companies/*` and `/datasets/sec-institutional-positions/*`; discover facet values and label these stored snapshots |5152```sh53scripts/crawlora.sh /sec/company/search q=Apple54scripts/crawlora.sh /sec/company/submissions ticker=AAPL form=10-K limit=255# Use a returned accession for filing/sections; do not reuse a stale example ID.56scripts/crawlora.sh /sec/financials ticker=AAPL statement=income period=annual limit=257```5859## Evidence and limits6061Return a brief or comparison with entity/CIK, accession, form, filing date,62reporting date/period, cited section or fact, source URL, and retrieval time.63Show calculations and distinguish missing values from zeros.6465- Match currency, units, duration, and fiscal calendars. A quarterly cash-flow66 disclosure can be year-to-date; do not assume it is a standalone quarter.67 Calendar frames can contain different start/end dates across filers. Verify68 comparability before calculating growth or ranking companies.69- Check amendments and restatements when the question depends on historical70 changes. An incomplete recent-submissions window is not an exhaustive archive.71- 13F is a delayed reporting snapshot with defined coverage, not a current72 complete portfolio or a record of every trade. Do not infer trade dates or73 investor intent from a change in reported holdings alone.74- Dataset results may lag live filings. Keep data-as-of dates distinct from75 collection time. Inspect `degraded` rather than silently filling enrichment gaps.76- Back off on `429`, retry a transient `5xx` once, stop on `401`/`403`, and77 check application `code`. Preserve partial evidence with explicit gaps.7879For XBRL context and frame semantics, see the [SEC's API documentation](https://www.sec.gov/search-filings/edgar-application-programming-interfaces).