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

# Get MA-scoped spacecraft by identifier

> Retrieves a spacecraft scoped to the MISSION_ANALYSIS environment by any identifier (UUID, NORAD, COSPAR, or name). Returns 404 if the row lives in a different environment.



## OpenAPI

````yaml https://api.valar.space/api-docs/mintlify get /mission-analysis/spacecraft/{id}
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>, remember
    to use the token endpoint and activate the token with the <b>Authorize</b>
    button.</li></ol>
  title: API Documentation
  version: 1.0.0
servers:
  - url: /
    description: Default Server URL
  - url: https://api.valar.space
    description: API Server
security:
  - apiKeyAuth: []
tags:
  - description: >-
      Env-scoped thruster CRUD for the MISSION_ANALYSIS environment
      (EnvironmentFilter activates server-side via the /mission-analysis/ URL
      prefix).
    name: Mission Analysis Thrusters
  - description: >-
      Operations for managing state vectors — listing, importing, exporting, and
      deleting spacecraft state data
    name: State Vectors
  - description: >-
      Env-scoped spacecraft writes for the OPERATIONS environment
      (EnvironmentFilter activates server-side via the /operations/ URL prefix).
    name: Operations Spacecraft (write)
  - description: >-
      Env-scoped per-item payload (sensor) CRUD for the MISSION_ANALYSIS
      environment (EnvironmentFilter activates server-side via the
      /mission-analysis/ URL prefix).
    name: Mission Analysis Payloads
  - description: >-
      Env-scoped thruster CRUD for the OPERATIONS environment (EnvironmentFilter
      activates server-side via the /operations/ URL prefix).
    name: Operations Thrusters
  - description: >-
      Env-scoped spacecraft reads for the MISSION_ANALYSIS environment
      (EnvironmentFilter activates server-side via the /mission-analysis/ URL
      prefix).
    name: Mission Analysis Spacecraft
  - description: >-
      Env-scoped spacecraft reads for the OPERATIONS environment
      (EnvironmentFilter activates server-side via the /operations/ URL prefix).
    name: Operations Spacecraft
  - description: >-
      Env-scoped per-item payload (sensor) CRUD for the OPERATIONS environment
      (EnvironmentFilter activates server-side via the /operations/ URL prefix).
    name: Operations Payloads
  - description: >-
      Env-scoped spacecraft writes for the MISSION_ANALYSIS environment
      (EnvironmentFilter activates server-side via the /mission-analysis/ URL
      prefix).
    name: Mission Analysis Spacecraft (write)
paths:
  /mission-analysis/spacecraft/{id}:
    get:
      tags:
        - Mission Analysis Spacecraft
      summary: Get MA-scoped spacecraft by identifier
      description: >-
        Retrieves a spacecraft scoped to the MISSION_ANALYSIS environment by any
        identifier (UUID, NORAD, COSPAR, or name). Returns 404 if the row lives
        in a different environment.
      operationId: getSpacecraft_1
      parameters:
        - description: Spacecraft identifier (UUID)
          example: 12345
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpacecraftResponse'
          description: Spacecraft retrieved successfully
        '401':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpacecraftResponse'
          description: Unauthorized - JWT token missing or invalid
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpacecraftResponse'
          description: >-
            Forbidden - User lacks MA env access or PERM_read:spacecraft
            permission
        '404':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpacecraftResponse'
          description: Spacecraft not found in MA scope
      security:
        - bearerAuth: []
