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

# List MA-scoped spacecraft

> Retrieves a paginated list of spacecraft scoped to the MISSION_ANALYSIS environment for the current tenant. Server-side env filter is activated via the /mission-analysis/ URL prefix.



## OpenAPI

````yaml https://api.valar.space/api-docs/mintlify get /mission-analysis/spacecraft
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:
    get:
      tags:
        - Mission Analysis Spacecraft
      summary: List MA-scoped spacecraft
      description: >-
        Retrieves a paginated list of spacecraft scoped to the MISSION_ANALYSIS
        environment for the current tenant. Server-side env filter is activated
        via the /mission-analysis/ URL prefix.
      operationId: listSpacecraft_1
      parameters:
        - description: Lifecycle status filter (Active or Archived)
          example: Active
          in: query
          name: status
          required: false
          schema:
            type: string
        - description: >-
            Include archived spacecraft when status is absent (true=all,
            false=active-only). Ignored when status is set.
          example: false
          in: query
          name: includeArchived
          required: false
          schema:
            type: boolean
        - in: query
          name: pageable
          required: true
          schema:
            $ref: '#/components/schemas/Pageable'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponseSpacecraftSummary'
          description: Spacecraft list retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Invalid request parameters (e.g. unsupported sort field)
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BearerTokenErrorResponse'
          description: Unauthorized - JWT token missing or invalid
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Forbidden - User lacks MA env access or PERM_read:spacecraft
            permission
      security:
        - bearerAuth: []
components:
  schemas:
    Pageable:
      type: object
      properties:
        page:
          minimum: 0
          type: integer
          format: int32
        size:
          minimum: 1
          type: integer
          format: int32
        sort:
          type: array
          items:
            type: string
    PaginatedResponseSpacecraftSummary:
      type: object
      properties:
        content:
          type: array
          description: List of items in the current page
          items:
            $ref: '#/components/schemas/SpacecraftSummary'
        empty:
          type: boolean
          description: Whether the content list is empty
          example: false
        first:
          type: boolean
          description: Whether this is the first page
          example: true
        hasNext:
          type: boolean
          description: Whether there are more pages after this one
          example: true
        hasPrevious:
          type: boolean
          description: Whether there are pages before this one
          example: false
        last:
          type: boolean
          description: Whether this is the last page
          example: false
        page:
          type: integer
          description: Current page number (0-indexed)
          format: int32
          example: 0
        size:
          type: integer
          description: Number of items per page
          format: int32
          example: 20
        totalElements:
          type: integer
          description: Total number of elements across all pages
          format: int64
          example: 150
        totalPages:
          type: integer
          description: Total number of pages
          format: int32
          example: 8
      description: >-
        Paginated response wrapper containing a page of results with navigation
        metadata
    ErrorResponse:
      type: object
      properties:
        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: HTTP status reason phrase or error category
          example: Bad Request
        fieldErrors:
          type: object
          additionalProperties:
            type: string
            description: >-
              Per-field validation error messages, present only for validation
              errors
            nullable: true
          description: >-
            Per-field validation error messages, present only for validation
            errors
          nullable: true
        message:
          type: string
          description: Detailed error message
          example: Validation failed
        path:
          type: string
          description: The request path where the error occurred
          example: /measurements
        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'
    BearerTokenErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: OAuth 2.0 error code
          example: invalid_token
        error_description:
          type: string
          description: Human-readable error description
          example: An error occurred while attempting to decode the Jwt
      description: OAuth 2.0 Bearer Token error response (RFC 6750)
    SpacecraftSummary:
      required:
        - id
        - launchMass
        - lifecycleStatus
        - name
      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 designation
          example: 1990-037B
        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: Dry mass in kilograms
          format: double
          example: 10863
        environment:
          type: string
          description: Environment scope (OPERATIONS or MISSION_ANALYSIS).
          example: MISSION_ANALYSIS
        id:
          type: string
          description: Unique spacecraft UUID
          example: 123e4567-e89b-12d3-a456-426614174000
        inertiaIxx:
          type: number
          description: >-
            Principal moment of inertia about the body's primary principal axis
            (kg·m²). Optional.
          format: double
          example: 1500
        inertiaIyy:
          type: number
          description: >-
            Principal moment of inertia about the body's secondary principal
            axis (kg·m²). Optional.
          format: double
          example: 1700
        inertiaIzz:
          type: number
          description: >-
            Principal moment of inertia about the body's tertiary principal axis
            (kg·m²). Optional.
          format: double
          example: 2100
        launchMass:
          type: number
          description: Launch mass in kilograms
          format: double
          example: 11110
        lifecycleStatus:
          type: string
          description: Lifecycle status (Active or Archived)
          example: Active
        name:
          type: string
          description: Spacecraft name
          example: Hubble Space Telescope
        noradId:
          type: string
          description: NORAD catalog number
          example: '20580'
        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. 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, computed from edge +
            sides. 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, computed from
            edge + sides. Populated only when bodyShape=REGULAR_PRISM; null
            otherwise.
          format: double
          example: 0.866025
        prismDiameterMeasure:
          type: string
          description: >-
            Diameter datum the operator used. 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. Populated only
            when bodyShape=REGULAR_PRISM; null otherwise.
          format: double
          example: 0.5
        prismHeightM:
          type: number
          description: >-
            Regular-prism height L in meters. Populated only when
            bodyShape=REGULAR_PRISM; null otherwise.
          format: double
          example: 1
        prismSides:
          type: integer
          description: >-
            Number of regular-polygon sides N. 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
      description: Simplified spacecraft information for listing
    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

````