Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: TheSpaceDevs LL2 Astronauts 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: Astronauts
paths:
/2.3.0/astronauts/:
get:
operationId: astronauts_list
summary: List Astronauts
description: '#### Modes
Levels of detail in the response - `list`, `normal`, `detailed`
Example - [/astronauts/?mode=list](./?mode=list)
#### Filters
Parameters - `age`, `age__gt`, `age__gte`, `age__lt`, `age__lte`, `agency_ids`, `date_of_birth`, `date_of_birth__gt`, `date_of_birth__gte`, `date_of_birth__lt`, `date_of_birth__lte`, `date_of_death`, `date_of_death__gt`, `date_of_death__gte`, `date_of_death__lt`, `date_of_death__lte`, `first_flight`, `first_flight__gt`, `first_flight__gte`, `first_flight__lt`, `first_flight__lte`, `flights_count`, `flights_count__gt`, `flights_count__gte`, `flights_count__lt`, `flights_count__lte`, `has_flown`, `in_space`, `is_human`, `landings_count`, `landings_count__gt`, `landings_count__gte`, `landings_count__lt`, `landings_count__lte`, `last_flight`, `last_flight__gt`, `last_flight__gte`, `last_flight__lt`, `last_flight__lte`, `nationality`, `status_ids`, `type__id`
Example - [/astronauts/?has_flown=true](./?has_flown=true)
#### Search
Fields searched - `agency__abbrev`, `agency__name`, `name`, `nationality__nationality_name`
Example - [/astronauts/?search=Pesquet](./?search=Pesquet)
#### Ordering
Fields - `age`, `date_of_birth`, `eva_time`, `flights_count`, `id`, `landings_count`, `last_flight`, `name`, `spacewalks_count`, `status`, `time_in_space`
Example - [/astronauts/?ordering=-time_in_space](./?ordering=-time_in_space)
#### Number of results
Use `limit` to control the number of objects in the response (max 100)
Example - [/astronauts/?limit=2](./?limit=2)
#### Format
Switch to JSON output - [/astronauts/?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: age
schema:
type: integer
- in: query
name: age__gt
schema:
type: integer
- in: query
name: age__gte
schema:
type: integer
- in: query
name: age__lt
schema:
type: integer
- in: query
name: age__lte
schema:
type: integer
- in: query
name: agency_ids
schema:
type: array
items:
type: number
description: Comma-separated agency IDs.
explode: false
style: form
- in: query
name: date_of_birth
schema:
type: string
format: date
- in: query
name: date_of_birth__gt
schema:
type: string
format: date
- in: query
name: date_of_birth__gte
schema:
type: string
format: date
- in: query
name: date_of_birth__lt
schema:
type: string
format: date
- in: query
name: date_of_birth__lte
schema:
type: string
format: date
- in: query
name: date_of_death
schema:
type: string
format: date
- in: query
name: date_of_death__gt
schema:
type: string
format: date
- in: query
name: date_of_death__gte
schema:
type: string
format: date
- in: query
name: date_of_death__lt
schema:
type: string
format: date
- in: query
name: date_of_death__lte
schema:
type: string
format: date
- in: query
name: first_flight
schema:
type: string
format: date-time
- in: query
name: first_flight__gt
schema:
type: string
format: date-time
- in: query
name: first_flight__gte
schema:
type: string
format: date-time
- in: query
name: first_flight__lt
schema:
type: string
format: date-time
- in: query
name: first_flight__lte
schema:
type: string
format: date-time
- in: query
name: flights_count
schema:
type: integer
- in: query
name: flights_count__gt
schema:
type: integer
- in: query
name: flights_count__gte
schema:
type: integer
- in: query
name: flights_count__lt
schema:
type: integer
- in: query
name: flights_count__lte
schema:
type: integer
- in: query
name: has_flown
schema:
type: boolean
- in: query
name: in_space
schema:
type: boolean
- in: query
name: is_human
schema:
type: boolean
- in: query
name: landings_count
schema:
type: integer
- in: query
name: landings_count__gt
schema:
type: integer
- in: query
name: landings_count__gte
schema:
type: integer
- in: query
name: landings_count__lt
schema:
type: integer
- in: query
name: landings_count__lte
schema:
type: integer
- in: query
name: last_flight
schema:
type: string
format: date-time
- in: query
name: last_flight__gt
schema:
type: string
format: date-time
- in: query
name: last_flight__gte
schema:
type: string
format: date-time
- in: query
name: last_flight__lt
schema:
type: string
format: date-time
- in: query
name: last_flight__lte
schema:
type: string
format: date-time
- 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
- list
- normal
description: Level of detail in the response.
- in: query
name: nationality
schema:
type: string
description: Nationality
- 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: status_ids
schema:
type: array
items:
type: number
description: Comma-separated astronaut status IDs.
explode: false
style: form
- in: query
name: type__id
schema:
type: integer
tags:
- Astronauts
security:
- cookieAuth: []
- Token_Authentication: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedPolymorphicAstronautEndpointList'
description: ''
/2.3.0/astronauts/{id}/:
get:
operationId: astronauts_retrieve
summary: Get Astronaut
description: '#### Modes
Levels of detail in the response - `list`, `normal`, `detailed`
Example - [/astronauts/?mode=list](./?mode=list)
#### Filters
Parameters - `age`, `age__gt`, `age__gte`, `age__lt`, `age__lte`, `agency_ids`, `date_of_birth`, `date_of_birth__gt`, `date_of_birth__gte`, `date_of_birth__lt`, `date_of_birth__lte`, `date_of_death`, `date_of_death__gt`, `date_of_death__gte`, `date_of_death__lt`, `date_of_death__lte`, `first_flight`, `first_flight__gt`, `first_flight__gte`, `first_flight__lt`, `first_flight__lte`, `flights_count`, `flights_count__gt`, `flights_count__gte`, `flights_count__lt`, `flights_count__lte`, `has_flown`, `in_space`, `is_human`, `landings_count`, `landings_count__gt`, `landings_count__gte`, `landings_count__lt`, `landings_count__lte`, `last_flight`, `last_flight__gt`, `last_flight__gte`, `last_flight__lt`, `last_flight__lte`, `nationality`, `status_ids`, `type__id`
Example - [/astronauts/?has_flown=true](./?has_flown=true)
#### Search
Fields searched - `agency__abbrev`, `agency__name`, `name`, `nationality__nationality_name`
Example - [/astronauts/?search=Pesquet](./?search=Pesquet)
#### Ordering
Fields - `age`, `date_of_birth`, `eva_time`, `flights_count`, `id`, `landings_count`, `last_flight`, `name`, `spacewalks_count`, `status`, `time_in_space`
Example - [/astronauts/?ordering=-time_in_space](./?ordering=-time_in_space)
#### Number of results
Use `limit` to control the number of objects in the response (max 100)
Example - [/astronauts/?limit=2](./?limit=2)
#### Format
Switch to JSON output - [/astronauts/?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 Astronaut.
required: true
tags:
- Astronauts
security:
- cookieAuth: []
- Token_Authentication: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AstronautEndpointDetailed'
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
AgencyType:
type: object
properties:
id:
type: integer
maximum: 2147483647
minimum: -2147483648
name:
type: string
maxLength: 255
required:
- id
AstronautEndpointNormal:
type: object
properties:
id:
type: integer
readOnly: true
url:
type: string
format: uri
readOnly: true
name:
type: string
maxLength: 255
status:
$ref: '#/components/schemas/AstronautStatus'
agency:
allOf:
- $ref: '#/components/schemas/AgencyMini'
image:
allOf:
- $ref: '#/components/schemas/Image'
response_mode:
type: string
readOnly: true
default: normal
type:
$ref: '#/components/schemas/AstronautType'
in_space:
type: boolean
time_in_space:
type:
- string
- 'null'
readOnly: true
eva_time:
type: string
readOnly: true
age:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
date_of_birth:
type:
- string
- 'null'
format: date
date_of_death:
type:
- string
- 'null'
format: date
nationality:
type: array
items:
$ref: '#/components/schemas/Country'
bio:
type: string
maxLength: 2048
wiki:
type:
- string
- 'null'
maxLength: 255
last_flight:
type:
- string
- 'null'
format: date-time
first_flight:
type:
- string
- 'null'
format: date-time
social_media_links:
type: array
items:
$ref: '#/components/schemas/SocialMediaLink'
flights_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
landings_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
spacewalks_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
required:
- agency
- bio
- eva_time
- id
- image
- name
- nationality
- response_mode
- social_media_links
- status
- time_in_space
- type
- url
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
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
InfoURLType:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 255
required:
- id
- name
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
AgencyMini:
type: object
properties:
response_mode:
type: string
readOnly: true
default: list
id:
type: integer
readOnly: true
url:
type: string
format: uri
readOnly: true
name:
type: string
maxLength: 200
abbrev:
type: string
maxLength: 255
type:
$ref: '#/components/schemas/AgencyType'
required:
- id
- name
- response_mode
- type
- url
LaunchNormal:
type: object
properties:
id:
type: string
format: uuid
readOnly: true
url:
type: string
format: uri
readOnly: true
name:
type: string
maxLength: 2048
response_mode:
type: string
readOnly: true
default: normal
slug:
type: string
pattern: ^[-a-zA-Z0-9_]+$
launch_designator:
type:
- string
- 'null'
maxLength: 255
status:
allOf:
- $ref: '#/components/schemas/LaunchStatus'
last_updated:
type: string
format: date-time
net:
type: string
format: date-time
net_precision:
allOf:
- $ref: '#/components/schemas/NetPrecision'
window_end:
type: string
format: date-time
window_start:
type: string
format: date-time
image:
allOf:
- $ref: '#/components/schemas/Image'
readOnly: true
infographic:
type:
- string
- 'null'
readOnly: true
probability:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
weather_concerns:
type:
- string
- 'null'
maxLength: 255
failreason:
type:
- string
- 'null'
maxLength: 2048
hashtag:
type:
- string
- 'null'
maxLength: 2048
launch_service_provider:
$ref: '#/components/schemas/AgencyMini'
rocket:
allOf:
- $ref: '#/components/schemas/RocketNormal'
mission:
allOf:
- $ref: '#/components/schemas/Mission'
pad:
allOf:
- $ref: '#/components/schemas/Pad'
webcast_live:
type: boolean
program:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ProgramNormal'
orbital_launch_attempt_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
location_launch_attempt_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
pad_launch_attempt_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
agency_launch_attempt_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
orbital_launch_attempt_count_year:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
location_launch_attempt_count_year:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
pad_launch_attempt_count_year:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
agency_launch_attempt_count_year:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
required:
- id
- image
- infographic
- launch_service_provider
- mission
- net_precision
- pad
- program
- response_mode
- rocket
- slug
- status
- url
CelestialBodyMini:
type: object
properties:
response_mode:
type: string
readOnly: true
default: list
id:
type: integer
readOnly: true
name:
type: string
maxLength: 255
required:
- id
- name
- response_mode
AstronautFlight:
type: object
properties:
id:
type: integer
readOnly: true
role:
$ref: '#/components/schemas/AstronautRole'
astronaut:
$ref: '#/components/schemas/AstronautDetailed'
required:
- astronaut
- id
- role
Language:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 255
code:
type: string
description: ISO 639-1 (two-letter) code
maxLength: 255
required:
- code
- id
- name
LandingLocation:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 255
active:
type: boolean
abbrev:
type: string
maxLength: 255
description:
type:
- string
- 'null'
maxLength: 2048
location:
$ref: '#/components/schemas/LocationSerializerNoCelestialBody'
longitude:
type:
- number
- 'null'
format: double
latitude:
type:
- number
- 'null'
format: double
image:
allOf:
- $ref: '#/components/schemas/Image'
successful_landings:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
attempted_landings:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
failed_landings:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
celestial_body:
$ref: '#/components/schemas/CelestialBodyNormal'
required:
- celestial_body
- id
- image
- location
NetPrecision:
type: object
properties:
id:
type: integer
maximum: 2147483647
minimum: -2147483648
name:
type: string
maxLength: 255
abbrev:
type: string
maxLength: 255
description:
type: string
maxLength: 2048
required:
- id
LauncherConfigFamilyMini:
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
LandingType:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 255
abbrev:
type: string
maxLength: 255
description:
type:
- string
- 'null'
maxLength: 2048
required:
- id
MissionPatch:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 200
priority:
type: integer
maximum: 2147483647
minimum: -2147483648
image_url:
type: string
format: uri
agency:
allOf:
- $ref: '#/components/schemas/AgencyMini'
response_mode:
type: string
readOnly: true
default: normal
required:
- agency
- id
- image_url
- name
- response_mode
SpacecraftFlightNormal:
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/SpacecraftNormal'
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: normal
required:
- duration
- id
- landing
- launch
- response_mode
- spacecraft
- turn_around_time
- url
Image:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 255
image_url:
type: string
format: uri
thumbnail_url:
type: string
format: uri
credit:
type:
- string
- 'null'
maxLength: 255
license:
$ref: '#/components/schemas/ImageLicense'
single_use:
type: boolean
variants:
type: array
items:
$ref: '#/components/schemas/ImageVariant'
required:
- id
- image_url
- license
- name
- thumbnail_url
- variants
SpacecraftNormal:
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: 255
serial_number:
type:
- string
- 'null'
maxLength: 255
is_placeholder:
type: boolean
image:
allOf:
- $ref: '#/components/schemas/Image'
readOnly: true
in_space:
type: boolean
time_in_space:
type:
- string
- 'null'
readOnly: true
time_docked:
type:
- string
- 'null'
readOnly: true
flights_count:
type:
- integer
- 'null'
mission_ends_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
status:
$ref: '#/components/schemas/SpacecraftStatus'
description:
type: string
maxLength: 2048
spacecraft_config:
$ref: '#/components/schemas/SpacecraftConfigNormal'
fastest_turnaround:
type:
- string
- 'null'
readOnly: true
required:
- description
- fastest_turnaround
- flights_count
- id
- image
- name
- response_mode
- spacecraft_config
- status
- time_docked
- time_in_space
- url
Pad:
type: object
properties:
id:
type: integer
readOnly: true
url:
type: string
format: uri
readOnly: true
active:
type: boolean
agencies:
type: array
items:
$ref: '#/components/schemas/AgencyNormal'
name:
type: string
maxLength: 255
image:
allOf:
- $ref: '#/components/schemas/Image'
description:
type:
- string
- 'null'
maxLength: 2048
info_url:
type:
- string
- 'null'
format: uri
maxLength: 200
wiki_url:
type:
- string
- 'null'
format: uri
maxLength: 200
map_url:
type:
- string
- 'null'
format: uri
maxLength: 200
latitude:
type:
- number
- 'null'
format: double
longitude:
type:
- number
- 'null'
format: double
country:
allOf:
- $ref: '#/components/schemas/Country'
map_image:
type:
- string
- 'null'
format: uri
total_launch_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
orbital_launch_attempt_count:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
fastest_turnaround:
type:
- string
- 'null'
readOnly: true
location:
allOf:
- $ref: '#/components/schemas/Location'
required:
- agencies
- country
- fastest_turnaround
- id
- image
- location
- url
LaunchStatus:
type: object
properties:
id:
type: integer
maximum: 2147483647
minimum: -2147483648
name:
type: string
readOnly: true
abbrev:
type: string
maxLength: 255
description:
type: string
maxLength: 2048
required:
- id
- name
AstronautEndpointDetailed:
type: object
properties:
id:
type: integer
readOnly: true
url:
type: string
format: uri
readOnly: true
name:
type: string
maxLength: 255
status:
$ref: '#/components/schemas/AstronautStatus'
agency:
allOf:
- $ref: '#/components/schemas/AgencyMini'
image:
allOf:
- $ref: '#/components/schemas/Image'
response_mode:
type: string
readOnly: true
default: detailed
type:
$ref: '#/components/schemas/AstronautType'
in_space:
type: boolean
time_in_space:
type:
- string
- 'null'
readOnly: true
eva_time:
type: string
readOnly: true
age:
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
date_of_birth:
type:
- string
- 'null'
format: date
date_of_death:
type:
- string
- 'null'
format: date
nationality:
type: array
items:
$ref: '#/components/schemas/Country'
bio:
type: string
maxLength: 2048
wiki:
type:
- string
- 'null'
maxLength: 255
last_flight:
type:
- string
- 'null'
format: date-time
first_flight:
type:
- string
- 'null'
format: date-time
social_media_links:
type: array
items:
$ref: '#/components/schemas/SocialMediaLink'
flight
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thespacedevs-ll2-api/refs/heads/main/openapi/thespacedevs-ll2-api-astronauts-api-openapi.yml