---
title: "F&O ban list derived from position limits"
method: GET
path: "/v1/derivatives/ban-list"
tags: ["derivatives"]
---

# F&O ban list derived from position limits

`GET /v1/derivatives/ban-list`

## Request

- Base URL: `https://api.tapetide.com`
- URL: `https://api.tapetide.com/v1/derivatives/ban-list`
- Auth: HTTP bearer

Stocks barred from fresh F&O positions on one session, derived from the previous session's market-wide position-limit figures (a stock enters the ban period when future-equivalent OI exceeds 95% of its limit and leaves below 80%). History from 2010-02-02. `date` is the session the ban applies to and defaults to the next session after the latest published figures. Differs from /v1/market/fno-ban, which serves the exchange's published list with its own entry/exit dates; this one is reconstructed day by day from the limits and fills gaps in that history.

## Query parameters

- `date` string
- `limit` integer
- `cursor` string

## Response `200`

OK. Costs one request unit.

- object
  - `data` DerivativeBanListItem[], required
    - `session` string, required: Trading session on which fresh positions are barred (YYYY-MM-DD).
    - `symbol` string, required: Underlying stock symbol.
    - `isin` string, nullable, required: ISIN of the underlying stock.
    - `utilisation_pct` number, nullable, required: Future-equivalent open interest as a percent of the market-wide limit at the previous session's close. From 2025-10-01; null earlier.
    - `determined_on` string, required: Session whose end-of-day open interest put the stock in the ban period (YYYY-MM-DD).
  - `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)
