get_filing_parsed
Return ONE filing already parsed for you: its available normalised text and its tables as structured cells. Call it after list_company_filings, with the aann_ id that tool returned, when you need what a filing actually says rather than just its title and PDF link.
This is the step your own pipeline would otherwise have to do: a filing PDF is a layout format, not a data format, so pulling clean text and real table cells out of it is where ad-hoc extraction usually goes wrong. Tables come back as rows of cells you can read directly, not as an image or a flattened blob.
It serves ONE filing per call, whose date is at most seven days before the database current date (eight calendar dates including today). Older filings are not gone — the filing itself and its source PDF link stay available from list_company_filings for the company's whole history; only the parsed text is recent-only. When that is why you got nothing, reason says outside_parsed_window, which is a different answer from unknown_filing.
Source coverage is limited: PDFs over 150 pages are parsed only through the first 30 pages; table coverage is limited above 50 pages. Use source links for the complete original. text_chars measures stored text, not source completeness. text_truncated=false or next_text_offset=null does not mean every PDF page was parsed.
Stored text arrives in slices: read text_chars for the stored total and call again with next_text_offset until it is null. Do NOT use this to sweep a company or the market — it takes a single filing id and has no cursor.
Read text_unavailable before trusting the text. Two of its values are properties of the source file — a scan with no text layer, or a font we cannot map to Unicode — and retrying those will not help. A third, parse_failed, means the failure is ours rather than the document's, and asking again later may well work. Either way the source links are still worth opening.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| aann_ | Yes | Opaque filing id from list_company_filings, e.g. aann_Kyw46MM1gCnIaBxA. | |
| text_offset | No | 0-based offset into the filing's full text. Start at 0; then pass next_text_offset from the previous call. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| note | No | ||
| text | No | Normalised plain text of this filing, from `text_offset`, at most `limits.parsed_text_chunk_chars` characters per call. | |
| aann_ | No | ||
| found | Yes | False means either we hold no filing under this id, or the filing is outside the parsed-text window. Read `reason` to tell those apart. | |
| title | No | Original Chinese title. Never translated. | |
| market | No | ||
| reason | No | unknown_filing = no such filing id. outside_parsed_window = the filing exists and its source PDF is still available from list_company_filings, but parsed text is only served for recent filings. | |
| tables | No | Tables as cells, in document order: {index, page, n_rows, n_cols, cells, continuation_of}. continuation_of points at the table this one continues from when a table spans pages. Empty list means this filing has no tables. | |
| sources | No | Every source link we hold for this filing, best first. Use them to check our text against the original. | |
| ann_date | No | Filing date, YYYY-MM-DD. | |
| parsed_at | No | When we parsed it. | |
| disclaimer | Yes | ||
| text_chars | No | Length of stored parsed text, which may cover only part of the PDF. Compare with text_offset + len(text) to see how much is left. | |
| table_count | No | ||
| text_offset | No | ||
| window_days | No | Maximum filing-date age in database calendar days, inclusive of age zero. | |
| text_truncated | No | True when more stored text follows. False does not guarantee full PDF coverage. | |
| next_text_offset | No | Where to continue, or null at the end of stored text, not necessarily the source PDF. | |
| text_unavailable | No | Why the text cannot be used, or null when it can. no_text_layer = the source PDF carries no text layer at all (a scan), so there is nothing to extract. unreadable_font_encoding = it has text, but the PDF embeds a subset font without a Unicode map, so the characters come out as (cid:NNNN) placeholders; the text is still returned, and the numbers and structure may still be readable, but the words are not. Those two are properties of the source file — re-requesting will not help. parse_failed means the failure is OURS, not the document's: we did not parse it successfully, and it is worth asking again later. Check this field rather than testing whether `text` is empty. |