---
title: "Credit ratings"
method: GET
path: "/v1/stocks/{symbol}/credit-ratings"
tags: ["ownership"]
---

# Credit ratings

`GET /v1/stocks/{symbol}/credit-ratings`

## Request

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

Credit rating actions on the company's debt instruments (debentures, commercial paper, bank facilities) as disclosed by the company: agency, rating, action and outlook. Matched by company and by the issuer prefix of each instrument ISIN. Coverage from 2015, dense from 2025. Newest rating first. Updated daily.

## Path parameters

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

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

OK. Costs one request unit.

- object
  - `data` StockCreditRatingsItem[], required
    - `symbol` string, required: Stock symbol of the issuer.
    - `agency` string, nullable, required: Credit rating agency, e.g. "CRISIL Ratings Limited", "ICRA Limited", "CARE Ratings Limited".
    - `rating` string, nullable, required: Rating assigned, e.g. "CRISIL AAA", "[ICRA]A1+".
    - `rating_action` 'new' | 'upgrade' | 'downgrade' | 'reaffirm' | 'other', nullable, required: new, upgrade, downgrade, reaffirm or other.
    - `outlook` string, nullable, required: Outlook, e.g. "Stable", "Positive", "Negative".
    - `previous_rating` string, nullable, required: Rating before this action, as disclosed (may be from a different agency).
    - `instrument_isin` string, nullable, required: ISIN of the rated instrument (debenture, commercial paper, ...), when disclosed. Differs from the equity ISIN.
    - `rated_on` string, nullable, required: Date of the rating action (YYYY-MM-DD), null when not reported.
    - `disclosed_at` string, nullable, required: When the company disclosed the rating (ISO-8601 UTC).
  - `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)
