# Exoplanets API
> Explore 6,200+ confirmed planets orbiting other stars, from the NASA Exoplanet Archive. For each exoplanet get its host star, discovery method, year and facility, orbital period, radius and mass (relative to Earth), distance in light-years and equilibrium temperature. Look one up by name, search and filter by discovery method or year, or list every planet in a host system (e.g. TRAPPIST-1). Great for astronomy, education and space apps.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/exoplanets-api/..."
```

## Pricing
- **Free** (Free) — 2,500 calls/Mo, 3 req/s
- **Starter** ($5/Mo) — 55,000 calls/Mo, 8 req/s
- **Pro** ($15/Mo) — 320,000 calls/Mo, 20 req/s
- **Mega** ($38/Mo) — 1,500,000 calls/Mo, 40 req/s

## Endpoints

### Exoplanets

#### `GET /v1/exoplanet` — A single exoplanet by name or id

**Parameters:**
- `name` (query, optional, string) — Planet name, e.g. Proxima Cen b Example: `Proxima Cen b`
- `id` (query, optional, string) — Dataset id (alternative to name)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/exoplanets-api/v1/exoplanet?name=Proxima+Cen+b"
```

**Response:**
```json
{
    "data": {
        "id": 3400,
        "name": "Proxima Cen b",
        "discovery": {
            "year": 2016,
            "method": "Radial Velocity",
            "facility": "European Southern Observatory"
        },
        "host_star": "Proxima Cen",
        "mass_earth": 1.055,
        "distance_ly": 4.24,
        "radius_earth": 1.02,
        "equilibrium_temp_k": 218,
        "orbital_period_days": 11.1846
    },
    "meta": {
        "timestamp": "2026-05-31T02:25:28.687Z",
        "request_id": "3e2721f2-8051-4623-a281-9a2ca53d63cf"
    },
    "status": "ok",
    "message": "Exoplanet retrieved",
    "success": true
}
```

#### `GET /v1/host` — All planets orbiting a host star

**Parameters:**
- `name` (query, required, string) — Host star name, e.g. TRAPPIST-1 Example: `TRAPPIST-1`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/exoplanets-api/v1/host?name=TRAPPIST-1"
```

**Response:**
```json
{
    "data": {
        "planets": 7,
        "host_star": "TRAPPIST-1",
        "exoplanets": [
            {
                "id": 3401,
                "name": "TRAPPIST-1 b",
                "discovery": {
                    "year": 2016,
                    "method": "Transit",
                    "facility": "La Silla Observatory"
                },
                "host_star": "TRAPPIST-1",
                "mass_earth": 1.374,
                "distance_ly": 40.54,
                "radius_earth": 1.116,
                "equilibrium_temp_k": 397.6,
                "orbital_period_days": 1.5108
            },
            {
                "id": 3402,
                "name": "TRAPPIST-1 c",
                "discovery": {
                    "year": 2016,
                    "method": "Transit",
                    "facility": "La Silla Observatory"
                },
                "host_star": "TRAPPIST-1",
                "mass_earth": 1.308,
                "distance_ly": 40.54,
                "radius_earth": 1.097,
                "equilibrium_temp_k": 339.7,
                "orbital_period_days": 2.4219
            },
            {
                "id": 3403,
                "name": "TRAPPIST-1 d",
                "discovery": {
                    "year": 2016,
                    "method": "Transit",
                    "facility": "La Silla Observatory"
                },
                "host_star": "TRAPPIST-1",
                "mass_earth": 0.388,
           
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search` — Search & filter exoplanets

**Parameters:**
- `q` (query, optional, string) — Planet / host name (substring) Example: `kepler-22`
- `method` (query, optional, string) — Discovery method, e.g. Transit, Radial Velocity Example: `Transit`
- `year` (query, optional, string) — Discovery year
- `limit` (query, optional, string) — Results per page (1-100, default 20) Example: `20`
- `offset` (query, optional, string) — Pagination offset Example: `0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/exoplanets-api/v1/search?q=kepler-22&method=Transit&limit=20&offset=0"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "limit": 20,
        "total": 33,
        "offset": 0,
        "filters": {
            "q": "kepler-22",
            "year": null,
            "method": "transit"
        },
        "results": [
            {
                "id": 591,
                "name": "Kepler-22 b",
                "discovery": {
                    "year": 2011,
                    "method": "Transit",
                    "facility": "Kepler"
                },
                "host_star": "Kepler-22",
                "mass_earth": 9.1,
                "distance_ly": 634.84,
                "radius_earth": 2.1,
                "equilibrium_temp_k": 279,
                "orbital_period_days": 289.8639
            },
            {
                "id": 1236,
                "name": "Kepler-220 b",
                "discovery": {
                    "year": 2014,
                    "method": "Transit",
                    "facility": "Kepler"
                },
                "host_star": "Kepler-220",
                "mass_earth": 0.457,
                "distance_ly": 558.08,
                "radius_earth": 0.81,
                "equilibrium_temp_k": 759,
                "orbital_period_days": 4.1598
            },
            {
                "id": 1237,
                "name": "Kepler-220 c",
                "discovery": {
                    "year": 2014,
                    "method": "Transit",
                    "facility": "Kepler"
                
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Totals, discovery methods & source

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/exoplanets-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "total": 6291,
        "fields": [
            "id",
            "name",
            "host_star",
            "discovery",
            "orbital_period_days",
            "radius_earth",
            "mass_earth",
            "distance_ly",
            "equilibrium_temp_k"
        ],
        "source": "NASA Exoplanet Archive",
        "host_stars": 4709,
        "discovery_methods": [
            {
                "count": 6,
                "method": "Astrometry"
            },
            {
                "count": 1,
                "method": "Disk Kinematics"
            },
            {
                "count": 17,
                "method": "Eclipse Timing Variations"
            },
            {
                "count": 97,
                "method": "Imaging"
            },
            {
                "count": 278,
                "method": "Microlensing"
            },
            {
                "count": 9,
                "method": "Orbital Brightness Modulation"
            },
            {
                "count": 8,
                "method": "Pulsar Timing"
            },
            {
                "count": 2,
                "method": "Pulsation Timing Variations"
            },
            {
                "count": 1181,
                "method": "Radial Velocity"
            },
            {
                "count": 4651,
                "method": "Transit"
            },
            {
                "count": 41,
                "
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/exoplanets-api
OpenAPI spec: https://www.oanor.com/api/exoplanets-api/openapi.json
