Skip to content

futures.position

Public methods exposed through client.futures.position.

change_leverage

Changes leverage either for an existing position or for a symbol/open-type/side when no position exists.

Parameters:

Name Type Description Default
body ChangeLeverageRequest

Request body.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
ChangeLeverageResponse

The validated endpoint response.

References
Source code in pkg/src/mexc/futures/position/change_leverage.py
async def change_leverage(
  self,
  body: ChangeLeverageRequest,
  *,
  validate: bool | None = None
) -> ChangeLeverageResponse:
  """Changes leverage either for an existing position or for a symbol/open-type/side when no position exists.

  Args:
    body: Request body.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [MEXC API docs](https://mexcdevelop.github.io/apidocs/contract_v1_en/#switch-leverage)
  """
  params = {}
  r = await self.signed_post('/api/v1/private/position/change_leverage', json=body)
  return self.envelope_output(r.text, adapter, validate)

change_margin

Increases or decreases margin on an existing futures position.

Parameters:

Name Type Description Default
body ChangeMarginRequest

Request body.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
ChangeMarginResponse

The validated endpoint response.

References
Source code in pkg/src/mexc/futures/position/change_margin.py
async def change_margin(
  self,
  body: ChangeMarginRequest,
  *,
  validate: bool | None = None
) -> ChangeMarginResponse:
  """Increases or decreases margin on an existing futures position.

  Args:
    body: Request body.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [MEXC API docs](https://mexcdevelop.github.io/apidocs/contract_v1_en/#increase-or-decrease-margin)
  """
  params = {}
  r = await self.signed_post('/api/v1/private/position/change_margin', json=body)
  return self.envelope_output(r.text, adapter, validate)

change_position_mode

Switches the account position mode between hedge and one-way mode when no active orders, plan orders, or unfinished positions block the change.

Parameters:

Name Type Description Default
body ChangePositionModeRequest

Request body.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
ChangePositionModeResponse

The validated endpoint response.

References
Source code in pkg/src/mexc/futures/position/change_position_mode.py
async def change_position_mode(
  self,
  body: ChangePositionModeRequest,
  *,
  validate: bool | None = None
) -> ChangePositionModeResponse:
  """Switches the account position mode between hedge and one-way mode when no active orders, plan orders, or unfinished positions block the change.

  Args:
    body: Request body.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [MEXC API docs](https://mexcdevelop.github.io/apidocs/contract_v1_en/#change-position-mode)
  """
  params = {}
  r = await self.signed_post('/api/v1/private/position/change_position_mode', json=body)
  return self.envelope_output(r.text, adapter, validate)

change_risk_level

Disabled risk-level switch endpoint documented by MEXC; calls return error code 8817 according to the official docs.

Parameters:

Name Type Description Default
body ChangeRiskLevelRequest

Request body.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
ChangeRiskLevelResponse

The validated endpoint response.

References
Source code in pkg/src/mexc/futures/position/change_risk_level.py
async def change_risk_level(
  self,
  body: ChangeRiskLevelRequest,
  *,
  validate: bool | None = None
) -> ChangeRiskLevelResponse:
  """Disabled risk-level switch endpoint documented by MEXC; calls return error code 8817 according to the official docs.

  Args:
    body: Request body.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [MEXC API docs](https://mexcdevelop.github.io/apidocs/contract_v1_en/#switch-the-risk-level)
  """
  params = {}
  r = await self.signed_post('/api/v1/private/account/change_risk_level', json=body)
  return self.envelope_output(r.text, adapter, validate)

history

Returns paginated historical position records for the signed futures account.

Parameters:

Name Type Description Default
symbol str | None

Contract symbol filter.

None
type_ int | None

Position type filter: 1 long, 2 short.

None
page_num int

Page number; default is 1.

required
page_size int

Page size; default 20, maximum 100.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
HistoryResponse

The validated endpoint response.

References
Source code in pkg/src/mexc/futures/position/history.py
async def history(
  self,
  *,
  symbol: str | None = None,
  type_: int | None = None,
  page_num: int,
  page_size: int,
  validate: bool | None = None
) -> HistoryResponse:
  """Returns paginated historical position records for the signed futures account.

  Args:
    symbol: Contract symbol filter.
    type_: Position type filter: 1 long, 2 short.
    page_num: Page number; default is 1.
    page_size: Page size; default 20, maximum 100.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [MEXC API docs](https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-the-user-s-history-position-information)
  """
  headers = {}
  params = {}
  if symbol is not None:
    params['symbol'] = symbol
  if type_ is not None:
    params['type'] = type_
  if page_num is not None:
    params['page_num'] = page_num
  if page_size is not None:
    params['page_size'] = page_size
  r = await self.signed_request('GET', '/api/v1/private/position/list/history_positions', params=params or None, headers=headers)
  return self.envelope_output(r.text, adapter, validate)

