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

# Get trading rules for your organization

> Retrieve all trading rules configured for your organization.

**What are trading rules?**
Trading rules define the constraints and targets for your evaluation accounts. They determine when a trader passes, fails, or violates their account. Rules are attached to trading plans.

**Rule parameters explained:**

| Parameter | Description |
|-----------|-------------|
| `profitTarget` | Amount trader must profit to pass (e.g., $10,000) |
| `dailyLoss` | Max loss allowed in a single day (e.g., $2,500) |
| `maxLoss` | Max total loss from starting balance (e.g., $5,000) |
| `dailyDrawdown` | Max daily drawdown from day's high (e.g., $2,500) |
| `maxDrawdown` | Max drawdown from high water mark (e.g., $5,000) |
| `maxContracts` | Max position size in mini-equivalent contracts (e.g., 10) |
| `microConversionRatio` | How many micros count as 1 unit toward maxContracts (default 10) |
| `consistency` | Consistency rule percentage (0 = disabled) |
| `dailyProfit` | Max daily profit cap (0 = unlimited) |
| `maxProfit` | Max total profit cap (0 = unlimited) |
| `personalRiskPolicy` | Bounds on the risk controls traders set for themselves (see below) |

**Personal risk policy (`personalRiskPolicy`):**

Traders can impose their own risk controls on an account — a personal daily
loss limit (optionally trailing their session peak), a daily profit target,
max trades per day/week, per-symbol contract limits, symbol blocks and
automatic brackets. These are enforced by the trade engine in real time and
can only ever make an account **stricter** than your rule set.

`personalRiskPolicy` lets you bound what a trader may choose:

```json
{
  "personalRiskPolicy": {
    "dailyLossLimitMax": 1000,
    "dailyLossLimitDefault": 500,
    "requireDailyLossLimit": true,
    "maxTradesPerDayMax": 20,
    "requireAutoBracket": false,
    "lockedByFirm": false
  }
}
```

- Every value is a **ceiling**: a trader may always pick something stricter.
- A ceiling is an *effective* bound, not just form validation. If the trader
  leaves the field empty, your value applies (`dailyLossLimitDefault` when
  set, otherwise `dailyLossLimitMax`) — nobody escapes a bound by leaving a
  field blank.
- `requireDailyLossLimit` also forces the limit to be **armed**: a trader
  cannot set the action to "do nothing".
- `lockedByFirm: true` makes the whole personal risk panel read-only; the
  trader's own API calls are rejected with `FIRM_LOCKED`.
- Omit the object entirely (or send `null` on update) to leave traders
  unconstrained. Nothing changes for existing rule sets.

Traders read and write their own settings through the trade API
(`GET`/`POST /trade/account/risk-settings`); this policy is the only knob
you need on your side.

**Example rule sets:**

*Standard Challenge (beginner-friendly):*
- Profit target: $10,000 (10%)
- Daily loss: $2,500 (2.5%)
- Max drawdown: $5,000 (5%)

*Aggressive Challenge (experienced traders):*
- Profit target: $8,000 (8%)
- Daily loss: $4,000 (4%)
- Max drawdown: $6,000 (6%)

**Filtering by metadata:**
```http
# Find strict rule sets
GET /organization/trading-rules?metadata=strict:true

# Find rules by version
GET /organization/trading-rules?metadata=ruleVersion:2.1

# Find rules for specific markets
GET /organization/trading-rules?metadata=market:futures
```

**Use cases:**
- Display rule details on your website
- Validate rule IDs before creating accounts
- Compare different rule configurations
- Audit your risk parameters



## OpenAPI

````yaml /api-reference/openapi.json get /v1/organization/trading-rules
openapi: 3.0.0
info:
  title: Hyperprop Platform API
  version: 1.0.0
  description: >-
    REST API for the Hyperprop Trading Platform — provision evaluation and
    funded trading accounts, manage traders and plans, react to account
    lifecycle events via signed webhooks, and reconcile billing. Built for prop
    firms integrating from their own backend.


    Authentication, quick start, error handling, idempotency, pagination, custom
    metadata, webhooks, and the MCP connector are documented at
    https://docs.hyperprop.com.
  x-logo:
    url: https://app.hyperprop.com/logo-icon.svg
    altText: Hyperprop
    href: https://hyperprop.com
servers:
  - url: https://api.hyperprop.com/platform
    description: Production
