---
title: "Exchange filings"
method: GET
path: "/v1/stocks/{symbol}/filings"
tags: ["filings"]
---

# Exchange filings

`GET /v1/stocks/{symbol}/filings`

## Request

- Base URL: `https://api.tapetide.com`
- URL: `https://api.tapetide.com/v1/stocks/{symbol}/filings`
- Auth: HTTP bearer

Regulatory announcements one company filed with the exchange from 2020 onward: results, board-meeting outcomes, earnings-call notices, orders, management changes, press releases and more, each with a typed `category` and the public PDF link. Updated through the trading day. Newest first; filter by `category`, `from`, `to`.

## Path parameters

- `symbol` string, required: Stock symbol, e.g. "RELIANCE". Percent-encode "&" (M%26M).

## Query parameters

- `category` 'financial_results' | 'board_meeting' | 'shareholder_meeting' | 'earnings_call' | 'investor_presentation' | 'press_release' | 'annual_report' | 'credit_rating' | 'dividend' | 'corporate_action' | 'capital_raise' | 'acquisition' | 'orders_contracts' | 'management_change' | 'insider_takeover' | 'trading_window' | 'insolvency' | 'compliance' | 'newspaper_publication' | 'clarification' | 'other'
- `from` string
- `to` string
- `limit` integer
- `cursor` string

## Response `200`

OK. Costs one request unit.

- object
  - `data` StockFilingsItem[], required
    - `filing_id` integer, required: Stable identifier of this announcement.
    - `symbol` string, required: Stock symbol.
    - `filed_at` string, required: Date the exchange received the announcement (YYYY-MM-DD).
    - `category` 'financial_results' | 'board_meeting' | 'shareholder_meeting' | 'earnings_call' | 'investor_presentation' | 'press_release' | 'annual_report' | 'credit_rating' | 'dividend' | 'corporate_action' | 'capital_raise' | 'acquisition' | 'orders_contracts' | 'management_change' | 'insider_takeover' | 'trading_window' | 'insolvency' | 'compliance' | 'newspaper_publication' | 'clarification' | 'other', required: Typed category derived from the exchange subject and title; `other` when no rule matches.
    - `subject` string, nullable, required: Exchange subject line, e.g. "Outcome of Board Meeting". Null when the exchange filed it under a generic heading.
    - `title` string, nullable, required: Announcement title as filed.
    - `description` string, nullable, required: Exchange-provided description of the announcement, when one was published.
    - `document_url` string, nullable, required: Public URL of the filed PDF on the exchange or issuer site. Null when the exchange published no attachment.
    - `document_id` integer, nullable, required: Identifier usable with `/v1/stocks/{symbol}/documents/summary` and `/documents/read` when this filing's PDF has been parsed to text; otherwise null.
  - `meta` ListMeta, required
    - `as_of` string, date-time, required: When this response was assembled (UTC).
    - `route` string, required: operationId that served the request.
    - `count` integer, required: Items in this page.
    - `limit` integer, required: Page size applied.
    - `has_more` boolean, required: Whether another page exists.
    - `next_cursor` string, nullable, required: Pass as `cursor` to fetch the next page; null on the last page.
  - `links` Links, required
    - `next` string, nullable: Relative URL of the next page, or null.

## Other responses

- `400`: Malformed or out-of-range parameter. Not charged.
- `401`: Missing or invalid bearer token.
- `404`: The requested resource does not exist. Not charged.
- `429`: Per-minute burst cap (`rate_limited`) or plan quota (`quota_exhausted`) reached.
- `500`: Unexpected server error. Not charged.
- `502`: A data dependency was unavailable. Not charged.
- `503`: Authentication or quota service temporarily unavailable (`service_unavailable`). Not charged; retry after `Retry-After` seconds.

---

[API](https://skmtc.dev/tapetide/apis/tapetide-api.md) · [All operations](https://skmtc.dev/tapetide/apis/tapetide-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tapetide/apis/tapetide-api/revisions/261ec086bde5?raw)
