GET /companies/{id}/next-annual-report/ endpoint.
start_date and end_date, a confidence score (0-100), and an is_overdue boolean to immediately flag companies that have missed their expected reporting cycle.GET /isins/ endpoint to resolve International Securities Identification Numbers to legal entities.
codes parameter for comma-separated bulk resolution (e.g., ?codes=US0378331005,DE000A1EWWW0). This allows clients to resolve an entire portfolio to Company IDs in a single HTTP request.company object (containing id, name, ticker, and country_code). This "Hybrid" design prevents the "N+1 query" problem, giving users immediate context without requiring secondary API calls.search parameter for fuzzy matching, enabling autocomplete experiences (e.g., searching "US03...").GET /filings/ endpoint now accepts a company_isin filter, allowing users to fetch regulatory documents directly using a security identifier.GET /companies/ endpoint now supports an isin filter for exact entity lookups (case-insensitive).GET /webhooks/{id}/deliveries/ endpoint.
status (success/failed), response_status_code (e.g., 200, 404, 500), and duration_ms for every event, allowing for automated health monitoring of your integration.secret_key field has been removed from the standard GET /webhooks/ and GET /webhooks/{id}/ responses.
POST /webhooks/) or regeneration (POST /webhooks/{id}/regenerate-secret/).POST /webhooks/{id}/test/ API endpoint now utilizes the exact same execution pipeline as the Dashboard's "Send Test Event" button.
WebhookDelivery record, ensuring that automated integration tests leave a visible trace in your delivery logs for debugging.GET /filings/ endpoint now supports precise filtering by the standardized FRCF categories.
category (e.g., ?category=1) for targeted queries.categories (e.g., ?categories=1,3,9) for multi-category data ingestion workflows (e.g., fetching both "M&A" and "Financial Reporting" simultaneously).GET /filing-categories/ endpoint.document_url field to both the filing list (GET /filings/) and detail (GET /filings/{id}/) responses.
filing.received and filing.processed) are now strictly isolated from heavy data processing tasks. This ensures near-instant delivery times (<500ms), even when the system is processing large queues of complex Annual Reports.trigger_on_filing_received option. This event fires milliseconds after ingestion, providing immediate awareness of a filing's existence (e.g., for headline trading) before analysis is complete.
null.trigger_on_filing_processed. This event fires only after deep analysis, classification, and markdown conversion are complete, guaranteeing rich metadata.Webhook object and POST /webhooks/ endpoints to support the new event triggers.
trigger_on_filing_received=False, trigger_on_filing_processed=True), ensuring no disruption to current integrations.filing_type, language) and markdown_content as nullable, accurately reflecting the data contract for "Fast Lane" events.500 Internal Server Error instead of a graceful 429 Too Many Requests.
retry_after_seconds field, allowing for proper exponential backoff.X-RateLimit tracking headers were occasionally omitted from responses (returning N/A) due to Nginx URL rewriting.
next and previous cursor URLs in all paginated API responses.
/api/api/...) due to upstream routing strictness. These URLs now correctly resolve to the root resource (https://api.financialreports.eu/filings/...).Configuration or ApiClient objects manually. A single FinancialReports(api_key="...") class now handles everything.client.filings.list()) are now standard, replacing the verbose generated names (e.g., filings_api.filings_list()).async/await syntax with proper context manager (async with ...) support for high-performance concurrent requests.X-RateLimit-Monthly-Limit, X-RateLimit-Monthly-Remaining, X-RateLimit-Burst-Limit) to help clients monitor their consumption in real-time./filings/ and /companies/ endpoints, replacing expensive full-table scans with efficient index-only scans where possible.count field in paginated responses is now capped at 10,000 for broad, unfiltered queries.next link, but total record counts for massive result sets are now instantaneous estimates rather than expensive precise counts.GET /filings/ endpoint would timeout (504 Gateway Timeout) when filtering by broad historical ranges or complex criteria. These queries now execute in under 500ms.GET /filings/ and GET /filings/{id}/ endpoints now expose two new high-value fields:
file_extension (e.g., "PDF", "HTML")file_size (in bytes)GET /filings/ endpoint has been upgraded with precision filtering capabilities for institutional workflows:
extensions parameter accepts single or comma-separated values (e.g., ?extensions=PDF,XBRL) to filter results by file type (case-insensitive).file_size_min and file_size_max parameters allow users to filter out empty placeholders or cap downloads based on file size (e.g., ?file_size_min=1024).GET /filings/ endpoint now exposes a processing_status field for every item in the list.
COMPLETED) versus those that are still PENDING or FAILED, eliminating the need to query individual detail endpoints to check for availability.track_all_companies configuration for webhook subscriptions.
filing.processed events for every company in the database, bypassing the need to add companies to a personal watchlist.POST /webhooks/ and PUT /webhooks/{id}/ now accept a track_all_companies boolean parameter to enable this mode./webhooks/) now includes distinct visual badges to differentiate between standard "Watchlist" alerts and "Global Firehose" subscriptions, providing immediate clarity on the notification scope.country_code field is now strictly mandatory. The API schema has been updated from string | null to string, guaranteeing a valid ISO 3166-1 alpha-2 code for every active company profile.GET /filing-categories/ endpoint.
GET /filing-types/ endpoint has been significantly enhanced to support the new classification structure.
category object (containing id, name, and sort_order). This is an additive, backwards-compatible change that provides immediate context without requiring additional API calls.category query parameter (e.g., ?category=1) to filter publication types by their broader disclosure category.search query parameter (e.g., ?search=Annual) to perform case-insensitive searches against filing type codes and names.markdown_url and document fields could generate incorrect paths when accessed via specific proxy configurations. These fields now strictly enforce absolute URLs (e.g., https://api.financialreports.eu/...), ensuring consistent reachability regardless of the client's network route.text/markdown) instead of a JSON-wrapped string.
Content-Disposition header to the response to support proper file naming (e.g., filing_12345.md) when saving the output.GET /filings/ endpoint now supports a new types query parameter.
?types=10-K,10-Q,10-Q).GET /webhooks/: List all configured webhooks.POST /webhooks/: Create a new webhook subscription.GET /webhooks/{id}/: Retrieve a specific webhook.PUT /webhooks/{id}/: Update a specific webhook.PATCH /webhooks/{id}/: Partially update a specific webhook.DELETE /webhooks/{id}/: Delete a webhook.POST /webhooks/{id}/regenerate-secret/: Invalidates the old secret and generates a new one for verifying payload signatures.POST /webhooks/{id}/test/: Sends a sample filing.processed.test event to the configured URL to help debug and validate the client's endpoint.POST /webhooks/ endpoint now enforces strict validation for the url field, including requiring HTTPS and performing DNS resolution to prevent SSRF (Server-Side Request Forgery) attacks against internal or reserved IP addresses.filing.processed event. This provides a clear data contract for the payload that will be sent to a user's endpoint, detailing the company and filing objects.type: ["string", "null"]) rather than the legacy nullable: true flag. This provides a more precise contract for data consumers.GET /filings/ endpoint now supports a new sources query parameter.?sources=38,40,51), allowing clients to efficiently query for filings from multiple sources in a single API call.GET /filings/ and GET /companies/ endpoints now support sorting by id (e.g., ?ordering=id or ?ordering=-id). This provides a consistent, incrementing key for more reliable pagination.ordering and source parameters on these endpoints has been updated to be more explicit and descriptive.id field.source, language, and filing_type objects returned by all endpoints (e.g., GET /filings/, GET /sources/) will now include their id.source object in a filing response will now appear as {"id": 38, "name": "Unternehmensregister", ...}.GET /sources/{id}/).on_watchlist query parameter to both the GET /filings/ and GET /companies/ list endpoints.?on_watchlist=true: Returns only items from companies on the user's watchlist.?on_watchlist=false: Returns only items from companies not on the user's watchlist.GET /companies/{id}/ and GET /companies/?view=full, has been updated to include additional data fields.description, description_last_updated, logoaddress, city, zip_codelocal_company_idshares_outstandingdesignated_sponsor, listed_stock_exchange, stock_indextagline field has been added to the Company object. This short, one-liner description is now available in both the summary and full views for the GET /companies/ and GET /companies/{id}/ endpoints, as well as in the nested company data within filing responses.GET /filings/ endpoint now supports a view=full query parameter. This allows clients to retrieve the complete filing object for each item in the list, providing more detail in a single request.updated_date_from and updated_date_to query parameters are now correctly implemented and documented for the GET /filings/ endpoint. This resolves a discrepancy from the 2025-08-12 changelog and enables proper data synchronization based on the last modified date.GET /companies/ endpoint now supports a view=full query parameter. This allows users to retrieve the complete company object for each item in the list, restoring access to detailed fields in response to user feedback.isins field on the Company object was not appearing in the API documentation for the /companies list and detail endpoints. This has been corrected, and the schema now accurately reflects that isins is an array of strings./filings/ and /companies/ now return a simplified "summary" response. This significantly reduces payload size and improves response times for list-based queries. The full object details remain available via the detail endpoints (e.g., /filings/{id}/).markdown_url field in the /filings/{id}/ response now links directly to a nested endpoint (/filings/{filing_id}/markdown/), logically connecting the content to its parent filing.GET /countries/: Returns a list of all supported countries and their ISO codes.GET /languages/: Returns a list of all supported filing languages.GET /filings/ endpoint to allow filtering by modification date, useful for data synchronization:
updated_date_fromupdated_date_toGET /processed-filings/{id}/ endpoint has been removed in favor of the new nested markdown content endpoint for better API design and performance.