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

# Get apiv1marketpairs perpconfig

> Perp market risk/config parameters.



## OpenAPI

````yaml /proto-openapi/api/openapi.yaml get /api/v1/market/pairs/{tradingPairId}/perp/config
openapi: 3.0.3
info:
  title: Monaco Protocol API
  description: REST API for the Monaco Protocol hybrid CLOB exchange.
  version: 1.0.0
servers:
  - url: https://staging.apimonaco.xyz
    description: Staging server (Testnet)
security: []
tags:
  - name: AccountsService
  - name: ApplicationsService
  - name: AuthService
  - name: BuildercodeRewardsService
  - name: CopyTradingService
  - name: DelegatedAgentsService
  - name: FaucetService
  - name: FeesService
  - name: HealthService
  - name: ManagedMarketsService
    description: |-
      Wallet-authenticated maker assignments. The signed session must match both
       configured maker user and application. Owner IDs are process fences, never auth.
       Only wallet sessions are supported; delegated-agent sessions receive 403.
  - name: MarginAccountsService
    description: |-
      Current public isolated-margin semantics:
       - a user has one parent margin account per application scope
       - opening orders create or reuse isolated position buckets under that parent
       - parent account creation is handled internally by margin workflows
  - name: MarketService
  - name: OrderbookService
  - name: OrdersService
  - name: PositionsService
    description: |-
      Current public isolated-margin semantics:
       - positions link to a parent margin account and, when applicable, a bucket id
       - opening orders create or reuse isolated position buckets under the parent
       - users can open another isolated position by reusing the parent account with a different market bucket
  - name: PulseService
  - name: SweeperService
  - name: TraderCodeService
  - name: TradesService
  - name: WhitelistService
  - name: WithdrawalsService
paths:
  /api/v1/market/pairs/{tradingPairId}/perp/config:
    get:
      tags:
        - MarketService
      description: Perp market risk/config parameters.
      operationId: get_perp_market_config
      parameters:
        - name: tradingPairId
          in: path
          required: true
          schema:
            type: string
            default: 893d2add-2f36-4ee7-b660-893d2add2f36
          example: 893d2add-2f36-4ee7-b660-893d2add2f36
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPerpMarketConfigResponse'
components:
  schemas:
    GetPerpMarketConfigResponse:
      type: object
      properties:
        tradingPairId:
          type: string
          nullable: true
          format: uuid
        symbol:
          type: string
          nullable: true
        minLeverage:
          type: string
          nullable: true
        maxLeverage:
          example: '50'
          type: string
          description: >-
            Tier-1 maximum leverage: the cap for a position in the lowest
            notional bracket. Larger positions are capped by their own bracket
            in riskTiers.
          nullable: true
        initialMarginRatio:
          example: '0.02'
          type: string
          description: >-
            Tier-1 initial-margin floor rate, as a decimal fraction. Mirrors
            riskTiers[0].initialMarginRatio; use the active bracket's rate and
            deduction for the ladder floor. Selected leverage can produce a
            higher position initial-margin requirement.
          nullable: true
        maintenanceMarginRatio:
          example: '0.01'
          type: string
          description: >-
            Tier-1 maintenance-margin rate, as a decimal fraction. Mirrors
            riskTiers[0].maintenanceMarginRatio; use the active bracket's rate
            and deduction to calculate maintenance margin.
          nullable: true
        fundingIntervalSeconds:
          type: integer
          format: uint32
          nullable: true
        liquidationFeeBps:
          type: string
          nullable: true
        riskTiers:
          type: array
          items:
            $ref: '#/components/schemas/RiskTier'
          description: >-
            The market's full margin ladder, ascending by lowerBoundNotional and
            always non-empty (a market with no configured brackets reports a
            single tier). A position's bracket is the LAST tier whose
            lowerBoundNotional is at or below its notional, abs(quantity) x
            markPrice.
          nullable: true
        updatedAt:
          type: string
          nullable: true
    RiskTier:
      type: object
      properties:
        initialMarginRatio:
          example: '0.04'
          type: string
          description: >-
            Marginal initial-margin floor rate for notional inside this bracket,
            as a decimal fraction. The ladder floor is IM_floor(N) = N x
            initialMarginRatio - initialMarginDeduction. A position's
            initial-margin requirement is the greater of this floor and its
            selected-leverage initial margin scaled to the current mark.
          nullable: true
        maintenanceMarginRatio:
          example: '0.02'
          type: string
          description: >-
            Marginal maintenance-margin rate for notional inside this bracket,
            as a decimal fraction. Maintenance margin for a position of notional
            N in this bracket is MM(N) = N x maintenanceMarginRatio -
            maintenanceMarginDeduction.
          nullable: true
        maxPositionNotional:
          example: '100000000'
          type: string
          description: >-
            The most USD notional a position may hold at this bracket's max
            leverage: the next bracket's lowerBoundNotional, or the market's
            position cap on the top bracket. A position is valued at the order's
            price. Below the top bracket the cap is exclusive, since a notional
            at the next bound already sits in the next bracket. An order at a
            given leverage may take its position up to the cap of the highest
            bracket whose maxLeverage allows that leverage.
          nullable: true
        maxPositionSize:
          deprecated: true
          type: string
          description: >-
            DEPRECATED and no longer set: positions are capped in notional per
            bracket. Use maxPositionNotional.
          nullable: true
        tierLevel:
          example: 2
          type: integer
          description: >-
            1-based bracket index within the market's ladder; 1 is the lowest
            bracket.
          format: uint32
          nullable: true
        lowerBoundNotional:
          example: '100000000'
          type: string
          description: >-
            USD notional at which this bracket starts, inclusive; "0" for tier
            1.
          nullable: true
        maxLeverage:
          example: '25'
          type: string
          description: >-
            Maximum leverage available inside this bracket. Absent only for a
            single-tier market configured from explicit margin rates rather than
            from a leverage.
          nullable: true
        initialMarginDeduction:
          example: '2000000'
          type: string
          description: >-
            Continuity term of the ladder's initial-margin floor formula
            IM_floor(N) = N x initialMarginRatio - initialMarginDeduction; "0"
            for tier 1.
          nullable: true
        maintenanceMarginDeduction:
          example: '1000000'
          type: string
          description: >-
            Continuity term of the maintenance-margin formula MM(N) = N x
            maintenanceMarginRatio - maintenanceMarginDeduction; "0" for tier 1.
          nullable: true
      description: |-
        One notional bracket of a market's margin ladder. Brackets are MARGINAL:
         a bracket's rate applies only to the notional inside it, and the deduction
         carries the cheaper margin already charged by the brackets below, so margin
         is continuous across every bound rather than jumping at it.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.