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

# Submit Order

> Places a limit order on a ProphetX strike and returns the issued order id.



## OpenAPI

````yaml /openapi/v1.json post /v1/prophetx/orders
openapi: 3.0.0
info:
  title: ParlayX API
  version: 1.0.0
  description: Aggregated prediction-market trading API
servers:
  - url: https://api.parlayx.com
security: []
tags:
  - name: Authentication
    description: Confirm your signing and read the server clock.
  - name: Discovery
    description: Browse sports, competitions, events, and markets.
  - name: Polymarket
    description: Submit and manage orders on Polymarket outcomes.
  - name: Kalshi
    description: Submit and manage orders on Kalshi markets.
  - name: ProphetX
    description: Submit and manage orders on ProphetX strikes.
  - name: Limitless
    description: Discover and trade Limitless markets.
paths:
  /v1/prophetx/orders:
    post:
      tags:
        - ProphetX
      summary: Submit Order
      description: >-
        Places a limit order on a ProphetX strike and returns the issued order
        id.
      operationId: submitProphetXOrder
      parameters:
        - name: PX-Key-Id
          in: header
          required: true
          schema:
            type: string
          description: The key id issued for your signing keypair.
        - name: PX-Timestamp
          in: header
          required: true
          schema:
            type: string
          description: >-
            Unix seconds at signing, valid within 30 seconds of the server
            clock.
        - name: PX-Signature
          in: header
          required: true
          schema:
            type: string
          description: Ed25519 signature of the request
        - name: PX-Content-Sha256
          in: header
          required: true
          schema:
            type: string
          description: >-
            Hex SHA-256 of the request body, or the SHA-256 of the empty string
            when there is no body.
        - schema:
            type: string
            minLength: 1
            description: >-
              Idempotency key for this request. Re-sending the same key with the
              same body returns the original result and creates no duplicate;
              re-sending it with a different body is rejected with 422.
            example: 2f1a8c4e-0b3d-4a9c-8e7f-1a2b3c4d5e6f
          required: true
          name: Idempotency-Key
          in: header
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProphetXOrderRequest'
      responses:
        '201':
          description: >-
            Order accepted; `status` is the order's recorded state, acceptance
            alone does not mean the order is resting or filled, and `price` is
            the order's resolved limit after ladder resolution rather than an
            execution or average fill price
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitProphetXOrderResponse'
        '400':
          description: >-
            Invalid request, a missing/malformed Idempotency-Key header, a price
            past either end of the prices the venue quotes, insufficient pod
            virtual balance, or a venue refusal the caller can act on
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: The request was not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
        '403':
          description: The key is not permitted to perform this action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
        '404':
          description: The ProphetX strike named by `strikeId` does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: Idempotency key reused with a different request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdempotencyConflictError'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ApiError'
                  - $ref: '#/components/schemas/AuthError'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '503':
          description: Authentication is temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
