> ## Documentation Index
> Fetch the complete documentation index at: https://docs.myfundedperpetuals.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Close all open positions

> Takes one bounded snapshot of every open position and submits one reduce-only market close for each target. Closes use the same 2.5% maximum-slippage policy as Close All in the trading terminal. The response reports each submitted or rejected child order. Repeating the request with the same idempotency key resumes or replays the original snapshot, even when positions have since closed.



## OpenAPI

````yaml /openapi.yaml post /v1/accounts/{account_id}/close-all-positions
openapi: 3.1.0
info:
  title: MyFundedPerps API (Beta)
  version: 1.0.0
  description: >-
    The developer API is in beta. Breaking changes may be introduced at any
    time. Programmatic access to MyFundedPerps paper-trading challenge accounts.
    API trades use the same real order books and simulated execution engine as
    the web trading interface. Every response carries an `X-Request-Id` header
    for support and log correlation.
  contact:
    url: https://myfundedperpetuals.com/support
servers:
  - url: https://developers.myfundedperpetuals.com
    description: Live
  - url: https://sandbox.myfundedperpetuals.com
    description: Sandbox (test keys and sandbox accounts only)
security:
  - bearerAuth: []
tags:
  - name: General
  - name: Authentication
  - name: Accounts
  - name: Markets
  - name: Positions
  - name: Orders
  - name: Fills
  - name: Strategy Orders
paths:
  /v1/accounts/{account_id}/close-all-positions:
    post:
      tags:
        - Accounts
        - Positions
      summary: Close all open positions
      description: >-
        Takes one bounded snapshot of every open position and submits one
        reduce-only market close for each target. Closes use the same 2.5%
        maximum-slippage policy as Close All in the trading terminal. The
        response reports each submitted or rejected child order. Repeating the
        request with the same idempotency key resumes or replays the original
        snapshot, even when positions have since closed.
      operationId: closeAllAccountPositions
      parameters:
        - $ref: '#/components/parameters/AccountId'
        - $ref: '#/components/parameters/IdempotencyKey'
      responses:
        '200':
          description: Completed operation replay.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloseAllPositionsEnvelope'
        '201':
          description: Operation completed for the first time.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloseAllPositionsEnvelope'
        '202':
          description: >-
            One close target or cooldown attempt completed. Retry with the same
            idempotency key after Retry-After.
          headers:
            Retry-After:
              $ref: '#/components/headers/RetryAfter'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloseAllPositionsEnvelope'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: >-
            A complete bounded open-position snapshot is temporarily
            unavailable.
          headers:
            Retry-After:
              $ref: '#/components/headers/RetryAfter'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
