Zero Hash CLOB API

Central Limit Order Book

Documentation

Specifications

Other Resources

OpenAPI Specification

zero-hash-clob-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: zerohash CLOB API
  description: '

    ### Authentication


    zerohash Uses HMAC SHA-256 verification to ensure the authenticity of API requests, follow instructions by link [https://docs.zerohash.com/reference/api-authentication](https://docs.zerohash.com/reference/api-authentication)


    <a href="/zh-swagger.json">Download zerohash OpenAPI Schema as JSON</a>

    '
  version: 1.7.0
servers:
- url: https://api.cert.zerohash.com
  description: Certification API server
security:
- apiKey: []
  apiPassphrase: []
tags:
- name: CLOB
  description: Central Limit Order Book
paths:
  /clob/accounts:
    post:
      tags:
      - CLOB
      summary: Create account (CLOB)
      description: Creates a new trading account on the CLOB. This is only relevant to our Central Limit Order Book (CLOB).
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: CLOB account attributes.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostCLOBAccountBody'
      responses:
        '202':
          description: CLOB account creation accepted. The returned resource reflects the account created on the trading engine.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCLOBAccountResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code400'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code404'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code500'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code503'
    get:
      tags:
      - CLOB
      summary: List accounts (CLOB)
      description: Retrieve a paginated list of your CLOB trading accounts. This is only relevant to our Central Limit Order Book (CLOB).
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      - name: participant_code
        in: query
        description: Filter results to a single participant code.
        required: false
        schema:
          type: string
      - name: account_label
        in: query
        description: Filter results to a single account label.
        required: false
        schema:
          type: string
      - name: prefunded
        in: query
        description: Filter results to prefunded (`true`) or non-prefunded (`false`) accounts.
        required: false
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - name: account_tier
        in: query
        description: Filter results to a single account tier.
        required: false
        schema:
          type: string
          enum:
          - lite
          - pro
          - bronze
          - silver
          - gold
      - name: page
        in: query
        description: Page number to fetch. Must be a positive integer. Defaults to 1 when omitted.
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
      responses:
        '200':
          description: Successfully retrieved the paginated list of CLOB accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCLOBAccountsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code400'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code404'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code500'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code503'
    patch:
      tags:
      - CLOB
      summary: Update CLOB account
      description: Updates `prefunded` and/or `account_tier` attributes of an account on the CLOB.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: CLOB account update. Identifies the target account by `account_label` (and optionally `participant_code`).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchPrefundedAccountBody'
      responses:
        '202':
          description: CLOB account update accepted. Returns the updated attributes of the account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatchPrefundedAccountResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code400'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code404'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code500'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Code503'
  /orders/v1/get_account_balance:
    post:
      tags:
      - CLOB
      summary: Get account balance
      description: Returns a snapshot of an account balance and buying power on the CLOB matching the given filters.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostGetAccountBalanceRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGetAccountBalanceResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/list_account_balances:
    post:
      tags:
      - CLOB
      summary: List account balances
      description: Returns a snapshotted list  balances and buying for an account power on the CLOB matching the given filter.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostListAccountBalanceRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGetAccountBalancesResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/get_open_orders:
    post:
      tags:
      - CLOB
      summary: List open orders
      description: Returns snapshot of working orders the CLOB matching the given filters.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostGetOpenOrdersRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGetOpenOrdersResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/search_orders:
    post:
      tags:
      - CLOB
      summary: List orders
      description: Search for orders places on the CLOB matching the given filters.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSearchOrdersRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSearchOrdersResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/search_executions:
    post:
      tags:
      - CLOB
      summary: Get order executions
      description: "Search for order executions on the CLOB matching the given filters. This endpoint returns all the executions for the given filters, and is paginated. \nNote: This executions means all the events that has been triggered for your orders on the CLOB."
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSearchExecutionsRequest'
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSearchExecutionsResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/create_order_subscription:
    post:
      tags:
      - CLOB
      summary: Create order subscription
      description: Create a subscription to receive updates on working orders.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostCreateOrderSubscriptionRequest'
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCreateOrderSubscriptionResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/create_market_data_subscription:
    post:
      tags:
      - CLOB
      summary: Market data subscription
      description: Subscribe to market data for CLOB instrument.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostMarketDataSubscriptionRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostMarketDataSubscriptionResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/insert_order:
    post:
      tags:
      - CLOB
      summary: Submit order
      description: Submit a new order to the CLOB.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInsertOrderRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInsertOrderResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/cancel_order:
    post:
      tags:
      - CLOB
      summary: Cancel order
      description: Cancel an order on the CLOB.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostCancelOrderRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCancelOrderResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/list_instruments:
    post:
      tags:
      - CLOB
      summary: List instruments
      description: List all instruments available on the CLOB.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostListInstrumentsRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostListInstrumentsResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
  /orders/v1/get_trade_stats:
    post:
      tags:
      - CLOB
      summary: Get trade stats
      description: Get trade stats for a given instrument.
      parameters:
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Timestamp'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTradeStatsRequest'
      responses:
        '200':
          description: A successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTradeStatsResponse'
        default:
          description: An error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorCLOBGeneric'
components:
  schemas:
    PostCancelOrderRequest:
      type: object
      properties:
        clord_id:
          type: string
          example: '1245567889'
          description: Client-provided order ID.
        order_id:
          type: string
          example: 51H5D2K2A00M
          description: Unique order identifier.
        symbol:
          type: string
          example: ETH/USD
          description: The trading pair for the order.
        user:
          type: string
          description: "Fully-qualified user. Format: `firms/F-{platform_code}/users/{participant_code}`. This value is case sensitive.\n### Clearing House Designations\n* **USA:** 00SXCM (ZH Clearing House)\n* **EU:** ZHDSEU\n\n### Prefunded Model \n  * USD balances are ledgered directly to the participants on their CLOB account.\n    * Participants will be credit checked against their available balance on the zerohash platform.\n  * Accounts must be registed with the `prefunded` field as `true` on the `POST /accounts` endpoint.\n * Trade settlement is handled directly between participants and occurs instantly upon execution.\n\n### Novated Model\n * Utilizes a central float account to manage the cumulative buying power of your customers.\n   * USD balance is ledgeder to the platforms float account.\n   * USD credit checks must be performed by the platform prior to order placement.\n * Accounts must be registed with the `prefunded` field as `false` on the `POST /accounts` endpoint.\n * Allows platforms to manage the buying power of their customers effectively, allowing for better operational efficiency."
          example: firms/F-PLAT01/user/CUST01
          enum:
          - firms/F-{platform_code}/users/{participant_code}
          - firms/F-{platform_code}/users/{account_label}
          - firms/{zerohash}/users/{platform_code}
    PostCLOBAccountResponse:
      type: object
      properties:
        message:
          $ref: '#/components/schemas/PostCLOBResponseEntity'
    PostInsertOrderRequest:
      oneOf:
      - $ref: '#/components/schemas/PostInsertOrderRequestEntity'
      - title: Limit Order
        description: Limit order request for inserting a new order.
        type: object
        properties:
          account:
            type: string
            example: firms/F-PLAT01/accounts/CUST01-customlabel
            description: 'The account associated with the order. This can be either the `participant_code` assigned by zerohash or the `account_label` defined by the platform.

              - Custom account label : `firms/{platform_code}/accounts/{account_label}`.

              - General account label : `firms/{platform_code}/accounts/{participant_code}`.

              '
          user:
            type: string
            description: "Fully-qualified user. Format: `firms/F-{platform_code}/users/{participant_code}`. This value is case sensitive.\n### Clearing House Designations\n* **USA:** 00SXCM (ZH Clearing House)\n* **EU:** ZHDSEU\n\n### Prefunded Model \n  * USD balances are ledgered directly to the participants on their CLOB account.\n    * Participants will be credit checked against their available balance on the zerohash platform.\n  * Accounts must be registed with the `prefunded` field as `true` on the `POST /accounts` endpoint.\n * Trade settlement is handled directly between participants and occurs instantly upon execution.\n\n### Novated Model\n * Utilizes a central float account to manage the cumulative buying power of your customers.\n   * USD balance is ledgeder to the platforms float account.\n   * USD credit checks must be performed by the platform prior to order placement.\n * Accounts must be registed with the `prefunded` field as `false` on the `POST /accounts` endpoint.\n * Allows platforms to manage the buying power of their customers effectively, allowing for better operational efficiency."
            example: firms/F-PLAT01/user/CUST01
            enum:
            - firms/F-{platform_code}/users/{participant_code}
            - firms/F-{platform_code}/users/{account_label}
            - firms/{zerohash}/users/{platform_code}
          side:
            type: string
            example: SIDE_BUY
            description: The side of the order, indicating whether it is a buy or sell order.
          symbol:
            type: string
            example: ETH/USD
            description: The trading pair for the order.
          order_qty:
            type: string
            example: '200000'
            description: The quantity of the order scaled by using the `fractional_quantity_scale`.
          price:
            type: string
            example: '420000'
            description: The limit price for the order scaled by using the `price_scale`.
          clord_id:
            type: string
            example: '1245567889'
            description: Client-provided order ID.
          self_match_prevention_instruction:
            type: string
            enum:
            - SELF_MATCH_PREVENTION_INSTRUCTION_UNDEFINED
            - SELF_MATCH_PREVENTION_INSTRUCTION_REJECT_AGGRESSOR
            - SELF_MATCH_PREVENTION_INSTRUCTION_CANCEL_RESTING
            - SELF_MATCH_PREVENTION_INSTRUCTION_REMOVE_BOTH
            example: SELF_MATCH_PREVENTION_INSTRUCTION_UNDEFINED
            description: "The self-match prevention instruction\n\n- `SELF_MATCH_PREVENTION_INSTRUCTION_UNDEFINED`: \nAn unset value for the self match prevention instruction uses the default behavior of the exchange, which is to reject the incoming order and allow resting orders to remain on the book.\n\n- `SELF_MATCH_PREVENTION_INSTRUCTION_REJECT_AGGRESSOR`: \nReject the incoming aggressor order and allow resting orders to remain on the book.\n\n- `SELF_MATCH_PREVENTION_INSTRUCTION_CANCEL_RESTING`: \nCancel any resting orders on the book that would self match and allow the aggressor to insert on the book.\n\n- `SELF_MATCH_PREVENTION_INSTRUCTION_REMOVE_BOTH`: \nCancel any resting orders on the book that would self match and reject the aggressor insertion on the book."
          all_or_none:
            type: boolean
            example: false
            description: Indicates if the order is an all-or-none order. An all-or-none order will only execute if the entire order quantity can be filled, otherwise it will remain as instructed with regards to time in force and type of the order.
          best_limit:
            type: boolean
            example: false
            description: Indicates if the order should be entered at the best available price on the same side of the market.
          client_account_id:
            type: string
            example: ''
          client_participant_id:
            type: string
            example: ''
          good_till_time:
            type: string
            format: date-time
            nullable: true
            example: '2025-09-12T18:07:22.155905574Z'
            description: The time until which the order is valid. If the order has a time in force of `TIME_IN_FORCE_GOOD_TILL_TIME`, then this field will indicate the time until which the order will remain active before it is cancelled by the system.
          ignore_price_validity_checks:
            type: boolean
            example: false
            description: 'Indicates if the order should bypass price validity checks and be accepted even if the price is outside of the normal price bands or limits set by the exchange.

              This may be used in conjunction with order `type` as `ORDER_TYPE_MARKET_TO_LIMIT` and the `side` as `SIDE_SELL` to bypass the exchange minimum order placement values to liquidate customer positions.'
          immediately_executable_limit:
            type: boolean
            example: false
            description: Indicates if the order should be executed immediately at the best available price.
          min_qty:
            type: string
            example: '0'
          order_capacity:
            type: string
            example: ORDER_CAPACITY_INDIVIDUAL
            description: 'The order capacity for the order, which indicates the capacity in which the participant is acting when placing the order. This may be used by the exchange for regulatory reporting purposes.


              - `ORDER_CAPACITY_UNDEFINED`: An unset value for order capacity uses the default behavior of the exchange, which is typically to treat the order as if it were entered in an individual capacity.

              - `ORDER_CAPACITY_AGENCY`: The participant is acting in an agency capacity, meaning they are placing the order on behalf of another party.

              - `ORDER_CAPACITY_PRINCIPAL`: The participant is acting in a principal capacity, meaning they are placing the order for their own account and risk.

              - `ORDER_CAPACITY_PROPRIETARY`: The participant is acting in a proprietary capacity, meaning they are placing the order for their own account but not for their own risk (e.g., a market maker).

              - `ORDER_CAPACITY_INDIVIDUAL`: The participant is acting in an individual capacity, meaning they are placing the order for their own account and risk.

              - `ORDER_CAPACITY_RISKLESS_PRINCIPAL`: The participant is acting in a riskless principal capacity, meaning they are placing the order on behalf of another party but will not assume any market risk (e.g., they will hedge out the position immediately).

              - `ORDER_CAPACITY_AGENT_FOR_OTHER_MEMBER`: The participant is acting as an agent for another member of the exchange.'
            enum:
            - ORDER_CAPACITY_UNDEFINED
            - ORDER_CAPACITY_AGENCY
            - ORDER_CAPACITY_PRINCIPAL
            - ORDER_CAPACITY_PROPRIETARY
            - ORDER_CAPACITY_INDIVIDUAL
            - ORDER_CAPACITY_RISKLESS_PRINCIPAL
            - ORDER_CAPACITY_AGENT_FOR_OTHER_MEMBER
          strict_limit:
            type: boolean
            example: false
            description: Indicates if the order is a strict limit order and must be executed at the specified price.
          time_in_force:
            type: string
            example: TIME_IN_FORCE_GOOD_TILL_CANCEL
            enum:
            - TIME_IN_FORCE_GOOD_TILL_CANCEL
            - TIME_IN_FORCE_IMMEDIATE_OR_CANCEL
            - TIME_IN_FORCE_FILL_OR_KILL
            - TIME_IN_FORCE_GOOD_TILL_TIME
            description: 'The time in force for the order, which indicates how long the order will remain active before it is executed or expires.


              - `TIME_IN_FORCE_UNDEFINED`: An unset value for time in force uses the default behavior of the exchange, which is typically to treat the order as a day order that expires at the end of the trading day.

              - `TIME_IN_FORCE_GOOD_TILL_CANCEL`: The order will remain active until it is executed or cancelled by the participant.

              - `TIME_IN_FORCE_IMMEDIATE_OR_CANCEL`: The order will be executed immediately at the best available price, and any portion of the order that is not filled will be cancelled.

              - `TIME_IN_FORCE_FILL_OR_KILL`: The order will be executed immediately at the best available price, and if the entire order cannot be filled, it will be cancelled.

              - `TIME_IN_FORCE_GOOD_TILL_TIME`: The order will remain active until it is executed or until a specified time in the future, at which point it will expire if it has not been filled.'
          type:
            type: string
            example: ORDER_TYPE_LIMIT
            enum:
            - ORDER_TYPE_MARKET_TO_LIMIT
            - ORDER_TYPE_LIMIT
            - ORDER_TYPE_STOP
            - ORDER_TYPE_STOP_LIMIT
            description: The type of the order, indicating whether it is a limit or market order.
        required:
        - account
        - user
        - side
        - type
        - time_in_force
        - symbol
        - order_qty
        - price
      - title: Market to Limit Order
        description: Market to limit order request for inserting a new order.
        type: object
        properties:
          account:
            type: string
            example: firms/F-PLAT01/accounts/CUST01-customlabel
            description: 'The account associated with the order. This can be either the `participant_code` assigned by zerohash or the `account_label` defined by the platform.

              - Custom account label : `firms/{platform_code}/accounts/{account_label}`.

              - General account label : `firms/{platform_code}/accounts/{participant_code}`.

              '
          user:
            type: string
            description: "Fully-qualified user. Format: `firms/F-{platform_code}/users/{participant_code}`. This value is case sensitive.\n### Clearing House Designations\n* **USA:** 00SXCM (ZH Clearing House)\n* **EU:** ZHDSEU\n\n### Prefunded Model \n  * USD balances are ledgered directly to the participants on their CLOB account.\n    * Participants will be credit checked against their available balance on the zerohash platform.\n  * Accounts must be registed with the `prefunded` field as `true` on the `POST /accounts` endpoint.\n * Trade settlement is handled directly between participants and occurs instantly upon execution.\n\n### Novated Model\n * Utilizes a central float account to manage the cumulative buying power of your customers.\n   * USD balance is ledgeder to the platforms float account.\n   * USD credit checks must be performed by the platform prior to order placement.\n * Accounts must be registed with the `prefunded` field as `false` on the `POST /accounts` endpoint.\n * Allows platforms to manage the buying power of their customers effectively, allowing for better operational efficiency."
            example: firms/F-PLAT01/user/CUST01
            enum:
            - firms/F-{platform_code}/users/{participant_code}
            - firms/F-{platform_code}/users/{account_label}
            - firms/{zerohash}/users/{platform_code}
          side:
            type: string
            example: SIDE_BUY
            description: The side of the order, indicating whether it is a buy or sell order.
          symbol:
            type: string
            example: ETH/USD
            description: The trading pair for the order.
          order_qty:
            type: string
            example: '200000'
            description: The quantity of the order scaled by using the `fractional_quantity_scale`.
          cash_order_qty:
            type: string
            example: '0'
            description: The notional value of the order to execute, used with market orders.
          clord_id:
            type: string
            example: '1245567889'
            description: Client-provided order ID.
          self_match_prevention_instruction:
            type: string
            enum:
            - SELF_MATCH_PREVENTION_INSTRUCTION_UNDEFINED
            - SELF_MATCH_PREVENTION_INSTRUCTION_REJECT_AGGRESSOR
            - SELF_MATCH_PREVENTION_INSTRUCTION_CANCEL_RESTING
            - SELF_MATCH_PREVENTION_INSTRUCTION_REMOVE_BOTH
            example: SELF_MATCH_PREVENTION_INSTRUCTION_UNDEFINED
            description: "The self-match prevention instruction\n\n- `SELF_MATCH_PREVENTION_INSTRUCTION_UNDEFINED`: \nAn unset value for the self match prevention instruction uses the default behavior of the exchange, which is to reject the incoming order and allow resting orders to remain on the book.\n\n- `SELF_MATCH_PREVENTION_INSTRUCTION_REJECT_AGGRESSOR`: \nReject the incoming aggressor order and allow resting orders to remain on the book.\n\n- `SELF_MATCH_PREVENTION_INSTRUCTION_CANCEL_RESTING`: \nCancel any resting orders on the book that would self match and allow the aggressor to insert on the book.\n\n- `SELF_MATCH_PREVENTION_INSTRUCTION_REMOVE_BOTH`: \nCancel any resting orders on the book that would self match and reject the aggressor insertion on the book."
          all_or_none:
            type: boolean
            example: false
            description: Indicates if the order is an all-or-none order. An all-or-none order will only execute if the entire order quantity c

# --- truncated at 32 KB (256 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zero-hash/refs/heads/main/openapi/zero-hash-clob-api-openapi.yml