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

# Submit backtest run

> Submits a strategy simulation job. Fees, slippage, and funding assumptions are required so results are reproducible and gate-eligible.



## OpenAPI

````yaml /openapi.json post /api/v2/backtest/runs
openapi: 3.1.0
info:
  title: QuantDesk API
  version: 2.0.0
  description: >-
    Public HTTP API for the QuantDesk perpetual DEX gateway. Endpoints are
    grouped by market data, unified portfolio state, oracle pricing, social
    surfaces, backtesting, and reference data. Field-level truth for on-chain
    accounts lives in the SDK; this reference documents the REST gateway
    surface.


    Authenticated routes accept a Bearer JWT obtained from the wallet session
    flow described in the Authentication guide.
  contact:
    name: QuantDesk Support
    url: https://docs.quantdesk.app
    email: support@quantdesk.app
  license:
    name: MIT
servers:
  - url: https://api.quantdesk.app
    description: Production gateway
security: []
tags:
  - name: Markets
    description: Market registry, metadata, and crankless orderbook depth.
  - name: Oracle
    description: Price feeds sourced from the Pyth oracle network.
  - name: Portfolio
    description: Unified portfolio state aggregated from on-chain accounts.
  - name: Data
    description: Authoritative market statistics and historical OHLCV candles.
  - name: Social
    description: Leaderboard and verified proof (flex) cards.
  - name: Backtesting
    description: Strategy simulation lifecycle and dataset catalog.
  - name: Referrals
    description: Referral validation before on-chain assignment.
paths:
  /api/v2/backtest/runs:
    post:
      tags:
        - Backtesting
      summary: Submit backtest run
      description: >-
        Submits a strategy simulation job. Fees, slippage, and funding
        assumptions are required so results are reproducible and gate-eligible.
      operationId: submitBacktestRun
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - dataset_id
                - strategy
                - fees
                - slippage
                - funding
              properties:
                dataset_id:
                  type: string
                  example: sol-perp-1h-2025
                strategy:
                  type: object
                  description: Strategy card definition.
                  additionalProperties: true
                fees:
                  type: number
                  description: Taker fee assumption (bps).
                  example: 5
                slippage:
                  type: number
                  description: Slippage assumption (bps).
                  example: 3
                funding:
                  type: boolean
                  description: Apply funding to the simulation.
                  example: true
      responses:
        '202':
          description: Run accepted and queued
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      run_id:
                        type: string
                        example: b4f1c2a0-6d3e-4f7a-9c1b-0a2d3e4f5a6b
                      status:
                        type: string
                        example: queued
        '401':
          description: Missing or expired auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
components:
  schemas:
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: PORTFOLIO_NOT_FOUND
        code:
          type: string
          example: PORTFOLIO_NOT_FOUND
        message:
          type: string
          example: Wallet has not initialized a V2 portfolio yet.
        timestamp:
          type: string
          format: date-time
        request_id:
          type: string
          example: req_8f2a1c
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer JWT obtained from the wallet session flow. See the Authentication
        guide.

````