TheSpaceDevs LL2 API Spacecraft API

The Spacecraft API from TheSpaceDevs LL2 API — 12 operation(s) for spacecraft.

Operations 12

GET /2.3.0/config/spacecraft_configuration_types/ List Spacecraft Configuration Types #
GET /2.3.0/config/spacecraft_configuration_types/{id}/ Get Spacecraft Configuration Type #
GET /2.3.0/config/spacecraft_statuses/ List Spacecraft Statuses #
GET /2.3.0/config/spacecraft_statuses/{id}/ Get Spacecraft Status #
GET /2.3.0/spacecraft/ List Spacecraft #
GET /2.3.0/spacecraft/{id}/ Get Spacecraft #
GET /2.3.0/spacecraft_configuration_families/ List Spacecraft Configuration Families #
GET /2.3.0/spacecraft_configuration_families/{id}/ Get Spacecraft Configuration Family #
GET /2.3.0/spacecraft_configurations/ List Spacecraft Configurations #
GET /2.3.0/spacecraft_configurations/{id}/ Get Spacecraft Configuration #
GET /2.3.0/spacecraft_flights/ List Spacecraft Flights #
GET /2.3.0/spacecraft_flights/{id}/ Get Spacecraft Flight #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/thespacedevs-ll2-api-spacecraft-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

thespacedevs-ll2-api-spacecraft-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TheSpaceDevs LL2 Spacecraft API
  version: v2.3.0
  description: Rocket launches, space events and crewed spaceflight. The Launch Library 2 API is the official successor of the popular Launch Library API. It keeps its core features whilst also including everything the broader Space Launch Now API had to offer. The result is a large database delivering a more complete experience for each rocket launch and ...
  license:
    name: Apache License 2.0
servers:
- url: https://ll.thespacedevs.com/
  description: Production API (� rate-limited)
- url: https://lldev.thespacedevs.com/
  description: Development API (stale and limited data, for development testing only)