components:
  schemas:
    ProphetXOrderRequest:
      type: object
      properties:
        strikeId:
          type: string
          minLength: 1
          description: >-
            The ProphetX strike to trade, which identifies both the market and
            the side.
          example: ab39fb9a7b4eb6a26d7e26f885c601c1
        price:
          $ref: '#/components/schemas/ProphetXPrice'
        quantity:
          type: number
          minimum: 0
          exclusiveMinimum: true
          description: Stake in account currency units.
          example: 25
        timeInForce:
          oneOf:
            - $ref: '#/components/schemas/GtcTimeInForce'
            - $ref: '#/components/schemas/ProphetXFokTimeInForce'
            - $ref: '#/components/schemas/ProphetXGtdTimeInForce'
          discriminator:
            propertyName: type
            mapping:
              GTC: '#/components/schemas/GtcTimeInForce'
              FOK: '#/components/schemas/ProphetXFokTimeInForce'
              GTD: '#/components/schemas/ProphetXGtdTimeInForce'
          description: Execution policy; omission uses GTC.
        postOnly:
          type: boolean
          description: Rest as add-liquidity-only without taking existing liquidity.
      required:
        - strikeId
        - price
        - quantity
      additionalProperties: false
    SubmitProphetXOrderResponse:
      type: object
      properties:
        orderId:
          type: string
          format: uuid
          description: Issued order id.
          example: abd80630-5c89-437f-980e-47936f518ec2
        status:
          $ref: '#/components/schemas/TradingOrderStatus'
        price:
          $ref: '#/components/schemas/ProphetXPrice'
        venueOrderId:
          type: string
          nullable: true
          description: >-
            Venue order id for the order, or null when no venue order id is
            recorded.
          example: 9f1a2b3c4d5e6f708192a3b4c5d6e7f8
        quantity:
          type: number
          minimum: 0
          exclusiveMinimum: true
          description: Stake the order was submitted with, in account currency units.
          example: 25
      required:
        - orderId
        - status
        - price
        - venueOrderId
        - quantity
    BadRequestError:
      anyOf:
        - $ref: '#/components/schemas/ApiError'
        - $ref: '#/components/schemas/IdempotencyBadRequestError'
    AuthError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              $ref: '#/components/schemas/AuthErrorCode'
            message:
              type: string
              description: Plain-text explanation of the error.
          required:
            - code
            - message
      required:
        - error
      title: Auth Error
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              $ref: '#/components/schemas/ApiErrorCode'
            message:
              type: string
              description: Plain-text explanation of the error.
            orderId:
              type: string
              format: uuid
              description: >-
                The affected order, present only on
                ORDER_RECONCILIATION_REQUIRED; read it back to determine whether
                it reached the venue.
          required:
            - code
            - message
      required:
        - error
      title: API Error
    IdempotencyConflictError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - IDEMPOTENCY_CONFLICT
              example: IDEMPOTENCY_CONFLICT
            message:
              type: string
              example: Idempotency key was reused with a different request body
          required:
            - code
            - message
      required:
        - error
    ProphetXPrice:
      type: string
      description: >-
        Price in dollars per share, greater than 0 and less than 1, with at most
        six decimal places.
      example: '0.413223'
    GtcTimeInForce:
      type: object
      properties:
        type:
          type: string
          enum:
            - GTC
      required:
        - type
      additionalProperties: false
      description: 'Good til cancelled: rest at price until filled or cancelled.'
      title: GoodTillCancelled
    ProphetXFokTimeInForce:
      type: object
      properties:
        type:
          type: string
          enum:
            - FOK
      required:
        - type
      additionalProperties: false
      description: >-
        The venue's fill-or-kill strategy: an order with no match is cancelled
        at the venue after about two seconds.
      title: FillOrKill
    ProphetXGtdTimeInForce:
      type: object
      properties:
        type:
          type: string
          enum:
            - GTD
        expiresAt:
          type: string
          format: date-time
          description: Absolute UTC deadline for cancellation of the remaining stake.
      required:
        - type
        - expiresAt
      additionalProperties: false
      description: >-
        Rests until the stated time, when ParlayX cancels whatever stake is
        still open.
      title: GoodTilDate
    TradingOrderStatus:
      type: string
      enum:
        - PENDING
        - SUBMITTED
        - OPEN
        - FILLED
        - CANCELLED
        - REJECTED
      description: >-
        Order lifecycle status.


        | Status | Meaning |

        | --- | --- |

        | `PENDING` | Accepted, not yet sent to the venue. |

        | `SUBMITTED` | At the venue, outcome not yet known. Either not yet
        acknowledged, or an immediate-or-cancel order acknowledged but not yet
        settled. |

        | `OPEN` | Resting on the venue, and cancellable. |

        | `FILLED` | Fully filled. |

        | `CANCELLED` / `REJECTED` | Terminal. |
      example: OPEN
    IdempotencyBadRequestError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              $ref: '#/components/schemas/IdempotencyBadRequestErrorCode'
            message:
              type: string
          required:
            - code
            - message
      required:
        - error
      title: Idempotency Error
    AuthErrorCode:
      type: string
      enum:
        - UNAUTHORIZED
        - BAD_CONTENT_HASH
        - FORBIDDEN
        - RATE_LIMITED
        - AUTH_UNAVAILABLE
      description: Stable identifier for the error category.
    ApiErrorCode:
      type: string
      enum:
        - INVALID_REQUEST
        - NOT_FOUND
        - INSUFFICIENT_BALANCE
        - IDEMPOTENCY_CONFLICT
        - ORDER_NOT_CANCELLABLE
        - ORDER_RECONCILIATION_REQUIRED
        - RATE_LIMITED
        - INTERNAL_ERROR
      description: Stable identifier for the error category.
    IdempotencyBadRequestErrorCode:
      type: string
      enum:
        - IDEMPOTENCY_KEY_REQUIRED
        - IDEMPOTENCY_KEY_INVALID
      description: Stable identifier for the Idempotency-Key header validation failure.
      example: IDEMPOTENCY_KEY_REQUIRED

````

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