---
title: "FPI daily derivatives activity"
method: GET
path: "/v1/market/fpi-flows/derivatives"
tags: ["market"]
---

# FPI daily derivatives activity

`GET /v1/market/fpi-flows/derivatives`

## Request

- Base URL: `https://api.tapetide.com`
- URL: `https://api.tapetide.com/v1/market/fpi-flows/derivatives`
- Auth: HTTP bearer

Daily FPI activity in exchange-traded derivatives by product: contracts and value bought and sold, and end-of-day open interest. Index, stock and interest-rate products from September 2003; currency and commodity products from September 2024. Defaults to the last 30 days. Pages by (date, product).

## Query parameters

- `product` 'index_futures' | 'index_options' | 'stock_futures' | 'stock_options' | 'interest_rate_futures' | 'currency_futures' | 'currency_options' | 'commodity_futures' | 'commodity_options'
- `from` string
- `to` string
- `order` 'asc' | 'desc'
- `limit` integer
- `cursor` string

## Response `200`

OK. Costs one request unit.

- object
  - `data` FpiDerivativesItem[], required
    - `date` string, required: Reporting date (YYYY-MM-DD).
    - `product` 'index_futures' | 'index_options' | 'stock_futures' | 'stock_options' | 'interest_rate_futures' | 'currency_futures' | 'currency_options' | 'commodity_futures' | 'commodity_options', required: Derivative product. Index, stock and interest-rate products from Sep 2003; currency and commodity products from Sep 2024.
    - `buy_contracts` number, nullable, required: Contracts bought by FPIs during the day.
    - `buy_value_cr` number, nullable, required: Value bought, INR crore.
    - `sell_contracts` number, nullable, required: Contracts sold by FPIs during the day.
    - `sell_value_cr` number, nullable, required: Value sold, INR crore.
    - `open_interest_contracts` number, nullable, required: FPI open interest at end of day, contracts.
    - `open_interest_value_cr` number, nullable, required: FPI open interest at end of day, INR crore.
  - `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)