components:
  parameters:
    AccountId:
      name: account_id
      in: path
      required: true
      schema:
        type: string
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: true
      description: >-
        Unique printable key for this intended operation. Reuse it only for an
        identical retry.
      schema:
        type: string
        minLength: 1
        maxLength: 128
  schemas:
    CloseAllPositionsEnvelope:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/CloseAllPositionsOperation'
    ErrorEnvelope:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
    CloseAllPositionsOperation:
      type: object
      required:
        - id
        - operation
        - account_id
        - status
        - total_count
        - succeeded_count
        - failed_count
        - results
        - created_at
      properties:
        id:
          type: string
        operation:
          type: string
          const: close_all_positions
        account_id:
          type: string
        status:
          type: string
          enum:
            - running
            - completed
        total_count:
          type: integer
          minimum: 0
          maximum: 100
        succeeded_count:
          type: integer
          minimum: 0
          maximum: 100
        failed_count:
          type: integer
          minimum: 0
          maximum: 100
        results:
          type: array
          maxItems: 100
          items:
            type: object
            required:
              - position_id
              - status
            properties:
              position_id:
                type: string
              status:
                type: string
                enum:
                  - submitted
                  - failed
              order:
                $ref: '#/components/schemas/Order'
              failure_code:
                type: string
              rule_id:
                type: string
        created_at:
          type: number
        completed_at:
          type: number
    Error:
      type: object
      required:
        - code
        - message
        - request_id
      properties:
        code:
          type: string
        message:
          type: string
        request_id:
          type: string
          format: uuid
        details:
          type: array
          description: >-
            Present on request-validation failures, with one entry per invalid
            field so a request can be fixed in one pass.
          items:
            $ref: '#/components/schemas/ValidationIssue'
    Order:
      type: object
      required:
        - id
        - account_id
        - market_id
        - provider
        - symbol
        - coin
        - type
        - mode
        - side
        - size
        - expected_price
        - leverage
        - margin_mode
        - reduce_only
        - status
        - requested_at
      properties:
        id:
          type: string
        client_order_id:
          type: string
          description: Caller-assigned order identity, when supplied at placement.
        account_id:
          type: string
        market_id:
          type: string
        provider:
          type: string
        symbol:
          type: string
        coin:
          type: string
        type:
          type: string
          enum:
            - market
            - limit
            - stop_market
            - stop_limit
            - take_market
            - take_limit
            - take_profit
            - liquidation
            - close_out
        mode:
          type: string
          enum:
            - market
            - limit
            - chase
            - stop_market
            - stop_limit
            - take_market
            - take_limit
            - take_profit
            - conditional
            - liquidation
            - close_out
        side:
          type: string
          enum:
            - buy
            - sell
        size:
          type: number
        initial_size:
          type: number
        filled_size:
          type: number
        expected_price:
          type: number
        fill_price:
          type: number
        trigger_price:
          type: number
        limit_price:
          type: number
        notional:
          type: number
        fee:
          type: number
        realized_pnl:
          type: number
        leverage:
          type: number
        margin_mode:
          type: string
          enum:
            - cross
            - isolated
        reduce_only:
          type: boolean
        time_in_force:
          type: string
          enum:
            - gtc
            - ioc
            - fok
            - gtd
        gtd_expires_at:
          type: number
        attached_take_profit_price:
          type: number
        attached_stop_loss_price:
          type: number
        chase_offset:
          type: number
        chase_cap_price:
          type: number
        trigger_market_id:
          type: string
        trigger_direction:
          type: string
          enum:
            - above
            - below
        triggered_at:
          type: number
          description: >-
            Millisecond timestamp of the most recent resting-to-pending
            execution attempt.
        stop_triggered_at:
          type: number
          description: >-
            Millisecond timestamp when a conditional limit entered its limit
            leg. Absent while its trigger is still armed; once present it
            remains set.
        cancel_requested_at:
          type: number
          description: >-
            Millisecond timestamp of cancellation intent. An in-flight execution
            may still fill before cancellation settles.
        oco_sibling_order_id:
          type: string
          description: >-
            Paired TP or SL order. Fills retire matching size from the sibling;
            explicitly canceling one leg unlinks the survivor.
        target_position_id:
          type: string
        liquidity_role:
          type: string
          enum:
            - maker
            - taker
        partial_of_order_id:
          type: string
        partial_fill_root_order_id:
          type: string
        twap_order_id:
          type: string
        scaled_order_id:
          type: string
        status:
          type: string
          enum:
            - pending
            - filled
            - rejected
            - expired
            - resting
            - canceled
        reject_reason:
          type: string
        reject_rule_id:
          type: string
        requested_at:
          type: number
        settled_at:
          type: number
        canceled_at:
          type: number
    ValidationIssue:
      type: object
      required:
        - field
        - issue
      properties:
        field:
          type: string
          description: >-
            Wire name of the offending request field, such as `size` or
            `operations[2].price`. The value `body` refers to the whole payload.
        issue:
          type: string
  headers:
    RetryAfter:
      description: Seconds to wait before retrying.
      schema:
        type: integer
        minimum: 1
    RequestId:
      description: Stable identifier for support and log correlation.
      schema:
        type: string
        format: uuid
  responses:
    BadRequest:
      description: >-
        Invalid request. Validation failures list every offending field in
        `error.details`.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Unauthorized:
      description: Missing, invalid, or revoked API key.
      headers:
        WWW-Authenticate:
          schema:
            type: string
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Forbidden:
      description: The API key is valid but does not allow this operation.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    NotFound:
      description: Resource not found or not owned by the authenticated user.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Conflict:
      description: >-
        The request conflicts with current state, an idempotency record, or a
        client order ID.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    RateLimited:
      description: A per-key, per-IP, or deployment request budget is exhausted.
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: MyFundedPerps API key
      description: >-
        API key beginning with `fp_live_` (live keys, served at
        developers.myfundedperpetuals.com) or `fp_test_` (test keys, served at
        sandbox.myfundedperpetuals.com). A key presented on the other host is
        rejected with `401` and a message naming the correct host.

````