# Meteorites API
> NASA's catalogue of 45,000+ meteorites recovered on Earth as an API. For each meteorite: its name, NASA id, classification (recclass, e.g. L5, Iron), mass in grams, whether it was seen to fall or simply found, the year, and the latitude/longitude where it was recovered. Look one up by name or id, find the meteorites NEAR any coordinate (great-circle distance), rank by mass or year, list a classification or year, or search. Great for space, education, mapping and museum apps. Distinct from asteroids and close-approach data — these are rocks already on the ground.

## 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/meteorites-api/..."
```

## Pricing
- **Free** (Free) — 500 calls/Mo, 5 req/s
- **Hobby** ($6/Mo) — 20,000 calls/Mo, 15 req/s
- **Pro** ($17/Mo) — 100,000 calls/Mo, 30 req/s
- **Business** ($41/Mo) — 500,000 calls/Mo, 50 req/s

## Endpoints

### Meteorites

#### `GET /v1/class` — Meteorites of a classification

**Parameters:**
- `class` (query, required, string) — recclass Example: `L5`
- `limit` (query, optional, string) — Max 1-500 Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/meteorites-api/v1/class?class=L5&limit=50"
```

**Response:**
```json
{
    "data": {
        "class": "l5",
        "count": 50,
        "total": 4817,
        "meteorites": [
            {
                "id": "10911",
                "lat": 19.22778,
                "lon": 56.14278,
                "fall": "Found",
                "mass": 1750000,
                "name": "Ghubara",
                "year": 1954,
                "recclass": "L5"
            },
            {
                "id": "24058",
                "lat": 48.7,
                "lon": 45.7,
                "fall": "Found",
                "mass": 1225300,
                "name": "Tsarev",
                "year": 1968,
                "recclass": "L5"
            },
            {
                "id": "10062",
                "lat": 35.98333,
                "lon": -101.9,
                "fall": "Found",
                "mass": 450000,
                "name": "Etter",
                "year": 1965,
                "recclass": "L5"
            },
            {
                "id": "23193",
                "lat": 20.51667,
                "lon": 56.66667,
                "fall": "Found",
                "mass": 450000,
                "name": "Sayh al Uhaymir 001",
                "year": 2000,
                "recclass": "L5"
            },
            {
                "id": "22609",
                "lat": -39.85,
                "lon": -69.48333,
                "fall": "Found",
                "mass": 280000,
                "name": "Rio Limay",
                "year": 
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/meteorite` — Meteorite by name or id

**Parameters:**
- `name` (query, optional, string) — Meteorite name (preferred) Example: `Hoba`
- `id` (query, optional, string) — NASA id

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/meteorites-api/v1/meteorite?name=Hoba"
```

**Response:**
```json
{
    "data": {
        "meteorite": {
            "id": "11890",
            "lat": -19.58333,
            "lon": 17.91667,
            "fall": "Found",
            "mass": 60000000,
            "name": "Hoba",
            "year": 1920,
            "recclass": "Iron, IVB"
        }
    },
    "meta": {
        "timestamp": "2026-06-09T03:03:49.340Z",
        "request_id": "58a3011e-d52f-432f-94a2-09596f936b81"
    },
    "status": "ok",
    "message": "Meteorite retrieved successfully",
    "success": true
}
```

#### `GET /v1/search` — Search meteorites by name

**Parameters:**
- `q` (query, required, string) — Search term Example: `allende`
- `limit` (query, optional, string) — Max 1-100 Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/meteorites-api/v1/search?q=allende&limit=25"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "query": "allende",
        "total": 1,
        "meteorites": [
            {
                "id": "2278",
                "lat": 26.96667,
                "lon": -105.31667,
                "fall": "Fell",
                "mass": 2000000,
                "name": "Allende",
                "year": 1969,
                "recclass": "CV3"
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-09T03:03:49.434Z",
        "request_id": "f7611feb-6474-49cd-b43d-9edd8bc30dc6"
    },
    "status": "ok",
    "message": "Search results retrieved successfully",
    "success": true
}
```

#### `GET /v1/year` — Meteorites recovered in a year

