> ## 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.

# Import OCM burns into a Flight Plan phase

> spacecraftId and phaseId are required; obtain phaseId from import-destinations. Records and phase association commit atomically per file. Already-stored or repeated identities are rejected with MANEUVER_DUPLICATE_IDENTITY; temporal overlaps use MANEUVER_CONFLICT. No overwrite or automatic replacement occurs. Remove duplicate file entries; to correct stored data, explicitly delete the record before importing corrected OCM. Successful files in a mixed batch remain committed.



## OpenAPI

````yaml https://api.valar.space/api-docs/mintlify post /operations/maneuvers/import
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 4.0.0: import and export spacecraft maneuvers using CCSDS
      OCM, and delete stored maneuvers.
    name: Maneuvers
paths:
  /operations/maneuvers/import:
    post:
      tags:
        - Maneuvers
      summary: Import OCM burns into a Flight Plan phase
      description: >-
        spacecraftId and phaseId are required; obtain phaseId from
        import-destinations. Records and phase association commit atomically per
        file. Already-stored or repeated identities are rejected with
        MANEUVER_DUPLICATE_IDENTITY; temporal overlaps use MANEUVER_CONFLICT. No
        overwrite or automatic replacement occurs. Remove duplicate file
        entries; to correct stored data, explicitly delete the record before
        importing corrected OCM. Successful files in a mixed batch remain
        committed.
      operationId: importOperationsManeuvers
      parameters:
        - in: header
          name: X-Content-Hash
          required: false
          schema:
            type: string
        - in: header
          name: X-Resolution-Fingerprint
          required: false
          schema:
            type: string
        - in: query
          name: spacecraftId
          required: true
          schema:
            type: string
        - in: query
          name: phaseId
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                files:
                  type: array
                  items:
                    type: string
                    format: binary
              required:
                - files
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManeuverImportResultResponse'
          description: All files imported
        '207':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManeuverImportResultResponse'
          description: Per-file results; each file is atomic
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: No files imported; duplicate identity or temporal conflict
      security:
        - apiKeyAuth: []
components:
  schemas:
    ManeuverImportResultResponse:
      type: object
      properties:
        failureCount:
          type: integer
          description: The number of items that failed to import
          format: int32
          example: 1
        results:
          type: array
          description: The individual results for each item in the batch
          items:
            $ref: '#/components/schemas/ManeuverImportItemResult'
        successCount:
          type: integer
          description: The number of successfully imported items
          format: int32
          example: 3
        totalCount:
          type: integer
          description: The total number of items processed
          format: int32
          example: 4
    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
    ManeuverImportItemResult:
      type: object
      properties:
        ambiguousTargets:
          type: array
          description: >-
            Ambiguous target details when errorCode is
            AMBIGUOUS_SPACECRAFT_MATCH
          nullable: true
          items:
            $ref: '#/components/schemas/AmbiguousTargetDetail'
        errorCode:
          type: string
          description: The error code if the item failed
          nullable: true
          example: MANEUVER_IMPORT_ERROR
        filename:
          type: string
          description: The name of the imported item (upload filename)
          example: maneuvers.ocm
        message:
          type: string
          description: A message describing the result
          example: Imported successfully
        status:
          type: string
          description: The status of the item
          example: success
          enum:
            - success
            - error
      description: The individual results for each item in the batch
    AmbiguousTargetDetail:
      type: object
      properties:
        candidates:
          type: array
          description: The candidate spacecraft that matched
          items:
            $ref: '#/components/schemas/TargetCandidate'
        identifier:
          type: string
          description: The ambiguous identifier
          example: '52771'
      description: Detail for an ambiguous target resolution
      nullable: true
    TargetCandidate:
      type: object
      properties:
        id:
          type: string
          description: Spacecraft canonical id
          example: SC-200
        identifierType:
          type: string
          description: Which identifier type matched
          enum:
            - NORAD_ID
            - COSPAR_ID
            - NAME
            - INTERNAL_ID
            - UNKNOWN
        identifierValue:
          type: string
          description: The identifier value that matched
          example: '43205'
        name:
          type: string
          description: Spacecraft display name
          nullable: true
      description: A candidate spacecraft that matched an identifier
  securitySchemes:
    apiKeyAuth:
      description: 'API Key (format: vsp_sk_...)'
      scheme: bearer
      type: http

````

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