> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fundingperpetuals.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: Funding Perpetuals API
  version: 1.0.0
  description: >-
    Programmatic access to Funding Perpetuals paper-trading challenge accounts.
    API trades use the same real order books and simulated execution engine as
    the web trading interface.
  contact:
    url: https://fundingperpetuals.com/support
servers:
  - url: https://developers.fundingperpetuals.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: General
  - 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'
        '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
    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
        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
        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
  headers:
    RetryAfter:
      description: Seconds to wait before retrying.
      schema:
        type: integer
        minimum: 1
  responses:
    BadRequest:
      description: Invalid request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Unauthorized:
      description: Missing, invalid, or revoked API key.
      headers:
        WWW-Authenticate:
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    NotFound:
      description: Resource not found or not owned by the authenticated user.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Conflict:
      description: >-
        The request conflicts with current state, an idempotency record, or a
        client order ID.
      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'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Funding Perpetuals API key
      description: API key beginning with `fp_live_`.

````