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

# Company news

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

## Request

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

News articles about one company. Coverage starts June 2025; updated continuously. Newest first. Each item carries a sentiment label, a topic `category` and the related stock symbols.

## Path parameters

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

## Query parameters

- `category` 'companies' | 'results' | 'markets' | 'economy' | 'policy' | 'global' | 'ipo' | 'commodities' | 'currencies' | 'crypto' | 'banking' | 'technology' | 'real_estate' | 'infrastructure' | 'funds' | 'personal_finance' | 'investment_ideas' | 'debt' | 'startups'
- `sentiment` 'positive' | 'negative' | 'neutral' | 'mixed'
- `from` string
- `to` string
- `limit` integer
- `cursor` string

## Response `200`

OK. Costs one request unit.

- object
  - `data` StockNewsItem[], required
    - `article_id` integer, required: Stable identifier of this article.
    - `published_at` string, required: Publication time (ISO-8601, UTC).
    - `headline` string, required: Article headline.
    - `summary` string, nullable, required: One-paragraph summary. Null when none is publishable.
    - `sentiment` 'positive' | 'negative' | 'neutral' | 'mixed', nullable, required: Sentiment classification of the article for the related companies; null when not classified.
    - `category` 'companies' | 'results' | 'markets' | 'economy' | 'policy' | 'global' | 'ipo' | 'commodities' | 'currencies' | 'crypto' | 'banking' | 'technology' | 'real_estate' | 'infrastructure' | 'funds' | 'personal_finance' | 'investment_ideas' | 'debt' | 'startups' | 'other', required: Topic category.
    - `symbols` string[], required: Listed companies the article is about (stock symbols). Empty for macro or market-wide pieces.
    - `url` string, nullable, required: Publisher's article URL when the publisher is a news organisation; null otherwise.
    - `related_filing` object, nullable, required: The exchange announcement this article reports, when it is one company's filing and exactly one announcement matches: same company, received from 60 minutes before to 2 minutes after publication (exchange and publisher clocks differ slightly). The same filing made on both NSE and BSE within 10 minutes counts as one match. Null otherwise.
      - `document_url` string, required: Public URL of the filed document on the exchange site.
      - `filed_at` string, required: Time the exchange received the announcement (ISO-8601, UTC).
      - `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 filing category, same values as `/v1/stocks/{symbol}/filings`.
  - `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)