components:
  schemas:
    SpacecraftResponse:
      type: object
      properties:
        absorption:
          type: number
          description: Optical absorption coefficient α (dimensionless). Range (0.0, 1.0].
          format: double
          example: 0.4
        bodyShape:
          type: string
          description: Body geometry primitive (BOX or REGULAR_PRISM).
          example: BOX
          enum:
            - BOX
            - REGULAR_PRISM
        boxX:
          type: number
          description: Spacecraft box/bus X dimension (width) in meters
          format: double
          example: 1.5
        boxY:
          type: number
          description: Spacecraft box/bus Y dimension (height) in meters
          format: double
          example: 1
        boxZ:
          type: number
          description: Spacecraft box/bus Z dimension (length) in meters
          format: double
          example: 2
        color:
          type: string
          description: Spacecraft color in hex format
          example: '#FF5733'
        cosparId:
          type: string
          description: COSPAR international designator
          example: 2024-001A
        createdAt:
          type: string
          description: Timestamp when the spacecraft was created
          format: date-time
        dragArea:
          type: number
          description: >-
            Operator-typed drag cross-sectional area in m² (null for
            pre-migration spacecraft)
          format: double
          example: 5
        dragCoefficient:
          type: number
          description: Drag coefficient
          format: double
          example: 2.2
        dryMass:
          type: number
          description: Mass without propellant in kg
          format: double
          example: 450
        environment:
          type: string
          description: >-
            Environment scope of this spacecraft (OPERATIONS or
            MISSION_ANALYSIS).
          example: MISSION_ANALYSIS
        id:
          type: string
          description: Unique identifier of the spacecraft
          example: 550e8400-e29b-41d4-a716-446655440000
        inertiaIxx:
          type: number
          description: >-
            Principal moment of inertia about the body's primary principal axis
            (kg·m²). Optional; null when inertia is not configured.
          format: double
          example: 1500
        inertiaIyy:
          type: number
          description: >-
            Principal moment of inertia about the body's secondary principal
            axis (kg·m²). Optional; null when inertia is not configured.
          format: double
          example: 1700
        inertiaIzz:
          type: number
          description: >-
            Principal moment of inertia about the body's tertiary principal axis
            (kg·m²). Optional; null when inertia is not configured.
          format: double
          example: 2100
        launchMass:
          type: number
          description: Total mass at launch in kg
          format: double
          example: 500
        lifecycleStatus:
          type: string
          description: Lifecycle status of the spacecraft
          example: Active
        name:
          type: string
          description: Name of the spacecraft
          example: Sentinel-1A
        noradId:
          type: integer
          description: NORAD catalog number
          format: int32
          example: 43013
        organizationId:
          type: string
          description: Organization ID that owns this spacecraft
          example: VALAR
        panels:
          type: array
          description: >-
            Per-panel rows (0..8). Each entry carries dimensions, attachment
            face, and orientation angles.
          items:
            $ref: '#/components/schemas/PanelResponse'
        prismAxis:
          type: string
          description: >-
            Extrusion axis of the regular prism (DKR-1 §3.4). Populated only
            when bodyShape=REGULAR_PRISM; null otherwise.
          example: Z
          enum:
            - X
            - 'Y'
            - Z
        prismComplementaryDiameter:
          type: number
          description: >-
            Cross-section diameter in the OTHER datum (the complement of
            prismDiameterMeasure), computed from edge + sides (DKR-1 §3.4).
            Populated only when bodyShape=REGULAR_PRISM; null otherwise.
          format: double
          example: 1
        prismDiameter:
          type: number
          description: >-
            Cross-section diameter in the operator's chosen datum
            (prismDiameterMeasure), computed from edge + sides (DKR-1 §3.4).
            Populated only when bodyShape=REGULAR_PRISM; null otherwise.
          format: double
          example: 0.866025
        prismDiameterMeasure:
          type: string
          description: >-
            Which diameter datum the operator used to size the cross-section
            (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null
            otherwise.
          example: INSCRIBED
          enum:
            - INSCRIBED
            - CIRCUMSCRIBED
        prismEdgeM:
          type: number
          description: >-
            Canonical regular-polygon edge length a in meters (DKR-1 §6) — the
            persisted source-of-truth cross-section dimension. Populated only
            when bodyShape=REGULAR_PRISM; null otherwise.
          format: double
          example: 0.5
        prismHeightM:
          type: number
          description: >-
            Regular-prism height L along the extrusion axis in meters. Populated
            only when bodyShape=REGULAR_PRISM; null otherwise.
          format: double
          example: 1
        prismSides:
          type: integer
          description: >-
            Number of regular-polygon sides N (DKR-1 §3.4). Populated only when
            bodyShape=REGULAR_PRISM; null otherwise.
          format: int32
          example: 6
        reflectivityCoefficient:
          type: number
          description: Reflectivity coefficient
          format: double
          example: 1
        specularReflection:
          type: number
          description: >-
            Optical specular-reflection coefficient ρs (dimensionless). Range
            [0.0, 1.0).
          format: double
          example: 0.3
        srpArea:
          type: number
          description: >-
            Operator-typed SRP cross-sectional area in m² (null for
            pre-migration spacecraft)
          format: double
          example: 5
        updatedAt:
          type: string
          description: Timestamp when the spacecraft was last updated
          format: date-time
      description: Response containing spacecraft details
    PanelResponse:
      type: object
      properties:
        absorption:
          type: number
          description: Per-panel optical absorption coefficient α (dimensionless).
          format: double
          example: 0.3
        derivedNormal:
          $ref: '#/components/schemas/DerivedNormal'
        doubleSided:
          type: boolean
          description: Whether the panel contributes drag / SRP area on both faces.
          example: true
        lengthM:
          type: number
          description: Plate length (along the panel's local L axis) in meters.
          format: double
          example: 2
        mountAxisCustomX:
          type: number
          description: >-
            X component of the custom mount-axis direction; null unless
            mountAxisPreset = CUSTOM.
          format: double
          example: 0
        mountAxisCustomY:
          type: number
          description: >-
            Y component of the custom mount-axis direction; null unless
            mountAxisPreset = CUSTOM.
          format: double
          example: 0
        mountAxisCustomZ:
          type: number
          description: >-
            Z component of the custom mount-axis direction; null unless
            mountAxisPreset = CUSTOM.
          format: double
          example: 5
        mountAxisPreset:
          type: string
          description: Body-frame mount axis the panel is oriented along.
          example: PLUS_Z
          enum:
            - PLUS_X
            - MINUS_X
            - PLUS_Y
            - MINUS_Y
            - PLUS_Z
            - MINUS_Z
            - CUSTOM
        mountPositionX:
          type: number
          description: Mount-point X coordinate in the spacecraft body frame (meters).
          format: double
          example: -1.5
        mountPositionY:
          type: number
          description: Mount-point Y coordinate in the spacecraft body frame (meters).
          format: double
          example: 0
        mountPositionZ:
          type: number
          description: Mount-point Z coordinate in the spacecraft body frame (meters).
          format: double
          example: 0.25
        name:
          type: string
          description: Operator-facing panel name.
          example: Port array
        panelIndex:
          type: integer
          description: Zero-based panel slot index within the spacecraft.
          format: int32
          example: 0
        rotationDeg:
          type: number
          description: Rotation about the mount axis (degrees). Range [0°, 360°).
          format: double
          example: 90
        specularReflection:
          type: number
          description: >-
            Per-panel optical specular-reflection coefficient ρs
            (dimensionless).
          format: double
          example: 0.2
        widthM:
          type: number
          description: Plate width (along the panel's local W axis) in meters.
          format: double
          example: 1
      description: >-
        One independent solar / radiator panel with its server-derived outward
        normal (DKR-1 §2 / §3.1).
    DerivedNormal:
      type: object
      properties:
        x:
          type: number
          description: Body-frame X component.
          format: double
          example: 1
        'y':
          type: number
          description: Body-frame Y component.
          format: double
          example: 0
        z:
          type: number
          description: Body-frame Z component.
          format: double
          example: 0
      description: A body-frame outward unit-normal triple {x, y, z}.
  securitySchemes:
    apiKeyAuth:
      description: 'API Key (format: vsp_sk_...)'
      scheme: bearer
      type: http

````