**Parameters:**
- `year` (query, required, string) — Year Example: `1947`
- `limit` (query, optional, string) — Max 1-500 Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/meteorites-api/v1/year?year=1947&limit=50"
```

**Response:**
```json
{
    "data": {
        "year": 1947,
        "count": 19,
        "total": 19,
        "meteorites": [
            {
                "id": "23593",
                "lat": 46.16,
                "lon": 134.65333,
                "fall": "Fell",
                "mass": 23000000,
                "name": "Sikhote-Alin",
                "year": 1947,
                "recclass": "Iron, IIAB"
            },
            {
                "id": "24326",
                "lat": -19.3,
                "lon": 127.76667,
                "fall": "Found",
                "mass": 760000,
                "name": "Wolf Creek",
                "year": 1947,
                "recclass": "Iron, IIIAB"
            },
            {
                "id": "371",
                "lat": 33.63333,
                "lon": -104.26667,
                "fall": "Found",
                "mass": 75000,
                "name": "Acme",
                "year": 1947,
                "recclass": "H5"
            },
            {
                "id": "11840",
                "lat": 35.95,
                "lon": -84.56667,
                "fall": "Found",
                "mass": 30000,
                "name": "Harriman (Of)",
                "year": 1947,
                "recclass": "Iron, IVA"
            },
            {
                "id": "5289",
                "lat": -22.46667,
                "lon": -42.21667,
                "fall": "Found",
                "mass": 25000,
                "name": "Casimiro de
…(truncated, see openapi.json for full schema)
```

### Geo

#### `GET /v1/nearby` — Meteorites near a coordinate

**Parameters:**
- `lat` (query, required, string) — Latitude Example: `-19.58`
- `lon` (query, required, string) — Longitude Example: `17.91`
- `radius_km` (query, optional, string) — Radius km (default 500) Example: `300`
- `limit` (query, optional, string) — Max 1-200 Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/meteorites-api/v1/nearby?lat=-19.58&lon=17.91&radius_km=300&limit=25"
```

**Response:**
```json
{
    "data": {
        "count": 4,
        "total": 4,
        "origin": {
            "lat": -19.58,
            "lon": 17.91
        },
        "radius_km": 300,
        "meteorites": [
            {
                "id": "11890",
                "lat": -19.58333,
                "lon": 17.91667,
                "fall": "Found",
                "mass": 60000000,
                "name": "Hoba",
                "year": 1920,
                "recclass": "Iron, IVB",
                "distance_km": 0.8
            },
            {
                "id": "10061",
                "lat": -18.5,
                "lon": 16,
                "fall": "Found",
                "mass": 110700,
                "name": "Etosha",
                "year": 1970,
                "recclass": "Iron, IC",
                "distance_km": 233.9
            },
            {
                "id": "18055",
                "lat": -18,
                "lon": 16,
                "fall": "Fell",
                "mass": 121.5,
                "name": "Ovambo",
                "year": 1900,
                "recclass": "L6",
                "distance_km": 267
            },
            {
                "id": "17999",
                "lat": -21.98333,
                "lon": 16.93333,
                "fall": "Found",
                "mass": 6580,
                "name": "Okahandja",
                "year": 1926,
                "recclass": "Iron, IIAB",
                "distance_km": 285.9
            }
        ]

…(truncated, see openapi.json for full schema)
```

### Rankings

#### `GET /v1/rank` — Rank meteorites by metric

**Parameters:**
- `by` (query, optional, string) — mass | year Example: `mass`
- `order` (query, optional, string) — desc or asc Example: `desc`
- `limit` (query, optional, string) — Max 1-200 Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/meteorites-api/v1/rank?by=mass&order=desc&limit=10"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "order": "desc",
        "metric": "mass",
        "ranking": [
            {
                "id": "11890",
                "lat": -19.58333,
                "lon": 17.91667,
                "fall": "Found",
                "mass": 60000000,
                "name": "Hoba",
                "year": 1920,
                "value": 60000000,
                "position": 1,
                "recclass": "Iron, IVB"
            },
            {
                "id": "5262",
                "lat": 76.13333,
                "lon": -64.93333,
                "fall": "Found",
                "mass": 58200000,
                "name": "Cape York",
                "year": 1818,
                "value": 58200000,
                "position": 2,
                "recclass": "Iron, IIIAB"
            },
            {
                "id": "5247",
                "lat": -27.46667,
                "lon": -60.58333,
                "fall": "Found",
                "mass": 50000000,
                "name": "Campo del Cielo",
                "year": 1575,
                "value": 50000000,
                "position": 3,
                "recclass": "Iron, IAB-MG"
            },
            {
                "id": "5257",
                "lat": 35.05,
                "lon": -111.03333,
                "fall": "Found",
                "mass": 30000000,
                "name": "Canyon Diablo",
                "year": 1891,
                "value": 30000000,
   
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

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

**Response:**
```json
{
    "data": {
        "fell": 1107,
        "found": 44609,
        "service": "meteorites-api",
        "geocoded": 32186,
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/rank": "Rank by mass or year (by=mass|year, order, limit).",
            "GET /v1/year": "Meteorites recovered in a year (year=, e.g. 1947).",
            "GET /v1/class": "Meteorites of a classification (class=, e.g. L5), heaviest first.",
            "GET /v1/nearby": "Meteorites within radius_km of lat=/lon= (great-circle, nearest first).",
            "GET /v1/search": "Search meteorites by name (q=).",
            "GET /v1/meteorite": "Meteorite by name (name=, e.g. Hoba) or NASA id (id=)."
        },
        "year_range": [
            601,
            2013
        ],
        "description": "NASA catalogue of 45,000+ meteorites recovered on Earth: name, id, classification, mass, fell/found, year and recovery coordinates. Look up by name or id, find meteorites near a coordinate (haversine), rank by mass or year, list a class or year, or search. Distinct from asteroids-api and closeapproach-api. No key.",
        "distinct_classes": 454,
        "rankable_metrics": [
            "mass",
            "year"
        ],
        "total_meteorites": 45716
    },
    "meta": {
        "timestamp": "2026-06-09T03:03:49.923Z",
        "request_id": "449435e3-153f-4a00-8ad0-cbead3d904cf"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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