Datasets

from datamulehub import datasets

Datasets such as insider transactions, simple xbrl, and standardized text can be downloaded or queried with SQL. Simple XBRL, XML tables, filing metadata, and standardized text queries include newly processed filings by default (from_storage="both"). Including per-filing data can cost more; use from_storage="daily" to query only the daily snapshot.

Datasets update both instantly and daily. The daily dataset takes up less space. Daily updates at 06:00 UTC Tuesday–Saturday. This is 1-2AM ET depending on Daylight Savings. We recommend if you want to refesh data at a daily interval, to pull after 09:00 UTC. Pulling after 06:15 UTC should be fine.

Download

download(dataset, filename=None, from_storage="both", accession=None)

Example

from datamulehub import datasets

datasets.download(
    "xmltables/345",
    filename="345.parquet",
)

Standardized Text

Requires a SEC Standardized Text subscription. Download a filing year:

from datamulehub import datasets

datasets.download(
    "standardized_text",
    year=2026,
    filename="standardized_text_2026.parquet",
)

Download a specific filing:

datasets.download(
    "standardized_text",
    accession=["0001104659-23-015159"],
    filename="filing_text.parquet",
)

year selects the filing year. from_storage="both" combines the yearly snapshot with recent per-filing outputs. Use "daily" for the snapshot only, or "delta" for recent outputs only.

Accession downloads use per-filing outputs; from_storage="daily" is unavailable for these downloads.

See SEC Standardized Text for examples and column descriptions.

Query

You can use SQL to download query results

query(sql, output_dir=None, from_storage="both")

You can also get query results

read_query(sql, from_storage="both")

Example

from datamulehub import databases

databases.query(
    """
    SELECT *
    FROM "13fhr"
    LIMIT 10
    """,
    output_dir="13fhr_sample",
)
from datamulehub import databases

results = databases.read_query(
    """
    SELECT *
    FROM "13fhr"
    LIMIT 10
    """,
)

print(results)