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

# Create maneuvers atomically



## OpenAPI

````yaml https://api.valar.space/api-docs/mintlify post /operations/maneuvers
openapi: 3.0.1
info:
  contact:
    email: api@valar.space
    name: Valar Space
    url: https://valar.space
  description: >-
    <H4>Welcome to the documentation for the Valar Operations API, here are some
    quick tips if you just landed!</H4><ol><li> The top level elements are the
    <b>Resources</b> accessible via the API and the different queries used to
    interact with each resource via the appropriate HTTP method call.</li><li>
    You can expand each method to get further information on the expected input
    parameters and the different responses that can be received.</li><li>For
    both the input parameters and responses, an <b>Example</b> is present for
    clarification.</li><li>For further details, the example snipped can be
    switched to <b>Schema</b> view, where a detailed explanation of each element
    can be found.</li><li>The <b>Try it out</b> button can be used to call the
    API directly from the documentation page, which allows for some easy testing
    and also provides the equivalent 'curl' command line code for easy
    portability of the call execution.</li><li><b>Before starting</b>, select
    <b>Authorize</b> and enter your API key. The key is sent as a bearer token
    in the <code>Authorization</code> header.</li></ol>
  title: API Documentation
  version: 1.0.0
servers:
  - url: https://api.valar.space
    description: VALAR API Server
  - url: https://api.valar.space
    description: API Server
security:
  - apiKeyAuth: []
tags:
  - description: >-
      Operations for managing state vectors — listing, importing, exporting, and
      deleting spacecraft state data
    name: State Vectors
  - description: Register, list, read, update, and manage the lifecycle of your spacecraft.
    name: Spacecraft
  - description: Manage the thrusters mounted on a spacecraft.
    name: Thrusters
  - description: Manage the payloads (sensors) mounted on a spacecraft.
    name: Payloads
  - description: >-
      Maneuver API 2.0.0: create, read, edit, delete, import, and export
      spacecraft maneuvers.
    name: Maneuvers
paths:
  /operations/maneuvers:
    post:
      tags:
        - Maneuvers
      summary: Create maneuvers atomically
      operationId: createOperationsManeuvers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateManeuverRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateManeuverResponse'
          description: Maneuvers created
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Duplicate identity or overlapping maneuver
      security:
        - apiKeyAuth: []
components:
  schemas:
    CreateManeuverRequest:
      required:
        - maneuvers
      type: object
      properties:
        maneuvers:
          type: array
          description: The maneuvers to create
          items:
            $ref: '#/components/schemas/CreateManeuverInput'
    CreateManeuverResponse:
      type: object
      properties:
        createdCount:
          type: integer
          description: The number of maneuvers created
          format: int32
          example: 1
        message:
          type: string
          description: A short status message
          example: Maneuvers created
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Stable frontend-dictionary error code
          nullable: true
          example: import.tracking.tdm.parse_failed
        correlationId:
          type: string
          description: Server-generated opaque identifier for support correlation
          nullable: true
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        details:
          type: object
          additionalProperties:
            type: object
            description: Structured error details with scenario-specific context fields
            nullable: true
          description: Structured error details with scenario-specific context fields
          nullable: true
        error:
          type: string
          description: The HTTP status reason phrase or exception-handler code
          example: Bad Request
        fieldErrors:
          type: object
          additionalProperties:
            type: string
            description: Field-level validation errors (field name to error message)
          description: Field-level validation errors (field name to error message)
        message:
          type: string
          description: Detailed error message
          example: Invalid spacecraft ID format
        params:
          type: object
          additionalProperties:
            type: string
            description: Per-key allowlisted structured params for frontend rendering
            nullable: true
          description: Per-key allowlisted structured params for frontend rendering
          nullable: true
        path:
          type: string
          description: The request path where the error occurred
          example: /api/v1/stm/credentials
        status:
          type: integer
          description: The HTTP status code
          format: int32
          example: 400
        timestamp:
          type: string
          description: The timestamp when the error occurred
          format: date-time
          example: '2025-11-14T10:15:30.123Z'
      description: Standard API error response
    CreateManeuverInput:
      required:
        - attitudeMode
        - composition
        - name
        - spacecraftId
      type: object
      properties:
        attitudeMode:
          type: string
          description: The attitude mode
          example: RSW_ROTATING
        composition:
          type: array
          description: The burn-segment composition
          items:
            $ref: '#/components/schemas/ManeuverCompositionInput'
        name:
          maxLength: 63
          minLength: 0
          type: string
          description: The maneuver name
          example: MAN-001
        purpose:
          type: string
          description: The maneuver purpose
          example: '[ORBIT]'
        spacecraftId:
          type: string
          description: >-
            The VALAR spacecraft ID returned by GET /operations/spacecraft; not
            a name, NORAD, or COSPAR ID
          example: 5c58fd70-e08c-47bb-9e84-8c678bd5d1c6
      description: The maneuvers to create
    ManeuverCompositionInput:
      required:
        - attitudeMode
        - duration
        - referenceEpoch
        - thrISP
        - thrX
        - thrY
        - thrZ
      type: object
      properties:
        accX:
          type: number
          description: Read-only acceleration X [m/s^2]; null when unavailable
          format: double
          nullable: true
          readOnly: true
        accY:
          type: number
          description: Read-only acceleration Y [m/s^2]; null when unavailable
          format: double
          nullable: true
          readOnly: true
        accZ:
          type: number
          description: Read-only acceleration Z [m/s^2]; null when unavailable
          format: double
          nullable: true
          readOnly: true
        attitudeMode:
          type: string
          description: >-
            Supported local orbital reference frame, such as TNW, RTN, QSW or
            RSW_ROTATING; unknown and inertial frames are rejected
          example: RSW_ROTATING
        deltaMass:
          type: number
          description: Read-only delta mass [kg]; null when unavailable
          format: double
          nullable: true
          readOnly: true
        duration:
          type: number
          description: Duration of the burn segment in seconds
          format: double
          example: 600
        dvX:
          type: number
          description: Read-only delta-V X [m/s]; null when unavailable
          format: double
          nullable: true
          readOnly: true
        dvY:
          type: number
          description: Read-only delta-V Y [m/s]; null when unavailable
          format: double
          nullable: true
          readOnly: true
        dvZ:
          type: number
          description: Read-only delta-V Z [m/s]; null when unavailable
          format: double
          nullable: true
          readOnly: true
        referenceEpoch:
          type: string
          description: Reference epoch of the burn segment (ISO-8601)
          format: date-time
          example: '2024-01-01T00:01:40Z'
        thrISP:
          maximum: 10000
          exclusiveMaximum: false
          minimum: 50
          exclusiveMinimum: false
          type: number
          description: Thrust ISP [s]
          format: double
        thrX:
          type: number
          description: Thrust X axis [N]
          format: double
        thrY:
          type: number
          description: Thrust Y axis [N]
          format: double
        thrZ:
          type: number
          description: Thrust Z axis [N]
          format: double
  securitySchemes:
    apiKeyAuth:
      description: 'API Key (format: vsp_sk_...)'
      scheme: bearer
      type: http

````