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

# Submit a strategy version for a run

> Queues a run for a version of the strategy. The run is live when `as_of_date` is omitted or set to today in UTC, and historical when set to a past date. Historical runs draw from a weekly and monthly credit allowance and are rejected once the allowance is exhausted.



## OpenAPI

````yaml /api-reference/openapi-v2.json post /strategies/{strategyId}/submit
openapi: 3.0.0
info:
  title: Noonum API v2
  version: 2.0.0
  contact:
    name: Noonum Support
    email: hello@noonum.com
  description: >
    Create and manage investment strategies, portfolios, and backtests. The API
    covers the full strategy lifecycle, including creation and editing, the
    archive and revive flow, version submission and run state, result companies,
    evidence, factsheets, exposures, and taxonomy.
servers:
  - url: https://api.noonum.ai/v2
security:
  - bearerAuth: []
tags:
  - name: UserStrategies
    description: Create, read, update, and manage your own investment strategies.
  - name: Helper
    description: >-
      Shared utilities for company lookup and search, objective tooling, and a
      health check.
  - name: Portfolios
    description: Create, read, update, and delete portfolios.
  - name: Backtest
    description: Run a standalone backtest on a portfolio of companies.
paths:
  /strategies/{strategyId}/submit:
    parameters:
      - name: strategyId
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: UUID of the strategy.
    post:
      tags:
        - UserStrategies
      summary: Submit a strategy version for a run
      description: >-
        Queues a run for a version of the strategy. The run is live when
        `as_of_date` is omitted or set to today in UTC, and historical when set
        to a past date. Historical runs draw from a weekly and monthly credit
        allowance and are rejected once the allowance is exhausted.
      operationId: app.api.v2.strategies.submit
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              description: Parameters for submitting a strategy run.
              additionalProperties: false
              properties:
                as_of_date:
                  description: >-
                    The as-of date for the run in `YYYY-MM-DD` format. When
                    omitted or set to today in UTC, the run is live. A past date
                    makes the run historical. Future dates are rejected with a
                    400.
                  type: string
                  format: date
                version_id:
                  description: >-
                    The version to run. Defaults to the version matching the
                    strategy's current draft, creating that version if needed
                    and promoting it to active.
                  type: string
                  format: uuid
                force:
                  description: >-
                    Re-run even when a completed run already exists for this
                    version and date.
                  type: boolean
                  default: false
                create_factsheet:
                  description: Whether to also request a factsheet for the resulting run.
                  type: boolean
                  default: false
                priority:
                  description: Queue priority for scheduling historical runs, from 1 to 10.
                  type: integer
                  minimum: 1
                  maximum: 10
                  default: 5
      responses:
        '201':
          description: >-
            The submission was accepted. Returns the submitted version and its
            run state. Poll `GET /strategies/{strategyId}/versions/{versionId}`
            to track progress.
          content:
            application/json:
              schema:
                type: object
                description: >-
                  A saved version of a strategy together with its run state.
                  When no `as_of_date` is supplied, the response summarizes the
                  version overall and populates `latest_run_date` and
                  `runs_count`. When an `as_of_date` is supplied, the response
                  describes the run on that date, echoes `as_of_date`, and
                  leaves the summary-only fields null.
                required:
                  - version_id
                  - strategy_id
                  - objective
                  - exclusions
                  - created_at
                  - is_active
                  - status
                  - completed
                  - has_factsheet
                properties:
                  version_id:
                    description: Unique identifier for this version.
                    type: string
                    format: uuid
                  strategy_id:
                    description: Identifier of the strategy this version belongs to.
                    type: string
                    format: uuid
                  objective:
                    description: The normalized objective captured for this version.
                    type: string
                  exclusions:
                    description: The exclusion phrases captured for this version.
                    type: array
                    items:
                      type: string
                  created_at:
                    type: string
                    format: date-time
                  is_active:
                    description: Whether this version is the strategy's active version.
                    type: boolean
                  status:
                    description: >-
                      Raw run status code. For example, `1` means pending, `100`
                      means done, and a negative value means failed.
                    type: integer
                    nullable: true
                  completed:
                    type: boolean
                  has_factsheet:
                    type: boolean
                  started_at:
                    type: string
                    format: date-time
                    nullable: true
                  completed_at:
                    type: string
                    format: date-time
                    nullable: true
                  as_of_date:
                    description: >-
                      The run's as-of date, echoed when an `as_of_date` was
                      supplied, otherwise null.
                    type: string
                    format: date
                    nullable: true
                  latest_run_date:
                    description: >-
                      The version's latest completed run date, or null when an
                      `as_of_date` was supplied.
                    type: string
                    format: date
                    nullable: true
                  runs_count:
                    description: >-
                      Total number of runs for the version, or null when an
                      `as_of_date` was supplied.
                    type: integer
                    nullable: true
        '400':
          description: The `as_of_date` is in the future.
        '404':
          description: The strategy or version was not found.
        '423':
          description: A run for this version and date is already in progress.
        '429':
          description: The historical submission rate limit has been exceeded.
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Returned when the historical submission rate limit has been
                  exceeded.
                required:
                  - error
                  - available
                  - requested
                properties:
                  error:
                    type: string
                  available:
                    description: Credits currently available in the limiting window.
                    type: integer
                  requested:
                    description: Credits the rejected submission requested.
                    type: integer
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: |
        Enter 'Bearer' followed by a space and then your JWT or API Key.
        Example: `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`
        or `Bearer YOUR_API_KEY_HERE`

````