---
title: "Search stocks"
method: GET
path: "/v1/stocks"
tags: ["stocks"]
---

# Search stocks

`GET /v1/stocks`

## Request

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

Search ~8,200 Indian stocks by name, symbol, BSE code or ISIN. Common brand names and post-rename aliases match too (Zomato finds ETERNAL, Infosys finds INFY), and queries of 4 or more characters tolerate typos. Listed companies rank first, then by match quality (exact symbol or code, prefix, word, contains), with larger companies first within each tier. Delisted companies are included after listed ones. Use the returned `symbol` with the per-stock routes.

## Query parameters

- `q` string, required
- `sector` string
- `industry` string
- `limit` integer

## Response `200`

OK. Costs one request unit.

- Envelope
  - `data` unknown, required
  - `meta` object, required: Paging and window information where the route pages (e.g. `window.next_cursor` on price history).
    - `as_of` string, date-time: When this response was assembled (UTC).
    - `route` string: The operationId that served it.

## Other responses

- `400`: Malformed or out-of-range parameter. Not charged.
- `401`: Missing or invalid bearer token.
- `404`: The symbol, index or document does not exist. Not charged.
- `429`: Per-minute burst cap (`rate_limited`) or plan quota (`quota_exhausted`) reached.
- `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)
