---
title: "Tapetide Score"
method: GET
path: "/v1/stocks/{symbol}/score"
tags: ["scores"]
---

# Tapetide Score

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

## Request

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

The latest Tapetide Score for one stock with its six pillar sub-scores and weights, band, percentile within the run, governance caps and red flags, coverage and confidence. The band matters more than the exact number: the distribution is narrow (no stock has ever scored above 77) and a 1-3 point gap is within noise. A pillar of null means the data to score it is unavailable; it is not a zero. Decision-support only. The Tapetide Score is data analysis, not investment advice. Tapetide is not a SEBI-registered research analyst or investment adviser.

## Path parameters

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

## Response `200`

OK. Costs one request unit.

- object
  - `data` StockScore, required
    - `symbol` string, required: Stock symbol.
    - `score_date` string, required: Date of the run this score comes from (YYYY-MM-DD).
    - `status` 'scored' | 'insufficient_data', required: insufficient_data: too little numeric coverage to publish a score; `score` and `band` are then null.
    - `score` integer, nullable, required: Tapetide Score, 0-100; null when not publishable.
    - `band` 'strong' | 'good' | 'average' | 'weak' | 'poor', nullable, required: Coarse band: strong (66+), good (55-65), average (45-54), weak (37-44), poor (below 37).
    - `percentile` number, nullable, required: Share of eligible stocks in the same run scoring below this one (mid-rank), 0-100.
    - `universe` integer, nullable, required: Number of eligible stocks in that run (the percentile base).
    - `pillars` object, required: The six pillar sub-scores.
      - `quality` number, nullable, required: quality pillar, 0-100; null when unavailable.
      - `valuation` number, nullable, required: valuation pillar, 0-100; null when unavailable.
      - `growth` number, nullable, required: growth pillar, 0-100; null when unavailable.
      - `momentum` number, nullable, required: momentum pillar, 0-100; null when unavailable.
      - `financial_health` number, nullable, required: financial health pillar, 0-100; null when unavailable.
      - `ownership` number, nullable, required: ownership pillar, 0-100; null when unavailable.
    - `pillar_weights` object, required: Weight of each pillar in the composite, percent.
      - `quality` number, nullable, required: quality pillar, 0-100; null when unavailable.
      - `valuation` number, nullable, required: valuation pillar, 0-100; null when unavailable.
      - `growth` number, nullable, required: growth pillar, 0-100; null when unavailable.
      - `momentum` number, nullable, required: momentum pillar, 0-100; null when unavailable.
      - `financial_health` number, nullable, required: financial health pillar, 0-100; null when unavailable.
      - `ownership` number, nullable, required: ownership pillar, 0-100; null when unavailable.
    - `governance_multiplier` number, nullable, required: Multiplier applied for governance red flags (1 = none).
    - `caps` object[], required: Score caps applied by the governance overlay.
      - `rule` string, required: Governance rule that capped the score, e.g. surveillance:GSM, pledge>75%.
      - `cap` number, required: Maximum score allowed under the rule.
    - `red_flags` string[], required: Governance flags observed: `surveillance:{measure}`, `pledge:{pct}%`, `insider_selling`, `credit_downgrade`.
    - `coverage_pct` integer, required: Share of the required inputs that were available, percent.
    - `confidence` integer, required: Data confidence, 0-100.
  - `meta` SingleMeta, required
    - `as_of` string, date-time, required
    - `route` string, required

## 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)
