FinancialReports
    • FinancialReports API Documentation
    • Changelog
    • Python SDK
    • S3 Bulk Delivery
    • Companies
      • List Companies
        GET
      • Retrieve Company Details
        GET
      • Retrieve Company Financials
        GET
      • Predict Next Annual Report
        GET
    • Filings
      • List Filings
        GET
      • Retrieve Filing Details
        GET
      • Retrieve Filing History (Audit Trail)
        GET
      • Retrieve Filing Markdown
        GET
    • Filing Types
      • The Financial Reporting Classification Framework (FRCF)
      • List Filing Types
        GET
      • Retrieve Filing Type
        GET
    • Filing Categories
      • List Filing Categories
        GET
      • Retrieve Filing Category
        GET
    • Languages
      • Understanding Language Codes
      • List Languages
        GET
      • Retrieve Language
        GET
    • ISIC Classifications
      • Understanding ISIC Classification
      • List ISIC Classes
        GET
      • Retrieve ISIC Class
        GET
      • List ISIC Divisions
        GET
      • Retrieve ISIC Division
        GET
      • List ISIC Groups
        GET
      • Retrieve ISIC Group
        GET
      • List ISIC Sections
        GET
      • Retrieve ISIC Section
        GET
    • Countries
      • Understanding Country Codes
      • List Countries
      • Retrieve Country
    • Sources
      • Understanding Data Sources
      • List Data Sources
      • Retrieve Data Source
    • Watchlist
      • Get User's Watchlist
      • Add Company to Watchlist
      • Remove Company from Watchlist
      • Bulk Add Companies to Watchlist
      • Bulk Remove Companies from Watchlist
    • Webhooks (Management)
      • List Webhooks
      • Create Webhook
      • Retrieve Webhook
      • Update Webhook
      • Partial Update Webhook
      • Delete Webhook
      • List Delivery Logs
      • Retrieve Delivery Detail
      • Replay Delivery
      • Regenerate Secret Key
      • Test Webhook
      • Filing Processed Event
      • Filing Received Event
    • ISINs
      • List ISINs
      • Retrieve ISIN
    • Financial Data
      • List Line Item Definitions
      • Retrieve Line Item Definition
    • Schemas
      • Company
      • Language
      • Filing
      • Source
      • BulkWatchlist
      • BulkWatchlistResponse
      • CompanyMinimal
      • Country
      • ErrorDetail
      • CompanyFinancialStatement
      • DesignatedSponsor
      • FilingType
      • FilingSummary
      • ISICClass
      • FilingCategory
      • ISICDivision
      • CurrencyCompact
      • FilingProcessedPayload
      • ISICGroup
      • FilingHistory
      • EntityLegalForm
      • ISICSection
      • PaginatedFilingTypeList
      • PaginatedCompanyMinimalList
      • PaginatedFilingSummaryList
      • PaginatedCountryList
      • PaginatedISICClassList
      • ListedStockExchange
      • PaginatedISICDivisionList
      • ISIN
      • PaginatedSourceList
      • PaginatedISICGroupList
      • FiscalPeriodEnum
      • PaginatedISICSectionList
      • FinancialLineItemCompact
      • NextAnnualReport
      • PaginatedFilingCategoryList
      • PaginatedLanguageList
      • WatchlistAction
      • WatchlistCompany
      • Jurisdiction
      • PaginatedFilingHistoryList
      • WatchlistResponse
      • LineItemDefinition
      • PaginatedWebhookList
      • PaginatedISINList
      • NullEnum
      • PatchedWebhook
      • PaginatedWebhookDeliveryList
      • StockIndex
      • ProcessingStatusEnum
      • PaginatedCompanyFinancialStatementList
      • StatusEnum
      • Webhook
      • WebhookCompanyPayload
      • WebhookFilingPayload
      • WebhookDelivery
      • WebhookSecret
      • PaginatedLineItemDefinitionList
      • StatementTypeEnum
      • WebhookDeliveryDetail

    S3 Bulk Delivery

    For enterprise clients who need programmatic access to the full FinancialReports catalog — raw filings, processed markdown, rendered HTML, and a queryable parquet index — we offer direct S3 read access via cross-account IAM role grants.
    This is the recommended integration path for RAG pipelines, backtesting engines, data lakes, and any workflow that needs to pull filings at scale without paginating through the REST API.

    Getting Started#

    Prerequisites#

    An active Enterprise contract with FinancialReports
    An AWS account with an IAM role your team will use to access the bucket

    Setup#

    1.
    Create an IAM role in your AWS account that your applications will assume.
    2.
    Send the role ARN to your FinancialReports account manager. Format:
    arn:aws:iam::<account-id>:role/<role-name>
    3.
    We attach a read-only grant scoped to the data prefixes listed below. You'll receive a confirmation email once access is live.
    4.
    Configure your S3 client to access the bucket in eu-central-1:
    Bucket:  financialreports-bucket
    Region:  eu-central-1
    No API keys or signed URLs are involved — access is controlled entirely via your IAM role and our bucket policy.

    Bucket Layout#

    s3://financialreports-bucket/
    ├── financialreports/media/filings/          Raw filing documents (PDF, HTML, ZIP, XBRL)
    ├── processed/markdown/{shard}/{id}.md       Processed markdown (one file per filing)
    ├── processed/html/{shard}/{id}.html         Pre-rendered HTML (one file per filing)
    └── manifests/                               Parquet catalog (your entry point)
        ├── README.md
        ├── schema.json
        ├── filings/year=YYYY/part-00000.parquet
        ├── incremental/YYYY-MM-DD.parquet
        ├── companies.parquet
        └── reference/
            ├── sources.parquet
            ├── filing_types.parquet
            ├── filing_categories.parquet
            └── languages.parquet

    Parquet Catalog#

    The manifests/ prefix is the queryable index of the entire platform. Start here — use it to discover filings, then pull the raw or processed content you need via the S3 keys in each row.

    Filings Table#

    Path: manifests/filings/year=YYYY/part-00000.parquet
    Hive-partitioned by the filing's release year. One row per filing. This is the primary fact table.
    ColumnTypeDescription
    filing_idint64Unique filing identifier
    company_idint64FinancialReports company ID (join to companies.parquet)
    company_namestringLegal name of the company
    company_taglinestringShort company description
    tickerstringPrimary stock ticker
    is_listedboolWhether the company is currently listed
    main_stock_exchangestringPrimary exchange URL
    leistringLegal Entity Identifier (20-char)
    country_codestringISO 3166-1 alpha-2 country code
    sector_codestringISIC Section code
    industry_group_codestringISIC Division code
    industry_codestringISIC Group code
    sub_industry_codestringISIC Class code
    filing_type_idint64Filing type ID (join to filing_types.parquet)
    filing_type_codestringShort code (e.g. 10-K, AR, RNS)
    filing_type_namestringFull name (e.g. Annual Report)
    filing_categorystringTop-level disclosure category
    source_idint64Regulatory source ID (join to sources.parquet)
    source_namestringRegulatory source name (e.g. SEC, BaFin)
    language_idint64Language ID (join to languages.parquet)
    language_codestringISO 639-1 language code
    titlestringFiling title (if available)
    fiscal_yearint16Fiscal year the filing covers
    fiscal_periodstringPeriod: FY, Q1, Q2, Q3, Q4, H1, H2, 9M
    period_ending_datedateEnd date of the reported period
    release_datetimetimestamp (UTC)When the filing was published by the source
    dissemination_datetimetimestamp (UTC)When the filing was disseminated to the public
    added_to_platformtimestamp (UTC)When FinancialReports ingested the filing
    updated_datetimestamp (UTC)Last modification timestamp
    file_extensionstringOriginal file format (PDF, HTML, ZIP, etc.)
    file_sizeint64File size in bytes
    processing_statusstringCOMPLETED, PENDING, FAILED, SKIPPED
    filing_type_confidencefloat64AI classification confidence (0.0–1.0)
    language_confidencefloat64Language detection confidence (0.0–1.0)
    raw_document_s3_keystringS3 key for the original document
    markdown_s3_keystringS3 key for the processed markdown
    html_s3_keystringS3 key for the pre-rendered HTML
    To look up ISINs for a filing's company, join to companies.parquet via company_id.

    Incremental Files#

    Path: manifests/incremental/YYYY-MM-DD.parquet
    Same schema as the filings table. Contains every filing that was added or updated on that UTC day. Rolling 30-day window — files older than 30 days are automatically pruned.
    Use these if your pipeline runs more frequently than daily and you want to avoid re-reading full year partitions.

    Companies Table#

    Path: manifests/companies.parquet
    One row per company. Full company profiles including identifiers, classification, and metadata.
    ColumnTypeDescription
    company_idint64Unique company identifier
    namestringLegal name
    slugstringURL-safe identifier
    taglinestringShort description
    tickerstringPrimary stock ticker
    is_listedboolCurrently listed
    main_stock_exchangestringPrimary exchange URL
    leistringLegal Entity Identifier
    isinslist<string>All ISINs associated with the company
    country_codestringISO 3166-1 alpha-2
    sector_codestringISIC Section
    industry_group_codestringISIC Division
    industry_codestringISIC Group
    sub_industry_codestringISIC Class
    homepage_linkstringCompany website
    ir_linkstringInvestor relations page
    headcountint64Number of employees
    shares_outstandingint64Total shares outstanding
    date_ipodateIPO date
    date_publicdateDate public on FinancialReports
    year_foundeddateFounding date
    legal_statusstringACTIVE, INACTIVE, MERGED, etc.

    Reference Tables#

    Small lookup tables for joining and filtering.
    FileRowsKey columns
    reference/sources.parquet~43id, name, url, description
    reference/filing_types.parquet~38id, code, name, category_name
    reference/filing_categories.parquet~11id, name
    reference/languages.parquet~186id, code, name, alpha3_code

    Schema Metadata#

    Path: manifests/schema.json
    Machine-readable column definitions for all tables. Includes manifest_version for tracking breaking changes.

    Refresh Cadence#

    The parquet catalog is regenerated nightly at approximately 04:15 CET (02:15 UTC).
    The current year partition is fully rewritten each night.
    Historical year partitions are immutable snapshots (rewritten only when corrections or reprocessing occur).
    Incremental files for the previous day and current day are written each night.
    Companies and reference tables are refreshed nightly.
    New filings typically appear in the parquet catalog within 24 hours of ingestion. For lower latency, use our Webhooks or REST API.

    Example Queries#

    All examples use DuckDB, which reads parquet directly from S3. Athena, Spark, Pandas, and Polars work equivalently.

    Configure S3 access (DuckDB)#

    All filings from 2025#

    German annual reports with partition pruning#

    Filings updated in the last 24 hours#

    Filings updated in the last 30 days#

    Join filings to company profiles#

    Filter filings by ISIN#

    Count filings by country and year#

    Download a specific filing's markdown#

    Once you've identified a filing via the parquet catalog, pull its content directly:
    Or in Python:

    S3 Key Construction#

    The raw_document_s3_key, markdown_s3_key, and html_s3_key columns in the filings parquet are paths relative to the bucket root. To access a file:
    s3://financialreports-bucket/{key_from_parquet}
    Markdown and HTML keys follow a sharded layout:
    processed/markdown/{filing_id // 10000}/{filing_id}.md
    processed/html/{filing_id // 10000}/{filing_id}.html
    The shard prefix keeps any single S3 prefix under ~10K objects for fast listing.

    Versioning#

    The manifest_version field is embedded in each parquet file's metadata and in schema.json. The current version is 1.1.

    Changelog#

    1.1 — Removed isins column from filings parquet. ISINs are available in companies.parquet and should be joined via company_id. This eliminates redundant data for companies with large numbers of ISINs (e.g. structured product issuers).
    1.0 — Initial release.
    Breaking changes (column removal, type changes) will bump the version number. Additive changes (new columns) will bump the minor version. We will notify you before any breaking change.

    Limitations#

    S3 bulk delivery provides the full catalog. Per-country or per-source filtering is not applied at the S3 level — use the parquet columns to filter client-side.
    Markdown and HTML content is not embedded in the parquet files. The parquet contains S3 keys that point to the content files. Pull them separately as needed.
    To filter filings by ISIN, join to companies.parquet via company_id and use list_contains(c.isins, 'YOUR_ISIN').

    Support#

    Technical questions: api@financialreports.eu
    Account and billing: sales@financialreports.eu
    Modified at 2026-04-20 07:06:06
    Previous
    Python SDK
    Next
    List Companies
    Built with