Option Exercise

Example context

import { createClientConfig, TradeClient } from '@tigeropenapi/tigeropen';

const config = createClientConfig();
const tradeClient = TradeClient.fromConfig(config, config.account, config.secretKey);

checkOptionExercise

Signature

async checkOptionExercise(req: OptionExerciseCheckRequest): Promise<OptionExerciseCheckResult | undefined>

Purpose

Performs check option exercise.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqOptionExerciseCheckRequestYesNoneNone.
req.accountstring | undefinedNoTradeClient account when omitted or emptyNone.
req.secretKeystring | undefinedNoNoneInstitution account secret key. Overrides the default set in ClientConfig; omit to use the config default.
req.contractIdnumberYesNoneOption contract ID
req.typestringYesNoneExercise | Expire
req.quantitynumber | undefinedYesNoneQuantity to check for exercise or expiration. The TypeScript type permits omission, but the server requires it
req.executingDatestring | undefinedNoNoneyyyy-MM-dd; Recommended for Exercise
req.isForceboolean | undefinedNoNoneRecommended for Exercise
req.itmRatenumber | undefinedNoNone0–10; Used only for Expire
req.langstring | undefinedNoNoneNone.

Returns

Promise<OptionExerciseCheckResult | undefined>

FieldTypeDescription
availableQuantitynumberAvailable quantity
positionnumberPosition quantity
stkPositionnumberStock position
stkPositionChangenumberStock position change
stkPositionBeforenumberStock position before exercise
stkPositionAfternumberStock position after exercise
symbolstringSymbol code

Type-checked example

const result = await tradeClient.checkOptionExercise({ contractId: 123, type: 'Exercise', quantity: 1 });
console.log(result);

Response example

{
  "availableQuantity": 0,
  "position": 0,
  "stkPosition": 0,
  "stkPositionChange": 0,
  "stkPositionBefore": 0,
  "stkPositionAfter": 0,
  "symbol": "string"
}

Rate limit: The base limit is 60 requests per minute.


getOptionExercisePositions

Signature

async getOptionExercisePositions(req: OptionExercisePositionRequest): Promise<OptionExercisePositionPageResult | undefined>

Purpose

Gets option exercise positions.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqOptionExercisePositionRequestYesNoneNone.
req.accountstring | undefinedNoTradeClient account when omitted or emptyNone.
req.secretKeystring | undefinedNoNoneInstitution account secret key. Overrides the default set in ClientConfig; omit to use the config default.
req.typestringYesNoneExercise | Expire
req.langstring | undefinedNoNoneNone.

Returns

Promise<OptionExercisePositionPageResult | undefined>

FieldTypeDescription
pageNumnumberPage number
pageSizenumberPage size
itemCountnumberItem count
pageCountnumberTotal pages
itemsOptionExercisePosition[] | undefinedExercise position items; the item type is not exported from the package root, so see the response example below for its shape

Type-checked example

const result = await tradeClient.getOptionExercisePositions({ type: 'Exercise' });
console.log(result);

Response example

{
  "pageNum": 0,
  "pageSize": 0,
  "itemCount": 0,
  "pageCount": 0,
  "items": [
    {
      "contractId": 0,
      "symbol": "string",
      "stkSymbol": "string",
      "expireDate": "string",
      "strike": "string",
      "callPut": "string",
      "market": "string",
      "accountId": 0,
      "position": 0,
      "availableQuantity": 0
    }
  ]
}

Rate limit: The base limit is 60 requests per minute.


submitOptionExercise

Signature

async submitOptionExercise(req: OptionExerciseSubmitRequest): Promise<boolean>

Purpose

Performs submit option exercise.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqOptionExerciseSubmitRequestYesNoneNone.
req.accountstring | undefinedNoTradeClient account when omitted or emptyNone.
req.secretKeystring | undefinedNoNoneInstitution account secret key. Overrides the default set in ClientConfig; omit to use the config default.
req.contractIdnumberYesNoneNone.
req.typestringYesNoneExercise | Expire
req.quantitynumberYesNoneNone.
req.executingDatestring | undefinedNoNoneRequired for Exercise; yyyy-MM-dd
req.isForceboolean | undefinedNoNoneRequired for Exercise
req.itmRatenumber | undefinedNoNone0–10; Used only for Expire
req.langstring | undefinedNoNoneNone.

Returns

Promise<boolean>

Type-checked example

const result = await tradeClient.submitOptionExercise({
  contractId: 123,
  type: 'Exercise',
  quantity: 1,
  executingDate: '2026-09-19',
  isForce: false,
});
console.log(result);

Response example

true

Rate limit: The base limit is 60 requests per minute.


getOptionExerciseRecords

Signature

async getOptionExerciseRecords(req: OptionExerciseRecordsRequest): Promise<OptionExerciseRecordPageResult | undefined>

Purpose

Gets option exercise records.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqOptionExerciseRecordsRequestYesNoneNone.
req.accountstring | undefinedNoTradeClient account when omitted or emptyNone.
req.secretKeystring | undefinedNoNoneInstitution account secret key. Overrides the default set in ClientConfig; omit to use the config default.
req.pagenumber | undefinedNoNoneStarts at 1; server default is 1
req.sizenumber | undefinedNoNone1–100; server default is 20
req.statusstring | undefinedNoNoneNew | Cancel | Success | Fail
req.typestring | undefinedNoNoneExercise | Expire
req.symbolstring | undefinedNoNoneNone.
req.orderBystring | undefinedNoNonesymbol | expire_date | strike | is_call
req.langstring | undefinedNoNoneNone.

Returns

Promise<OptionExerciseRecordPageResult | undefined>

FieldTypeDescription
pageNumnumberPage number
pageSizenumberPage size
itemCountnumberItem count
pageCountnumberTotal pages
itemsOptionExerciseRecord[] | undefinedExercise record items; the item type is not exported from the package root, so see the response example below for its shape

Type-checked example

const result = await tradeClient.getOptionExerciseRecords({ page: 1, size: 20, type: 'Exercise' });
console.log(result);

Response example

{
  "pageNum": 0,
  "pageSize": 0,
  "itemCount": 0,
  "pageCount": 0,
  "items": [
    {
      "id": 0,
      "contractId": 0,
      "symbol": "string",
      "stkSymbol": "string",
      "expireDate": "string",
      "strike": "string",
      "callPut": "string",
      "type": "string",
      "requestQuantity": 0,
      "quantity": 0,
      "status": "string",
      "executingDate": "string",
      "itmRate": 0,
      "isForce": true,
      "reason": "string",
      "accountId": 0
    }
  ]
}

Rate limit: The base limit is 60 requests per minute.


cancelOptionExercise

Signature

async cancelOptionExercise(req: OptionExerciseCancelRequest): Promise<boolean>

Purpose

Cancels option exercise.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqOptionExerciseCancelRequestYesNoneNone.
req.accountstring | undefinedNoTradeClient account when omitted or emptyNone.
req.secretKeystring | undefinedNoNoneInstitution account secret key. Overrides the default set in ClientConfig; omit to use the config default.
req.idnumberYesNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<boolean>

Type-checked example

const result = await tradeClient.cancelOptionExercise({ id: 1 });
console.log(result);

Response example

true

Rate limit: The base limit is 60 requests per minute.


Did this page help you?