security: []
tags:
  - name: Trading accounts
    description: Create, update, and inspect trading accounts.
  - name: Traders
    description: Look up and update the traders in your organization.
  - name: Trading plans
    description: Define the plans you sell.
  - name: Trading rules
    description: Define how accounts are evaluated.
  - name: Lockouts
    description: Pause and resume trading on an account.
  - name: Payouts
    description: Check payout eligibility and record payouts.
  - name: Purchases
    description: Purchases recorded for your organization.
  - name: Time Machine
    description: Restore accounts to an earlier trading day or instant.
  - name: Webhooks
    description: Register webhook endpoints and inspect deliveries.
  - name: Events
    description: Your organization's event history and real-time event stream.
  - name: Reconciliation
    description: Balances, end-of-day snapshots, and fills for reconciliation.
  - name: Analytics
    description: Organization performance and plan economics.
  - name: Billing
    description: 'Your Hyperprop bill: activity, billing cycles, and forecasts.'
  - name: Team and roles
    description: Manage dashboard access for your staff.
  - name: API keys
    description: Manage your organization's API key.
  - name: Logs and health
    description: API request logs, the audit log, and integration health.
  - name: Organization profile
    description: Your organization's profile and logo.
  - name: Support
    description: Open and follow up on support tickets.
  - name: Partner access
    description: >-
      Read a trader's journal as an approved partner app, with the trader's own
      key.
paths:
  /v1/organization/trading-rules:
    get:
      tags:
        - Trading rules
      summary: Get trading rules for your organization
      description: >-
        Retrieve all trading rules configured for your organization.


        **What are trading rules?**

        Trading rules define the constraints and targets for your evaluation
        accounts. They determine when a trader passes, fails, or violates their
        account. Rules are attached to trading plans.


        **Rule parameters explained:**


        | Parameter | Description |

        |-----------|-------------|

        | `profitTarget` | Amount trader must profit to pass (e.g., $10,000) |

        | `dailyLoss` | Max loss allowed in a single day (e.g., $2,500) |

        | `maxLoss` | Max total loss from starting balance (e.g., $5,000) |

        | `dailyDrawdown` | Max daily drawdown from day's high (e.g., $2,500) |

        | `maxDrawdown` | Max drawdown from high water mark (e.g., $5,000) |

        | `maxContracts` | Max position size in mini-equivalent contracts (e.g.,
        10) |

        | `microConversionRatio` | How many micros count as 1 unit toward
        maxContracts (default 10) |

        | `consistency` | Consistency rule percentage (0 = disabled) |

        | `dailyProfit` | Max daily profit cap (0 = unlimited) |

        | `maxProfit` | Max total profit cap (0 = unlimited) |

        | `personalRiskPolicy` | Bounds on the risk controls traders set for
        themselves (see below) |


        **Personal risk policy (`personalRiskPolicy`):**


        Traders can impose their own risk controls on an account — a personal
        daily

        loss limit (optionally trailing their session peak), a daily profit
        target,

        max trades per day/week, per-symbol contract limits, symbol blocks and

        automatic brackets. These are enforced by the trade engine in real time
        and

        can only ever make an account **stricter** than your rule set.


        `personalRiskPolicy` lets you bound what a trader may choose:


        ```json

        {
          "personalRiskPolicy": {
            "dailyLossLimitMax": 1000,
            "dailyLossLimitDefault": 500,
            "requireDailyLossLimit": true,
            "maxTradesPerDayMax": 20,
            "requireAutoBracket": false,
            "lockedByFirm": false
          }
        }

        ```


        - Every value is a **ceiling**: a trader may always pick something
        stricter.

        - A ceiling is an *effective* bound, not just form validation. If the
        trader
          leaves the field empty, your value applies (`dailyLossLimitDefault` when
          set, otherwise `dailyLossLimitMax`) — nobody escapes a bound by leaving a
          field blank.
        - `requireDailyLossLimit` also forces the limit to be **armed**: a
        trader
          cannot set the action to "do nothing".
        - `lockedByFirm: true` makes the whole personal risk panel read-only;
        the
          trader's own API calls are rejected with `FIRM_LOCKED`.
        - Omit the object entirely (or send `null` on update) to leave traders
          unconstrained. Nothing changes for existing rule sets.

        Traders read and write their own settings through the trade API

        (`GET`/`POST /trade/account/risk-settings`); this policy is the only
        knob

        you need on your side.


        **Example rule sets:**


        *Standard Challenge (beginner-friendly):*

        - Profit target: $10,000 (10%)

        - Daily loss: $2,500 (2.5%)

        - Max drawdown: $5,000 (5%)


        *Aggressive Challenge (experienced traders):*

        - Profit target: $8,000 (8%)

        - Daily loss: $4,000 (4%)

        - Max drawdown: $6,000 (6%)


        **Filtering by metadata:**

        ```http

        # Find strict rule sets

        GET /organization/trading-rules?metadata=strict:true


        # Find rules by version

        GET /organization/trading-rules?metadata=ruleVersion:2.1


        # Find rules for specific markets

        GET /organization/trading-rules?metadata=market:futures

        ```


        **Use cases:**

        - Display rule details on your website

        - Validate rule IDs before creating accounts

        - Compare different rule configurations

        - Audit your risk parameters
      operationId: getV1OrganizationTradingrules
      parameters:
        - description: Filter by metadata key:value (e.g., "strict:true", "level:advanced")
          name: metadata
          in: query
          required: false
          schema:
            type: string
        - description: 'Results per page (default: 50, max: 100)'
          name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
        - description: Pagination offset
          name: offset
          in: query
          schema:
            type: integer
            minimum: 0
            default: 0
        - description: >-
            Cursor for pagination. Pass the `nextCursor` value from the previous
            response to get the next page. When using cursor, do not send
            `offset` — it will be ignored.


            **How it works:** The cursor is an opaque string that points to the
            last item you received. The server uses it to efficiently fetch the
            next set of results without scanning previous pages.


            **Backwards compatible:** If you don't send a cursor, offset/limit
            pagination works as before.
          name: cursor
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Success - Returns all trading rules
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Model154'
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Model155'
        '403':
          description: Forbidden - Your account is not associated with an organization
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Model156'
        '500':
          description: An unexpected error occurred
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Model5'
      security:
        - X-API-Key: []
