Columns and types
VARCHAR
- accession
- formType
- availabilitySource
- issuerCik
- issuerName
- issuerTicker
- resolvedTicker
- ownerCik
DATE
- filingDate
- periodOfReport
- dateOfOriginalSubmission
TIMESTAMP
- availableAt
Showing 12 of 22 recorded rows. The complete table is below.
Current logical schema for lake.insider_filings
Inspect the complete lake.insider_filings schema
Scroll sideways to compare all columns. Select a heading to sort.
| accession | VARCHAR |
| formType | VARCHAR |
| filingDate | DATE |
| availableAt | TIMESTAMP |
| availabilitySource | VARCHAR |
| periodOfReport | DATE |
| dateOfOriginalSubmission | DATE |
| issuerCik | VARCHAR |
| issuerName | VARCHAR |
| issuerTicker | VARCHAR |
| resolvedTicker | VARCHAR |
| ownerCik | VARCHAR |
| ownerName | VARCHAR |
| isDirector | BOOLEAN |
| isOfficer | BOOLEAN |
| isTenPercentOwner | BOOLEAN |
| isOther | BOOLEAN |
| officerTitle | VARCHAR |
| ownerRelationshipText | VARCHAR |
| aff10b5One | BOOLEAN |
| rawArchiveKey | VARCHAR |
| sourceUrl | VARCHAR |
No matching rows. Clear the filter to see all records.
Current logical schema for lake.insider_filings
Query lake.insider_filings using the column names and types below. The query validator and engine use this logical catalog; a field absent from an older shard returns typed NULL.
What this table contains
The logical view is backed by canonical manifest-resolved data. Query this name rather than guessing a physical database collection or object-storage path.
Inspect publicly available insider filings
Query example, not executed here. The dates and filters define the proposed research scope; returned rows and current coverage must be checked in your workspace.
A joint filing can have several owner rows. Count DISTINCT accession for filings; use resolvedTicker for a price join. availableAt controls when the filing may inform a decision, not periodOfReport.
SELECT accession, ownerCik, ownerName, resolvedTicker, availableAt, sourceUrl
FROM lake.insider_filings
WHERE availableAt >= TIMESTAMP '2026-09-01'
AND availableAt < TIMESTAMP '2026-09-19'
ORDER BY availableAt, accession, ownerCik
LIMIT 20;Submit the insider_filings example and read back its parts
Run the exact SQL through the Python SDK
Save this page's SQL as query.sql and the runner below as query.py. Use a registered key with lake scope from Developers. The runner submits the displayed insider_filings query once, saves its operation, waits on that same ID, saves the returned manifest and downloads its Parquet parts.
This submission has not been executed for the reference page. Inspect the SQL, dates and resource limits before running it. Reuse the request key only for this identical SQL and limits; use a new key when changing them.
python3 -m pip install nexustrade==1.42.0
export NEXUSTRADE_API_KEY="YOUR_LAKE_SCOPED_KEY"
python3 query.py
import json
from pathlib import Path
from nexustrade import NexusTradeClient
# Save the SQL displayed on this page as query.sql.
sql = Path("query.sql").read_text()
client = NexusTradeClient.from_environment()
operation = client.create_lake_query(
{"query": sql, "limits": {"timeoutSeconds": 30, "maxRows": 50,
"maxResultBytes": 1048576}},
idempotency_key="reference-insider_filings-20261012-v1",
)
Path("query-operation.json").write_text(json.dumps(operation, indent=2))
finished = client.wait_for_lake_query(operation["id"])
if finished["status"] != "completed":
raise RuntimeError(finished)
manifest = client.get_lake_query_manifest(operation["id"])["result"]
Path("query-manifest.json").write_text(json.dumps(manifest, indent=2))
print(json.dumps(manifest, indent=2))
for part in manifest["parts"]:
Path(f"query-{part['part']}.parquet").write_bytes(
client.download_lake_query_part(operation["id"], part["part"], max_bytes=1048576)
)
Coverage and timing
Inspect source coverage and timing before using the rows
The logical view is backed by canonical manifest-resolved data. Query this name rather than guessing a physical database collection or object-storage path.
`availableAt` is the point-in-time column: a row may inform a decision only when `availableAt <= as_of`. It is the end of the SEC filing date in America/New_York for the quarterly data sets. Never use `periodOfReport` or a transaction date as availability.
A joint filing has one row per reporting owner, so count filings with `COUNT(DISTINCT accession)`, not `COUNT(*)`.
Join prices and other tables on `resolvedTicker`, never `issuerTicker`. `issuerTicker` is the filer's free text (`NYSE: KRC`, `LEN, LEN.B`, `vicr`, `none`), and 0.8% to 1.6% of rows a year are not a ticker; `resolvedTicker` is that text reduced to one symbol, null when the issuer has no listed symbol.
Amendments (`formType` 3/A, 4/A, 5/A) are separate rows with their own `availableAt`; `dateOfOriginalSubmission` points back to the original filing date.
`sourceUrl` is the filing's SEC EDGAR index page, https://www.sec.gov/Archives/edgar/data/{issuerCik without leading zeros}/{accession without dashes}/{accession}-index.htm, and `rawArchiveKey` names the archived copy that was parsed.
No comments yet.