The Space Devs API: List upcoming launches
Lists upcoming rocket launches worldwide, with launch windows in UTC and local site time. Results can be filtered by company, country or launch site.
Unofficial. Not affiliated with or endorsed by The Space Devs.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Company optional
company Launch company name, for example SpaceX.
Not set
- Country optional
country Launch site country, for example India or United States.
India
- Launch Site optional
launch_site Launch site name or part of it, for example Cape Canaveral.
Not set
- Max Results optional
max_results Maximum launches to return, for example 10.
3
Whole number from 1 to 50. Default
10.
Input as JSON
{ "country": "India", "max_results": 3}Output
{ "launches": [ { "pad": "Satish Dhawan Space Centre Second Launch Pad", "rocket": "GSLV Mk. II", "status": "To Be Determined", "page_link": "https://lldev.thespacedevs.com/2.2.0/launch/20d5676e-111b-40e3-8923-b218c3665ca2/?format=json" , "image_link": "https://thespacedevs-dev.nyc3.digitaloceanspaces.com/media/images/gslv2520mk252_image_20240101090337.jpg" , "launch_site": "Satish Dhawan Space Centre, India", "mission_name": "IRNSS-1L (NVS-03)", "target_orbit": "Geostationary Transfer Orbit", "launch_company": "Indian Space Research Organization", "window_end_utc": "2026-10-31T00:00:00+00:00", "livestream_link": null, "window_end_local": "2026-10-31T05:30:00+05:30", "window_start_utc": "2026-10-31T00:00:00+00:00", "window_start_local": "2026-10-31T05:30:00+05:30", "mission_description": "This is a replacement satellite for the Indian Regional Navigation Satellite System. The constellation will provide India with an alternative to GPS and will be used for military and civilian use. Located at a geosynchronous orbit, the system will be operated by the Indian government." }, { "pad": "Satish Dhawan Space Centre First Launch Pad", "rocket": "SSLV", "status": "To Be Determined", "page_link": "https://lldev.thespacedevs.com/2.2.0/launch/e59ff9a4-f72f-4841-8546-3c94346ecdba/?format=json" , "image_link": "https://thespacedevs-dev.nyc3.digitaloceanspaces.com/media/images/sslv_image_20220912001724.jpeg" , "launch_site": "Satish Dhawan Space Centre, India", "mission_name": "AayulSAT-1A & others", "target_orbit": "Low Earth Orbit", "launch_company": "Indian Space Research Organization", "window_end_utc": "2026-10-31T00:00:00+00:00", "livestream_link": null, "window_end_local": "2026-10-31T05:30:00+05:30", "window_start_utc": "2026-10-31T00:00:00+00:00", "window_start_local": "2026-10-31T05:30:00+05:30", "mission_description": "Ride-share launch of multiple satellites, including the in-orbit refueling demonstration satellite AayulSAT-1A from OrbitAID Aerospace. Other payload's identities TBD." }, { "pad": "Satish Dhawan Space Centre Second Launch Pad", "rocket": "Launch Vehicle Mark-3 (GSLV Mk III)", "status": "To Be Determined", "page_link": "https://lldev.thespacedevs.com/2.2.0/launch/dfac5ab7-7017-454f-b6cf-eeed277a97b5/?format=json" , "image_link": "https://thespacedevs-dev.nyc3.digitaloceanspaces.com/media/images/gslv2520mk2520iii_image_20190604000938.jpg" , "launch_site": "Satish Dhawan Space Centre, India", "mission_name": "Gaganyaan-1", "target_orbit": "Low Earth Orbit", "launch_company": "Indian Space Research Organization", "window_end_utc": "2026-11-30T00:00:00+00:00", "livestream_link": null, "window_end_local": "2026-11-30T05:30:00+05:30", "window_start_utc": "2026-11-30T00:00:00+00:00", "window_start_local": "2026-11-30T05:30:00+05:30", "mission_description": "First uncrewed orbital test flight of the Gaganyaan capsule." } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"thespacedevs.com/list_upcoming_launches","input":{"country":"India","max_results":3}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "thespacedevs.com/list_upcoming_launches" , "input": { "country": "India", "max_results": 3 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "thespacedevs.com/list_upcoming_launches" , "input": { "country": "India", "max_results": 3 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run thespacedevs.com/list_upcoming_launches# with {"country":"India","max_results":3}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "properties": { "company": { "type": "string", "description": "Launch company name, for example SpaceX." }, "country": { "type": "string", "description": "Launch site country, for example India or United States." }, "launch_site": { "type": "string", "description": "Launch site name or part of it, for example Cape Canaveral." }, "max_results": { "type": "integer", "default": 10, "maximum": 50, "minimum": 1, "description": "Maximum launches to return, for example 10." } }}Output schema
{ "type": "object", "required": [ "launches" ], "properties": { "launches": { "type": "array", "items": { "type": "object", "properties": { "pad": { "type": "string" }, "rocket": { "type": "string" }, "status": { "type": "string" }, "page_link": { "type": "string" }, "image_link": { "type": "string" }, "launch_site": { "type": "string" }, "mission_name": { "type": "string" }, "target_orbit": { "type": "string" }, "launch_company": { "type": "string" }, "window_end_utc": { "type": "string" }, "livestream_link": { "type": "string" }, "window_end_local": { "type": "string" }, "window_start_utc": { "type": "string" }, "window_start_local": { "type": "string" }, "mission_description": { "type": "string" } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
thespacedevs.com/list_upcoming_launches- Returns
- mission, rocket, company, status, UTC and local windows, site, pad, orbit, links
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method thespacedevs.com/list_upcoming_launches with the inputs above.
Ask your agent
- What rocket launches are scheduled next from Cape Canaveral, and when are their UTC windows?
- Show me the next 8 upcoming SpaceX launches with their pads and orbits.
- Any upcoming launches from India in the coming weeks? Include mission names and local launch times.
- List the next 15 scheduled orbital launches worldwide from thespacedevs.com, including status and links.
- Which launches from Vandenberg are on the schedule, and what company is flying each mission?
See more
All The Space Devs methodsFinds a launch by mission or rocket name. Picks the next upcoming match, otherwise the most recent past match, and returns its details.
thespacedevs.com/get_launchLists upcoming or in-stock Nike SNKRS sneaker releases for a country. Each release has its local launch time and price.
nike.com/list_upcoming_releasesFinds upcoming International Space Station sightings for a city in NASA's city list, with local start times, visibility and sky directions. Cities without scheduled passes return an empty list.
nasa.gov/get_iss_sightingsLists movies scheduled for theatrical release in a country over the coming three weeks, soonest first, from TMDB's country-specific release calendar, with genres, overview and user score.
themoviedb.org/list_upcoming_moviesLists featured launches in Product Hunt's daily leaderboard order for a given US Pacific day, with each product's website when its public page shows one.
producthunt.com/list_launchesLists upcoming or past UFC events with fight cards, venue, start time and completed bout results, or returns one event by name. Upcoming events come soonest first and past events newest first.
ufc.com/list_eventsLists open jobs on a company's Greenhouse job board, with optional department and location filters.
boards.greenhouse.io/list_company_jobsLists upcoming departures or arrivals at an airport from the Flightradar24 public airport board, with local times, airline, route, status and aircraft.
flightradar24.com/list_airport_flights