components:
  schemas:
    Model154:
      type: object
      properties:
        success:
          type: boolean
          example: true
        data:
          $ref: '#/components/schemas/Model153'
    Model155:
      type: object
      properties:
        statusCode:
          type: number
          example: 401
        error:
          type: string
          example: Unauthorized
        message:
          type: string
          example: Invalid or expired session
    Model156:
      type: object
      properties:
        statusCode:
          type: number
          example: 403
        error:
          type: string
          example: Forbidden
        message:
          type: string
          example: This endpoint is only available for organization users
        code:
          type: string
          example: NOT_ORGANIZATION_USER
    Model5:
      type: object
      properties:
        success:
          type: boolean
          description: Always false on errors
          example: false
        statusCode:
          type: number
          example: 500
        error:
          type: string
          example: Internal Server Error
        message:
          type: string
          example: An unexpected error occurred
        code:
          type: string
          description: Machine-readable error code — switch on this, not on message text
          example: INTERNAL_ERROR
    Model153:
      type: object
      example:
        organizationId: a6fcc0ce-eb28-4f43-b256-96a3144b0d34
        organizationName: FakePropFirm
        rules:
          - id: 6bec94a1-425b-47be-bb41-a80e3140e2e7
            name: Standard Rules
            description: >-
              Balanced evaluation rules with 8% profit target and 5% max
              trailing loss.
            profitTarget: 4000
            dailyProfit: 0
            maxProfit: 0
            dailyLoss: 1000
            maxLoss: 2500
            dailyDrawdown: 2
            maxDrawdown: 5
            drawdownType: static
            consistency: 0
            maxContracts: 10
            microConversionRatio: 10
            metadata: {}
            createdAt: '2025-12-30T12:03:09.385Z'
            updatedAt: '2026-03-03T15:00:00.000Z'
          - id: 6cf3821e-0ad4-427f-85a5-c3d498aa342e
            name: Aggressive Rules
            description: Higher risk tolerance with 10% profit target and 6% max loss.
            profitTarget: 10000
            dailyProfit: 0
            maxProfit: 0
            dailyLoss: 3000
            maxLoss: 6000
            dailyDrawdown: 3
            maxDrawdown: 6
            drawdownType: trailing
            consistency: 0
            maxContracts: 20
            microConversionRatio: 5
            metadata: {}
            createdAt: '2026-02-18T21:19:56.853Z'
            updatedAt: '2026-03-03T15:00:00.000Z'
        pagination:
          total: 4
          limit: 50
          offset: 0
          hasMore: false
      properties:
        organizationId:
          type: string
          description: Your organization ID
        organizationName:
          type: string
          description: Your organization name
        rules:
          $ref: '#/components/schemas/rules'
        pagination:
          $ref: '#/components/schemas/Model152'
    rules:
      type: array
      description: Array of trading rules
      items:
        $ref: '#/components/schemas/Model151'
    Model152:
      type: object
      description: Pagination info
      properties:
        total:
          type: number
          description: Total number of rules
        limit:
          type: number
          description: Results per page
        offset:
          type: number
          description: Current offset
        hasMore:
          type: boolean
          description: Whether more results exist
        nextCursor:
          type: string
          description: >-
            Cursor for the next page. Pass as ?cursor= to get the next set of
            results. Null if no more results.
    Model151:
      type: object
      properties:
        id:
          type: string
          description: Unique rule ID
        name:
          type: string
          description: Rule set display name
        description:
          type: string
          description: Rule set description
        profitTarget:
          type: number
          description: Profit target to pass ($)
        dailyProfit:
          type: number
          description: Max daily profit cap (0 = unlimited)
        maxProfit:
          type: number
          description: Max total profit cap (0 = unlimited)
        dailyLoss:
          type: number
          description: Max loss allowed per day ($)
        maxLoss:
          type: number
          description: Max total loss ($)
        dailyDrawdown:
          type: number
          description: Max daily drawdown (%)
        maxDrawdown:
          type: number
          description: Max drawdown (%)
        consistency:
          type: number
          description: Consistency rule % (0 = disabled)
        consistencyEnforced:
          type: boolean
          description: >-
            Whether the engine enforces the consistency rule for accounts on
            this rule set
        consistencyBase:
          type: string
          description: Configured base mode (null = automatic by account type)
        consistencyTolerancePct:
          type: number
          description: Daily-cap buffer as % of starting balance
        consistencyLeniency:
          type: number
          description: Flat $ daily-cap buffer
        consistencyMinDays:
          type: number
          description: Min profitable days (null = auto ceil(100/consistency))
        consistencyProfitableDayMin:
          type: number
          description: Min net PnL ($) for a day to count as profitable
        maxPayouts:
          type: number
          description: >-
            Payout count that triggers account.max_payouts_reached (null =
            unlimited)
        payoutMllLockOffset:
          type: number
          description: Default move_mll_to_lock offset ($ above initial balance)
        maxContracts:
          type: number
          description: >-
            Max position size in mini-equivalent contracts. On a market whose
            contract steps fractionally (the BTCUSDT perpetual steps 0.001 BTC)
            this counts ENGINE units, so 100 is 0.1 BTC and 1000 is 1 BTC — read
            `quantityStep` on the contract rather than assuming one unit is one
            coin.
        microConversionRatio:
          type: number
          description: How many micros count as 1 unit toward maxContracts (default 10)
        maxPositionByMarket:
          $ref: '#/components/schemas/maxPositionByMarket'
        personalRiskPolicy:
          $ref: '#/components/schemas/personalRiskPolicy'
        metadata:
          $ref: '#/components/schemas/Model150'
        createdAt:
          type: string
        updatedAt:
          type: string
    maxPositionByMarket:
      type: object
      description: >-
        Per-market position limits in each market's own unit. Overrides
        maxContracts for the markets it names.
      example:
        BINANCE: 0.5
    personalRiskPolicy:
      type: object
      description: Firm bounds on trader-set personal risk controls
    Model150:
      type: object
      description: Custom metadata
  securitySchemes:
    X-API-Key:
      type: apiKey
      name: X-API-Key
      in: header
      description: >-
        Organization API key. Format: "hp_live_{key}". Organization admins
        manage the key in the dashboard.

````

## Related topics

- [Get a specific trading rule](/platform-api/trading-rules/get-a-specific-trading-rule.md)
- [Get trading plans for your organization](/platform-api/trading-plans/get-trading-plans-for-your-organization.md)
- [Get trading accounts for your organization](/platform-api/trading-accounts/get-trading-accounts-for-your-organization.md)
- [Get purchases for your organization](/platform-api/purchases/get-purchases-for-your-organization.md)
- [Get your organization profile](/platform-api/organization-profile/get-your-organization-profile.md)


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