tags:
- name: Spacecraft
paths:
  /2.3.0/config/spacecraft_configuration_types/:
    get:
      operationId: config_spacecraft_configuration_types_list
      summary: List Spacecraft Configuration Types
      description: '#### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/config/spacecraft_configuration_types/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/config/spacecraft_configuration_types/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSpacecraftConfigTypeList'
          description: ''
  /2.3.0/config/spacecraft_configuration_types/{id}/:
    get:
      operationId: config_spacecraft_configuration_types_retrieve
      summary: Get Spacecraft Configuration Type
      description: '#### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/config/spacecraft_configuration_types/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/config/spacecraft_configuration_types/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Spacecraft Configuration Type.
        required: true
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpacecraftConfigType'
          description: ''
  /2.3.0/config/spacecraft_statuses/:
    get:
      operationId: config_spacecraft_statuses_list
      summary: List Spacecraft Statuses
      description: '#### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/config/spacecraft_statuses/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/config/spacecraft_statuses/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSpacecraftStatusList'
          description: ''
  /2.3.0/config/spacecraft_statuses/{id}/:
    get:
      operationId: config_spacecraft_statuses_retrieve
      summary: Get Spacecraft Status
      description: '#### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/config/spacecraft_statuses/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/config/spacecraft_statuses/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Spacecraft Status.
        required: true
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpacecraftStatus'
          description: ''
  /2.3.0/spacecraft/:
    get:
      operationId: spacecraft_list
      summary: List Spacecraft
      description: '#### Modes

        Levels of detail in the response - `normal`, `detailed`


        Example - [/spacecraft/?mode=detailed](./?mode=detailed)


        #### Filters

        Parameters - `in_space`, `is_placeholder`, `name`, `spacecraft_config`, `status`


        Example - [/spacecraft/?is_placeholder=True](./?is_placeholder=True)


        #### Search

        Fields searched - `name`, `spacecraft_config__name`


        Example - [/spacecraft/?search=Endeavour](./?search=Endeavour)


        #### Ordering

        Fields - `flights_count`, `id`, `mission_ends_count`, `time_docked`, `time_in_space`


        Example - [/spacecraft/?ordering=-flights_count](./?ordering=-flights_count)


        #### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/spacecraft/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/spacecraft/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - in: query
        name: in_space
        schema:
          type: boolean
      - in: query
        name: is_placeholder
        schema:
          type: boolean
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: mode
        schema:
          type: string
          enum:
          - detailed
          - normal
        description: Level of detail in the response.
      - in: query
        name: name
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - in: query
        name: spacecraft_config
        schema:
          type: integer
      - in: query
        name: status
        schema:
          type: integer
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPolymorphicSpacecraftEndpointList'
          description: ''
  /2.3.0/spacecraft/{id}/:
    get:
      operationId: spacecraft_retrieve
      summary: Get Spacecraft
      description: '#### Modes

        Levels of detail in the response - `normal`, `detailed`


        Example - [/spacecraft/?mode=detailed](./?mode=detailed)


        #### Filters

        Parameters - `in_space`, `is_placeholder`, `name`, `spacecraft_config`, `status`


        Example - [/spacecraft/?is_placeholder=True](./?is_placeholder=True)


        #### Search

        Fields searched - `name`, `spacecraft_config__name`


        Example - [/spacecraft/?search=Endeavour](./?search=Endeavour)


        #### Ordering

        Fields - `flights_count`, `id`, `mission_ends_count`, `time_docked`, `time_in_space`


        Example - [/spacecraft/?ordering=-flights_count](./?ordering=-flights_count)


        #### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/spacecraft/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/spacecraft/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Spacecraft.
        required: true
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpacecraftEndpointDetailed'
          description: ''
  /2.3.0/spacecraft_configuration_families/:
    get:
      operationId: spacecraft_configuration_families_list
      summary: List Spacecraft Configuration Families
      description: '#### Modes

        Levels of detail in the response - `list`, `normal`, `detailed`


        Example - [/spacecraft_configuration_families/?mode=list](./?mode=list)


        #### Filters

        Parameters - `manufacturer`, `name`


        Example - [/spacecraft_configuration_families/?manufacturer=121](./?manufacturer=121)


        #### Search

        Fields searched - `manufacturer__abbrev`, `manufacturer__name`, `name`


        Example - [/spacecraft_configuration_families/?search=Northrop](./?search=Northrop)


        #### Ordering

        Fields - `name`


        Example - [/spacecraft_configuration_families/?ordering=name](./?ordering=name)


        #### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/spacecraft_configuration_families/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/spacecraft_configuration_families/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: manufacturer
        schema:
          type: integer
      - in: query
        name: mode
        schema:
          type: string
          enum:
          - detailed
          - list
          - normal
        description: Level of detail in the response.
      - in: query
        name: name
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPolymorphicSpacecraftConfigFamilyEndpointList'
          description: ''
  /2.3.0/spacecraft_configuration_families/{id}/:
    get:
      operationId: spacecraft_configuration_families_retrieve
      summary: Get Spacecraft Configuration Family
      description: '#### Modes

        Levels of detail in the response - `list`, `normal`, `detailed`


        Example - [/spacecraft_configuration_families/?mode=list](./?mode=list)


        #### Filters

        Parameters - `manufacturer`, `name`


        Example - [/spacecraft_configuration_families/?manufacturer=121](./?manufacturer=121)


        #### Search

        Fields searched - `manufacturer__abbrev`, `manufacturer__name`, `name`


        Example - [/spacecraft_configuration_families/?search=Northrop](./?search=Northrop)


        #### Ordering

        Fields - `name`


        Example - [/spacecraft_configuration_families/?ordering=name](./?ordering=name)


        #### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/spacecraft_configuration_families/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/spacecraft_configuration_families/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Spacecraft Configuration Family.
        required: true
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpacecraftConfigFamilyEndpointDetailed'
          description: ''
  /2.3.0/spacecraft_configurations/:
    get:
      operationId: spacecraft_configurations_list
      summary: List Spacecraft Configurations
      description: '#### Modes

        Levels of detail in the response - `normal`, `detailed`


        Example - [/spacecraft_configurations/?mode=detailed](./?mode=detailed)


        #### Filters

        Parameters - `agency`, `human_rated`, `in_use`, `name`


        Example - [/spacecraft_configurations/?human_rated=True](./?human_rated=True)


        #### Search

        Fields searched - `agency__abbrev`, `agency__name`, `name`


        Example - [/spacecraft_configurations/?search=Dragon](./?search=Dragon)


        #### Ordering

        Fields - `name`


        Example - [/spacecraft_configurations/?ordering=name](./?ordering=name)


        #### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/spacecraft_configurations/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/spacecraft_configurations/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - in: query
        name: agency
        schema:
          type: integer
      - in: query
        name: human_rated
        schema:
          type: boolean
      - in: query
        name: in_use
        schema:
          type: boolean
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: mode
        schema:
          type: string
          enum:
          - detailed
          - normal
        description: Level of detail in the response.
      - in: query
        name: name
        schema:
          type: string
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPolymorphicSpacecraftConfigurationEndpointList'
          description: ''
  /2.3.0/spacecraft_configurations/{id}/:
    get:
      operationId: spacecraft_configurations_retrieve
      summary: Get Spacecraft Configuration
      description: '#### Modes

        Levels of detail in the response - `normal`, `detailed`


        Example - [/spacecraft_configurations/?mode=detailed](./?mode=detailed)


        #### Filters

        Parameters - `agency`, `human_rated`, `in_use`, `name`


        Example - [/spacecraft_configurations/?human_rated=True](./?human_rated=True)


        #### Search

        Fields searched - `agency__abbrev`, `agency__name`, `name`


        Example - [/spacecraft_configurations/?search=Dragon](./?search=Dragon)


        #### Ordering

        Fields - `name`


        Example - [/spacecraft_configurations/?ordering=name](./?ordering=name)


        #### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/spacecraft_configurations/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/spacecraft_configurations/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Spacecraft Configuration.
        required: true
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpacecraftConfigDetailed'
          description: ''
  /2.3.0/spacecraft_flights/:
    get:
      operationId: spacecraft_flights_list
      summary: List Spacecraft Flights
      description: '#### Modes

        Levels of detail in the response - `normal`, `detailed`


        Example - [/spacecraft_flights/?mode=detailed](./?mode=detailed)


        #### Filters

        Parameters - `spacecraft`


        Example - [/spacecraft_flights/?spacecraft=289](./?spacecraft=289)


        #### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/spacecraft_flights/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/spacecraft_flights/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: mode
        schema:
          type: string
          enum:
          - detailed
          - normal
        description: Level of detail in the response.
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - in: query
        name: spacecraft
        schema:
          type: integer
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPolymorphicSpacecraftFlightEndpointList'
          description: ''
  /2.3.0/spacecraft_flights/{id}/:
    get:
      operationId: spacecraft_flights_retrieve
      summary: Get Spacecraft Flight
      description: '#### Modes

        Levels of detail in the response - `normal`, `detailed`


        Example - [/spacecraft_flights/?mode=detailed](./?mode=detailed)


        #### Filters

        Parameters - `spacecraft`


        Example - [/spacecraft_flights/?spacecraft=289](./?spacecraft=289)


        #### Number of results

        Use `limit` to control the number of objects in the response (max 100)


        Example - [/spacecraft_flights/?limit=2](./?limit=2)


        #### Format

        Switch to JSON output - [/spacecraft_flights/?format=json](./?format=json)


        #### Help

        Find all the FAQs and support links on the documentation homepage - [ll.thespacedevs.com/docs](https://ll.thespacedevs.com/docs/)'
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Spacecraft Flight.
        required: true
      tags:
      - Spacecraft
      security:
      - cookieAuth: []
      - Token_Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpacecraftFlightDetailed'
          description: ''
components:
  schemas:
    AstronautRole:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        role:
          type: string
          maxLength: 255
        priority:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
      required:
      - id
      - role
    ImageLicense:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        priority:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        link:
          type:
          - string
          - 'null'
          format: uri
          maxLength: 200
      required:
      - id
    AgencyType:
      type: object
      properties:
        id:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        name:
          type: string
          maxLength: 255
      required:
      - id
    SpacecraftConfigNormal:
      type: object
      properties:
        response_mode:
          type: string
          readOnly: true
          default: normal
        id:
          type: integer
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 200
        type:
          $ref: '#/components/schemas/SpacecraftConfigType'
        agency:
          $ref: '#/components/schemas/AgencyMini'
        family:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/SpacecraftConfigFamilyNormal'
        in_use:
          type: boolean
        image:
          allOf:
          - $ref: '#/components/schemas/Image'
      required:
      - agency
      - family
      - id
      - image
      - name
      - response_mode
      - type
      - url
    SpacecraftFlightDetailed:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        destination:
          type:
          - string
          - 'null'
          maxLength: 255
        mission_end:
          type:
          - string
          - 'null'
          format: date-time
        spacecraft:
          $ref: '#/components/schemas/SpacecraftDetailed'
        launch:
          $ref: '#/components/schemas/LaunchNormal'
        landing:
          $ref: '#/components/schemas/Landing'
        duration:
          type: string
          readOnly: true
        turn_around_time:
          type: string
          readOnly: true
        response_mode:
          type: string
          readOnly: true
          default: detailed
        launch_crew:
          type: array
          items:
            $ref: '#/components/schemas/AstronautFlight'
        onboard_crew:
          type: array
          items:
            $ref: '#/components/schemas/AstronautFlight'
        landing_crew:
          type: array
          items:
            $ref: '#/components/schemas/AstronautFlight'
        docking_events:
          type: array
          items:
            $ref: '#/components/schemas/DockingEventForChaserNormal'
      required:
      - docking_events
      - duration
      - id
      - landing
      - landing_crew
      - launch
      - launch_crew
      - onboard_crew
      - response_mode
      - spacecraft
      - turn_around_time
      - url
    SpaceStationMini:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 255
        image:
          allOf:
          - $ref: '#/components/schemas/Image'
      required:
      - id
      - image
      - name
      - url
    PaginatedSpacecraftStatusList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/SpacecraftStatus'
    InfoURLType:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
      required:
      - id
      - name
    PolymorphicSpacecraftEndpoint:
      oneOf:
      - $ref: '#/components/schemas/SpacecraftNormal'
      - $ref: '#/components/schemas/SpacecraftEndpointDetailed'
      discriminator:
        propertyName: response_mode
        mapping:
          normal: '#/components/schemas/SpacecraftNormal'
          detailed: '#/components/schemas/SpacecraftEndpointDetailed'
    SpacecraftConfigFamilyMini:
      type: object
      properties:
        response_mode:
          type: string
          readOnly: true
          default: list
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
      required:
      - id
      - name
      - response_mode
    SocialMediaLink:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        social_media:
          $ref: '#/components/schemas/SocialMedia'
        url:
          type:
          - string
          - 'null'
          format: uri
      required:
      - id
      - social_media
      - url
    Landing:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        attempt:
          type: boolean
        success:
          type:
          - boolean
          - 'null'
        description:
          type: string
          maxLength: 2048
        downrange_distance:
          type:
          - number
          - 'null'
          format: double
          title: Downrange distance (km)
        landing_location:
          $ref: '#/components/schemas/LandingLocation'
        type:
          $ref: '#/components/schemas/LandingType'
      required:
      - id
      - landing_location
      - type
      - url
    PaginatedPolymorphicSpacecraftConfigFamilyEndpointList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/PolymorphicSpacecraftConfigFamilyEndpoint'
    SpacecraftConfigFamilyEndpointDetailed:
      type: object
      properties:
        response_mode:
          type: string
          readOnly: true
          default: detailed
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 200
        description:
          type: string
          maxLength: 2048
        manufacturer:
          $ref: '#/components/schemas/AgencyNormal'
        parent:
          allOf:
          - $ref: '#/components/schemas/SpacecraftConfigFamilyNormal'
        maiden_flight:
          type:
          - string
          - 'null'
          format: date
          title: Maiden Flight Date
        spacecraft_flown:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        total_launch_count:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        successful_launches:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        failed_launches:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        attempted_landings:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        successful_landings:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        failed_landings:
          type:
          - integer
          - 'null'
          maximum: 2147483647
          minimum: -2147483648
        spacecraft:
          type: array
          items:
            $ref: '#/components/schemas/SpacecraftConfigNormal'
      required:
      - id
      - manufacturer
      - name
      - parent
      - response_mode
      - spacecraft
    AgencyMini:
      type: object
      properties:
        response_mode:
          type: string
          readOnly: true
          default: list
        id:
          type: integer
          readOnly: true
        url:
          type: string
          format: 

# --- truncated at 32 KB (87 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thespacedevs-ll2-api/refs/heads/main/openapi/thespacedevs-ll2-api-spacecraft-api-openapi.yml