history_paged

Yield pages from history until the response reports the final page.

Source code in pkg/src/mexc/futures/position/history.py
async def history_paged(self, *, symbol: str | None = None, type_: int | None = None, page_size: int, max_pages: int | None = None, validate: bool | None = None) -> AsyncIterator[HistoryResponse]:
  """Yield pages from `history` until the response reports the final page."""
  page = 1
  while True:
    response = await self.history(symbol=symbol, type_=type_, page_size=page_size, page_num=page, validate=validate)
    yield response
    if max_pages is not None and page >= max_pages:
      break
    data = response.get('data') if isinstance(response, dict) else None
    total = None
    if isinstance(data, dict):
      total = data.get('totalPage') or data.get('totalPageNum')
    if total is None and isinstance(response, dict):
      total = response.get('totalPage') or response.get('totalPageNum')
    if total is None:
      if data == [] or response == []:
        break
      if max_pages is None:
        break
      page += 1
      continue
    if total is None or page >= total:
      break
    page += 1

leverage

Returns leverage and risk-rate details for the signed account on a contract.

Parameters:

Name Type Description Default
symbol str

Contract symbol.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
LeverageResponse

The validated endpoint response.

References
Source code in pkg/src/mexc/futures/position/leverage.py
async def leverage(self, *, symbol: str, validate: bool | None = None) -> LeverageResponse:
  """Returns leverage and risk-rate details for the signed account on a contract.

  Args:
    symbol: Contract symbol.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [MEXC API docs](https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-leverage)
  """
  headers = {}
  params = {}
  if symbol is not None:
    params['symbol'] = symbol
  r = await self.signed_request('GET', '/api/v1/private/position/leverage', params=params or None, headers=headers)
  return self.envelope_output(r.text, adapter, validate)

open

Returns current open holding positions for the signed futures account.

Parameters:

Name Type Description Default
symbol str | None

Optional contract symbol; omitted returns all open positions.

None
validate bool | None

Validation override for this request.

None

Returns:

Type Description
OpenPositionsResponse

The validated endpoint response.

References
Source code in pkg/src/mexc/futures/position/open.py
async def open(
  self,
  *,
  symbol: str | None = None,
  validate: bool | None = None
) -> OpenPositionsResponse:
  """Returns current open holding positions for the signed futures account.

  Args:
    symbol: Optional contract symbol; omitted returns all open positions.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [MEXC API docs](https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-the-user-39-s-current-holding-position)
  """
  headers = {}
  params = {}
  if symbol is not None:
    params['symbol'] = symbol
  r = await self.signed_request('GET', '/api/v1/private/position/open_positions', params=params or None, headers=headers)
  return self.envelope_output(r.text, adapter, validate)

position_mode

Returns the signed account position mode: 1 hedge mode, 2 one-way mode.

Parameters:

Name Type Description Default
validate bool | None

Validation override for this request.

None

Returns:

Type Description
PositionModeResponse

The validated endpoint response.

References
Source code in pkg/src/mexc/futures/position/position_mode.py
async def position_mode(self, *, validate: bool | None = None) -> PositionModeResponse:
  """Returns the signed account position mode: 1 hedge mode, 2 one-way mode.

  Args:
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [MEXC API docs](https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-position-mode)
  """
  headers = {}
  params = {}
  r = await self.signed_request('GET', '/api/v1/private/position/position_mode', params=params or None, headers=headers)
  return self.envelope_output(r.text, adapter, validate)

risk_limit

Returns current risk-limit levels for the signed futures account, optionally filtered by symbol.

Parameters:

Name Type Description Default
symbol str | None

Optional contract symbol; omitted returns all symbols.

None
validate bool | None

Validation override for this request.

None

Returns:

Type Description
RiskLimitResponse

The validated endpoint response.

References
Source code in pkg/src/mexc/futures/position/risk_limit.py
async def risk_limit(
  self,
  *,
  symbol: str | None = None,
  validate: bool | None = None
) -> RiskLimitResponse:
  """Returns current risk-limit levels for the signed futures account, optionally filtered by symbol.

  Args:
    symbol: Optional contract symbol; omitted returns all symbols.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [MEXC API docs](https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-risk-limits)
  """
  headers = {}
  params = {}
  if symbol is not None:
    params['symbol'] = symbol
  r = await self.signed_request('GET', '/api/v1/private/account/risk_limit', params=params or None, headers=headers)
  return self.envelope_output(r.text, adapter, validate)