{
  "openapi": "3.1.0",
  "info": {
    "title": "Orbitwren API",
    "version": "1.0.0",
    "summary": "Orbital compute and space data center tracker API: every public project (company, partners, hardware in orbit, launch date, vehicle, status, publicly stated funding, NORAD IDs, source URLs), the next 200 orbital launches from The Space Devs Launch Library 2 with rideshare and orbital-compute flags, CelesTrak orbit elements with perigee/apogee for the compute satellites, the next compute launch with a countdown, and a daily change log. REST + MCP server.",
    "description": "Who is putting AI compute in orbit, on what hardware, and when: Google's Project Suncatcher, Starcloud, SpaceX, Blue Origin, Axiom, Aetherflux and more, each row with its sources. Plus the next launches (rideshares flagged), live orbits from CelesTrak and a daily change log. For analysts, investors, journalists, space and AI builders, and AI agents. Free tier, no key; plans from $9/month.\n\nFree tier: Up to 100 rows per call; 20 calls a minute per IP on the free tier. Free tier: 100 calls a day per IP, no key. Paid keys from $9/month (see Get an API key). Tracker rows are verified by hand against company pages and reputable news; unknown values are null, never estimated. Launches (The Space Devs Launch Library 2) and orbits (CelesTrak) refresh daily; every response says when. Company names identify projects only; no affiliation with or endorsement by any company listed. Unknown values are null, never estimated. No key needed. Remote MCP server: https://orbitwren.cybermax-tools.workers.dev/mcp\n\nPricing: free tier 100 calls/day per IP, no key. Paid API keys: Watch $9/month = 5,000 calls/month; Analyst $19/month = 20,000 calls/month; Desk $49/month = 100,000 calls/month; Pay as you go $5 = 2,000 calls (one-time pack); Watch yearly $90/year = 5,000 calls/month; Analyst yearly $190/year = 20,000 calls/month; Desk yearly $490/year = 100,000 calls/month. Get a key: https://orbitwren.cybermax-tools.workers.dev/docs#pricing",
    "contact": {
      "name": "CyberMax",
      "url": "https://cybermax-tools-cybermax.static.hf.space/"
    },
    "license": {
      "name": "Proprietary (free tier + paid API keys)",
      "identifier": "LicenseRef-CyberMax"
    },
    "x-pricing": {
      "api": "Orbitwren API",
      "currency": "USD",
      "free": {
        "price": 0,
        "callsPerDayPerIp": 100,
        "perMinutePerIp": 20,
        "key": "none needed"
      },
      "plans": [
        {
          "id": "watch",
          "name": "Watch",
          "price": 9,
          "billing": "per month",
          "calls": 5000,
          "per": "calendar month (UTC)",
          "perMinute": 30,
          "buy": "https://orbitwren.cybermax-tools.workers.dev/buy/watch?s=openapi"
        },
        {
          "id": "analyst",
          "name": "Analyst",
          "price": 19,
          "billing": "per month",
          "calls": 20000,
          "per": "calendar month (UTC)",
          "perMinute": 60,
          "buy": "https://orbitwren.cybermax-tools.workers.dev/buy/analyst?s=openapi"
        },
        {
          "id": "desk",
          "name": "Desk",
          "price": 49,
          "billing": "per month",
          "calls": 100000,
          "per": "calendar month (UTC)",
          "perMinute": 120,
          "buy": "https://orbitwren.cybermax-tools.workers.dev/buy/desk?s=openapi"
        },
        {
          "id": "payg",
          "name": "Pay as you go",
          "price": 5,
          "billing": "one-time",
          "calls": 2000,
          "per": "until used",
          "perMinute": 30,
          "buy": "https://orbitwren.cybermax-tools.workers.dev/buy/payg?s=openapi"
        },
        {
          "id": "watch-yearly",
          "name": "Watch yearly",
          "price": 90,
          "billing": "per year",
          "calls": 5000,
          "per": "calendar month (UTC)",
          "perMinute": 30,
          "buy": "https://orbitwren.cybermax-tools.workers.dev/buy/watch-yearly?s=openapi"
        },
        {
          "id": "analyst-yearly",
          "name": "Analyst yearly",
          "price": 190,
          "billing": "per year",
          "calls": 20000,
          "per": "calendar month (UTC)",
          "perMinute": 60,
          "buy": "https://orbitwren.cybermax-tools.workers.dev/buy/analyst-yearly?s=openapi"
        },
        {
          "id": "desk-yearly",
          "name": "Desk yearly",
          "price": 490,
          "billing": "per year",
          "calls": 100000,
          "per": "calendar month (UTC)",
          "perMinute": 120,
          "buy": "https://orbitwren.cybermax-tools.workers.dev/buy/desk-yearly?s=openapi"
        }
      ],
      "unit": "calls",
      "howToUse": {
        "header": "x-api-key: YOUR_KEY",
        "alt": [
          "Authorization: Bearer YOUR_KEY",
          "?key=YOUR_KEY"
        ],
        "mcp": "send the key as Authorization: Bearer YOUR_KEY",
        "usage": "https://orbitwren.cybermax-tools.workers.dev/key"
      },
      "manageKey": "https://orbitwren.cybermax-tools.workers.dev/manage",
      "payments": "Stripe Checkout: card, Apple Pay, Google Pay, Link; sales tax/VAT handled by Stripe. Cancel any time at https://orbitwren.cybermax-tools.workers.dev/manage."
    }
  },
  "servers": [
    {
      "url": "https://orbitwren.cybermax-tools.workers.dev"
    }
  ],
  "paths": {
    "/api/projects": {
      "get": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Orbital compute and space data center projects, with sources",
        "description": "Every tracked project: company, partners, project, category, hardware in (or going to) orbit, launch date and vehicle, status, scale, publicly stated funding, NORAD IDs (from CelesTrak once public), summary and the sources (URL, publisher, date, the fact each supports). Tracked launches carry their live Launch Library 2 status.",
        "operationId": "orbitalComputeProjectsGet",
        "parameters": [
          {
            "name": "company",
            "in": "query",
            "required": false,
            "description": "Company or partner name (part of it), e.g. starcloud, google",
            "schema": {
              "type": "string"
            },
            "example": ""
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "One of: scheduled, in orbit, deployed, flown, planned, filed, announced, development",
            "schema": {
              "type": "string",
              "enum": [
                "scheduled",
                "in orbit",
                "deployed",
                "flown",
                "planned",
                "filed",
                "announced",
                "development"
              ]
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Text in the category, e.g. satellite, constellation filing, hardware platform",
            "schema": {
              "type": "string"
            },
            "example": ""
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Free text over company, project, hardware and summary, e.g. TPU or H100",
            "schema": {
              "type": "string"
            },
            "example": "TPU"
          },
          {
            "name": "inOrbit",
            "in": "query",
            "required": false,
            "description": "Only projects with hardware in orbit now",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows (1-100)",
            "schema": {
              "type": "integer",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "query": {
                    "company": null,
                    "status": null,
                    "category": null,
                    "q": "TPU"
                  },
                  "count": 2,
                  "projects": [
                    {
                      "id": "google-suncatcher-tpu-prototype",
                      "company": "Google",
                      "partners": [
                        "Planet"
                      ],
                      "project": "Project Suncatcher: first TPU prototype satellite",
                      "category": "prototype satellite",
                      "hardware": "4 Google Trillium-generation TPUs",
                      "launch_date": "2026-10-01",
                      "launch_date_text": "1 Oct 2026 (Transporter-18, window opens 18:18 UTC)",
                      "launch_vehicle": "SpaceX Falcon 9",
                      "launch_mission": "Transporter-18 rideshare, Vandenberg SLC-4E",
                      "ll2_launch_id": "67213393-7983-4c06-8b44-b8c785a5ed79",
                      "status": "scheduled",
                      "scale": "1 satellite",
                      "funding_public": null,
                      "norad_ids": [],
                      "celestrak_names": [
                        "SUNCATCHER"
                      ],
                      "summary": "Google's first TPUs in orbit, on a prototype satellite developed with Planet, to measure how the chips handle launch stress, radiation and thermal extremes in low Earth orbit.",
                      "sources": [
                        {
                          "publisher": "Google (blog.google)",
                          "date": "2026-09-24",
                          "url": "https://blog.google/innovation-and-ai/models-and-research/google-research/google-project-suncatcher-facts/",
                          "fact": "First TPUs go to orbit on SpaceX's Transporter-18 rideshare, developed in partnership with Planet"
                        },
                        {
                          "publisher": "Gizmodo",
                          "date": "2026-09-24",
                          "url": "https://gizmodo.com/googles-project-suncatcher-is-sending-ai-chips-into-space-next-week-2000816985",
                          "fact": "Four Google TPUs (Trillium) launch next week on Transporter-18"
                        },
                        {
                          "publisher": "The Space Devs Launch Library 2",
                          "date": "2026-09-30",
                          "url": "https://ll.thespacedevs.com/2.3.0/launches/67213393-7983-4c06-8b44-b8c785a5ed79/",
                          "fact": "Transporter 18: NET 2026-10-01T18:18:00Z, status Go, SLC-4E"
                        }
                      ],
                      "verified_on": "2026-09-30",
                      "auto_norad_ids": [],
                      "launch": {
                        "name": "Falcon 9 Block 5 | Transporter 18 (Dedicated SSO Rideshare)",
                        "net": "2026-10-01T18:18:00Z",
                        "status": "Go",
                        "status_name": "Go for Launch",
                        "window_start": "2026-10-01T18:18:00Z",
                        "window_end": "2026-10-01T19:16:00Z",
                        "source_url": "https://ll.thespacedevs.com/2.3.0/launches/67213393-7983-4c06-8b44-b8c785a5ed79/"
                      },
                      "source_urls": [
                        "https://blog.google/innovation-and-ai/models-and-research/google-research/google-project-suncatcher-facts/",
                        "https://gizmodo.com/googles-project-suncatcher-is-sending-ai-chips-into-space-next-week-2000816985",
                        "https://ll.thespacedevs.com/2.3.0/launches/67213393-7983-4c06-8b44-b8c785a5ed79/"
                      ]
                    },
                    {
                      "id": "google-planet-suncatcher-pair",
                      "company": "Google",
                      "partners": [
                        "Planet"
                      ],
                      "project": "Project Suncatcher: two prototype satellites with cross-links",
                      "category": "prototype satellites",
                      "hardware": "Google TPUs (per satellite count not stated)",
                      "launch_date": null,
                      "launch_date_text": "early 2027 (target)",
                      "launch_vehicle": null,
                      "launch_mission": null,
                      "ll2_launch_id": null,
                      "status": "planned",
                      "scale": "2 satellites flying in tandem with high-bandwidth cross-links",
                      "funding_public": null,
                      "norad_ids": [],
                      "celestrak_names": [],
                      "summary": "Planet builds and operates two prototype satellites for Google to test TPUs working together over high-bandwidth inter-satellite links.",
                      "sources": [
                        {
                          "publisher": "Planet (planet.com)",
                          "date": "2025-11-04",
                          "url": "https://www.planet.com/pulse/planet-to-build-and-operate-advanced-space-platform-for-project-suncatcher-moonshot/",
                          "fact": "Planet will deploy two prototype satellites for Google, targeting a launch by early 2027"
                        },
                        {
                          "publisher": "Google (blog.google)",
                          "date": "2026-09-24",
                          "url": "https://blog.google/innovation-and-ai/models-and-research/google-research/google-project-suncatcher-facts/",
                          "fact": "We'll test our work on this in 2027 when we put two satellites in orbit"
                        }
                      ],
                      "verified_on": "2026-09-30",
                      "auto_norad_ids": [],
                      "source_urls": [
                        "https://www.planet.com/pulse/planet-to-build-and-operate-advanced-space-platform-for-project-suncatcher-moonshot/",
                        "https://blog.google/innovation-and-ai/models-and-research/google-research/google-project-suncatcher-facts/"
                      ]
                    }
                  ],
                  "data": {
                    "projects_verified_on": "2026-09-30",
                    "launches_updated": "2026-09-30T18:59:06Z",
                    "orbits_updated": "2026-09-30T18:59:48Z",
                    "source": "Orbitwren curated tracker by CyberMax: every row cites its source URLs; unknown values are null, never estimated.",
                    "note": "Company names identify projects only; no affiliation with or endorsement by any company listed. Unknown values are null, never estimated."
                  },
                  "limits": {
                    "requestsPerMinutePerIp": 20,
                    "rowsPerCall": 100,
                    "timeoutSeconds": 10
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Orbital compute and space data center projects, with sources",
        "description": "Every tracked project: company, partners, project, category, hardware in (or going to) orbit, launch date and vehicle, status, scale, publicly stated funding, NORAD IDs (from CelesTrak once public), summary and the sources (URL, publisher, date, the fact each supports). Tracked launches carry their live Launch Library 2 status.",
        "operationId": "orbitalComputeProjectsPost",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "company": {
                    "type": "string",
                    "description": "Company or partner name (part of it), e.g. starcloud, google"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "scheduled",
                      "in orbit",
                      "deployed",
                      "flown",
                      "planned",
                      "filed",
                      "announced",
                      "development"
                    ],
                    "description": "One of: scheduled, in orbit, deployed, flown, planned, filed, announced, development"
                  },
                  "category": {
                    "type": "string",
                    "description": "Text in the category, e.g. satellite, constellation filing, hardware platform"
                  },
                  "q": {
                    "type": "string",
                    "description": "Free text over company, project, hardware and summary, e.g. TPU or H100"
                  },
                  "inOrbit": {
                    "type": "boolean",
                    "default": false,
                    "description": "Only projects with hardware in orbit now"
                  },
                  "limit": {
                    "type": "integer",
                    "default": 50,
                    "description": "Rows (1-100)"
                  }
                }
              },
              "example": {
                "company": "starcloud"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "query": {
                    "company": null,
                    "status": null,
                    "category": null,
                    "q": "TPU"
                  },
                  "count": 2,
                  "projects": [
                    {
                      "id": "google-suncatcher-tpu-prototype",
                      "company": "Google",
                      "partners": [
                        "Planet"
                      ],
                      "project": "Project Suncatcher: first TPU prototype satellite",
                      "category": "prototype satellite",
                      "hardware": "4 Google Trillium-generation TPUs",
                      "launch_date": "2026-10-01",
                      "launch_date_text": "1 Oct 2026 (Transporter-18, window opens 18:18 UTC)",
                      "launch_vehicle": "SpaceX Falcon 9",
                      "launch_mission": "Transporter-18 rideshare, Vandenberg SLC-4E",
                      "ll2_launch_id": "67213393-7983-4c06-8b44-b8c785a5ed79",
                      "status": "scheduled",
                      "scale": "1 satellite",
                      "funding_public": null,
                      "norad_ids": [],
                      "celestrak_names": [
                        "SUNCATCHER"
                      ],
                      "summary": "Google's first TPUs in orbit, on a prototype satellite developed with Planet, to measure how the chips handle launch stress, radiation and thermal extremes in low Earth orbit.",
                      "sources": [
                        {
                          "publisher": "Google (blog.google)",
                          "date": "2026-09-24",
                          "url": "https://blog.google/innovation-and-ai/models-and-research/google-research/google-project-suncatcher-facts/",
                          "fact": "First TPUs go to orbit on SpaceX's Transporter-18 rideshare, developed in partnership with Planet"
                        },
                        {
                          "publisher": "Gizmodo",
                          "date": "2026-09-24",
                          "url": "https://gizmodo.com/googles-project-suncatcher-is-sending-ai-chips-into-space-next-week-2000816985",
                          "fact": "Four Google TPUs (Trillium) launch next week on Transporter-18"
                        },
                        {
                          "publisher": "The Space Devs Launch Library 2",
                          "date": "2026-09-30",
                          "url": "https://ll.thespacedevs.com/2.3.0/launches/67213393-7983-4c06-8b44-b8c785a5ed79/",
                          "fact": "Transporter 18: NET 2026-10-01T18:18:00Z, status Go, SLC-4E"
                        }
                      ],
                      "verified_on": "2026-09-30",
                      "auto_norad_ids": [],
                      "launch": {
                        "name": "Falcon 9 Block 5 | Transporter 18 (Dedicated SSO Rideshare)",
                        "net": "2026-10-01T18:18:00Z",
                        "status": "Go",
                        "status_name": "Go for Launch",
                        "window_start": "2026-10-01T18:18:00Z",
                        "window_end": "2026-10-01T19:16:00Z",
                        "source_url": "https://ll.thespacedevs.com/2.3.0/launches/67213393-7983-4c06-8b44-b8c785a5ed79/"
                      },
                      "source_urls": [
                        "https://blog.google/innovation-and-ai/models-and-research/google-research/google-project-suncatcher-facts/",
                        "https://gizmodo.com/googles-project-suncatcher-is-sending-ai-chips-into-space-next-week-2000816985",
                        "https://ll.thespacedevs.com/2.3.0/launches/67213393-7983-4c06-8b44-b8c785a5ed79/"
                      ]
                    },
                    {
                      "id": "google-planet-suncatcher-pair",
                      "company": "Google",
                      "partners": [
                        "Planet"
                      ],
                      "project": "Project Suncatcher: two prototype satellites with cross-links",
                      "category": "prototype satellites",
                      "hardware": "Google TPUs (per satellite count not stated)",
                      "launch_date": null,
                      "launch_date_text": "early 2027 (target)",
                      "launch_vehicle": null,
                      "launch_mission": null,
                      "ll2_launch_id": null,
                      "status": "planned",
                      "scale": "2 satellites flying in tandem with high-bandwidth cross-links",
                      "funding_public": null,
                      "norad_ids": [],
                      "celestrak_names": [],
                      "summary": "Planet builds and operates two prototype satellites for Google to test TPUs working together over high-bandwidth inter-satellite links.",
                      "sources": [
                        {
                          "publisher": "Planet (planet.com)",
                          "date": "2025-11-04",
                          "url": "https://www.planet.com/pulse/planet-to-build-and-operate-advanced-space-platform-for-project-suncatcher-moonshot/",
                          "fact": "Planet will deploy two prototype satellites for Google, targeting a launch by early 2027"
                        },
                        {
                          "publisher": "Google (blog.google)",
                          "date": "2026-09-24",
                          "url": "https://blog.google/innovation-and-ai/models-and-research/google-research/google-project-suncatcher-facts/",
                          "fact": "We'll test our work on this in 2027 when we put two satellites in orbit"
                        }
                      ],
                      "verified_on": "2026-09-30",
                      "auto_norad_ids": [],
                      "source_urls": [
                        "https://www.planet.com/pulse/planet-to-build-and-operate-advanced-space-platform-for-project-suncatcher-moonshot/",
                        "https://blog.google/innovation-and-ai/models-and-research/google-research/google-project-suncatcher-facts/"
                      ]
                    }
                  ],
                  "data": {
                    "projects_verified_on": "2026-09-30",
                    "launches_updated": "2026-09-30T18:59:06Z",
                    "orbits_updated": "2026-09-30T18:59:48Z",
                    "source": "Orbitwren curated tracker by CyberMax: every row cites its source URLs; unknown values are null, never estimated.",
                    "note": "Company names identify projects only; no affiliation with or endorsement by any company listed. Unknown values are null, never estimated."
                  },
                  "limits": {
                    "requestsPerMinutePerIp": 20,
                    "rowsPerCall": 100,
                    "timeoutSeconds": 10
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/launches": {
      "get": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Upcoming orbital launches, rideshare and compute launches flagged",
        "description": "The next launches from The Space Devs Launch Library 2 (refreshed daily): name, NET and window, status, provider, rocket, mission, orbit, pad and country, plus rideshare, orbital_compute and tracked_projects flags. Filter by days ahead, rideshare, compute, provider, country or text.",
        "operationId": "upcomingLaunchesGet",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "required": false,
            "description": "Look ahead N days (1-730)",
            "schema": {
              "type": "integer",
              "default": 90
            },
            "example": "90"
          },
          {
            "name": "rideshare",
            "in": "query",
            "required": false,
            "description": "true = only rideshare missions (Transporter, Bandwagon ...), false = exclude them",
            "schema": {
              "type": "boolean"
            },
            "example": "true"
          },
          {
            "name": "compute",
            "in": "query",
            "required": false,
            "description": "Only launches carrying a tracked orbital-compute project or mentioning data centres/TPUs/GPUs",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "description": "Launch provider (part of the name), e.g. SpaceX, Rocket Lab",
            "schema": {
              "type": "string"
            },
            "example": ""
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "Pad country, ISO 3166 alpha-3, e.g. USA, CHN, NZL",
            "schema": {
              "type": "string"
            },
            "example": ""
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Free text over launch name, mission and rocket",
            "schema": {
              "type": "string"
            },
            "example": ""
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows (1-100)",
            "schema": {
              "type": "integer",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Upcoming orbital launches, rideshare and compute launches flagged",
        "description": "The next launches from The Space Devs Launch Library 2 (refreshed daily): name, NET and window, status, provider, rocket, mission, orbit, pad and country, plus rideshare, orbital_compute and tracked_projects flags. Filter by days ahead, rideshare, compute, provider, country or text.",
        "operationId": "upcomingLaunchesPost",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "days": {
                    "type": "integer",
                    "default": 90,
                    "description": "Look ahead N days (1-730)"
                  },
                  "rideshare": {
                    "type": "boolean",
                    "description": "true = only rideshare missions (Transporter, Bandwagon ...), false = exclude them"
                  },
                  "compute": {
                    "type": "boolean",
                    "default": false,
                    "description": "Only launches carrying a tracked orbital-compute project or mentioning data centres/TPUs/GPUs"
                  },
                  "provider": {
                    "type": "string",
                    "description": "Launch provider (part of the name), e.g. SpaceX, Rocket Lab"
                  },
                  "country": {
                    "type": "string",
                    "description": "Pad country, ISO 3166 alpha-3, e.g. USA, CHN, NZL"
                  },
                  "q": {
                    "type": "string",
                    "description": "Free text over launch name, mission and rocket"
                  },
                  "limit": {
                    "type": "integer",
                    "default": 25,
                    "description": "Rows (1-100)"
                  }
                }
              },
              "example": {
                "rideshare": true,
                "days": 180
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/next": {
      "get": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "The next orbital-compute launch, with a countdown and what is on board",
        "description": "The next launch carrying a tracked orbital-compute project (or described as one): NET, window, status, provider, pad, seconds to NET and the tracker rows on board.",
        "operationId": "nextComputeLaunchGet",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "The next orbital-compute launch, with a countdown and what is on board",
        "description": "The next launch carrying a tracked orbital-compute project (or described as one): NET, window, status, provider, pad, seconds to NET and the tracker rows on board.",
        "operationId": "nextComputeLaunchPost",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": {}
            }
          }
        },
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/orbits": {
      "get": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Orbit elements for orbital-compute satellites (CelesTrak)",
        "description": "CelesTrak GP elements for each tracked satellite with a public NORAD ID: epoch, inclination, eccentricity, mean motion, RAAN, argument of perigee, mean anomaly, B*, plus derived perigee and apogee (km) and period (minutes). Refreshed daily.",
        "operationId": "computeSatelliteOrbitsGet",
        "parameters": [
          {
            "name": "norad",
            "in": "query",
            "required": false,
            "description": "NORAD catalog number(s), comma separated (empty = every tracked compute satellite)",
            "schema": {
              "type": "string"
            },
            "example": "66303"
          },
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "Tracker project id (part of it), e.g. starcloud",
            "schema": {
              "type": "string"
            },
            "example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Orbit elements for orbital-compute satellites (CelesTrak)",
        "description": "CelesTrak GP elements for each tracked satellite with a public NORAD ID: epoch, inclination, eccentricity, mean motion, RAAN, argument of perigee, mean anomaly, B*, plus derived perigee and apogee (km) and period (minutes). Refreshed daily.",
        "operationId": "computeSatelliteOrbitsPost",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "norad": {
                    "type": "string",
                    "description": "NORAD catalog number(s), comma separated (empty = every tracked compute satellite)"
                  },
                  "project": {
                    "type": "string",
                    "description": "Tracker project id (part of it), e.g. starcloud"
                  }
                }
              },
              "example": {
                "norad": "66303"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/changes": {
      "get": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Day-to-day change log: status, launch dates, NORAD IDs",
        "description": "What changed since the previous daily build: project status, launch date, NORAD IDs appearing, and the NET/status of tracked launches. Newest first.",
        "operationId": "trackerChangesGet",
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": false,
            "description": "Only changes on or after this date (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows (1-200)",
            "schema": {
              "type": "integer",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Day-to-day change log: status, launch dates, NORAD IDs",
        "description": "What changed since the previous daily build: project status, launch date, NORAD IDs appearing, and the NET/status of tracked launches. Newest first.",
        "operationId": "trackerChangesPost",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "since": {
                    "type": "string",
                    "format": "date",
                    "description": "Only changes on or after this date (YYYY-MM-DD)"
                  },
                  "limit": {
                    "type": "integer",
                    "default": 50,
                    "description": "Rows (1-200)"
                  }
                }
              },
              "example": {
                "since": "2026-10-01"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/status": {
      "get": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Data freshness and counts (free, not metered)",
        "description": "When the tracker was verified and when launches and orbits were last refreshed, with counts and source attribution.",
        "operationId": "dataStatusGet",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Orbitwren"
        ],
        "summary": "Data freshness and counts (free, not metered)",
        "description": "When the tracker was verified and when launches and orbits were last refreshed, with counts and source attribution.",
        "operationId": "dataStatusPost",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": {}
            }
          }
        },
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or revoked API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Free tier used up (100/day per IP) or rate/plan limit reached; the body has an upgrade link.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "retryAfterSeconds": {
            "type": "integer"
          },
          "limits": {
            "type": "object"
          }
        },
        "required": [
          "error",
          "message"
        ]
      }
    },
    "securitySchemes": {
      "ApiKeyHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key",
        "description": "Optional. Paid plan key from https://orbitwren.cybermax-tools.workers.dev/docs#pricing; leave out for the free tier."
      },
      "BearerKey": {
        "type": "http",
        "scheme": "bearer",
        "description": "Same key as a Bearer token."
      }
    }
  },
  "x-mcp-server": "https://orbitwren.cybermax-tools.workers.dev/mcp",
  "externalDocs": {
    "description": "Get an API key (pricing)",
    "url": "https://orbitwren.cybermax-tools.workers.dev/docs#pricing"
  },
  "security": [
    {},
    {
      "ApiKeyHeader": []
    },
    {
      "BearerKey": []
    }
  ]
}