---
name: geonet-hazard-api-ingestion
description: "How to get GeoNet New Zealand Hazard API data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load GeoNet felt quakes into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/geonet-hazard-api
Provider: https://api.geonet.org.nz
Checked against the provider's documentation: 2026-11-01

## Access
- No account or key. Send the documented versioned GeoJSON Accept header.
- This example requests quakes with calculated MMI of at least 3 in the New Zealand region.

## Request
```bash
curl -H 'Accept: application/vnd.geo+json;version=2' 'https://api.geonet.org.nz/quake?MMI=3'
```

## Format
GeoJSON FeatureCollection with point coordinates and public ID, origin time, depth, magnitude, MMI, locality and quality properties.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""GeoNet New Zealand quakes with MMI 3 or greater -> pandas -> Parquet."""
import requests
import pandas as pd

URL = "https://api.geonet.org.nz/quake"
r = requests.get(
    URL,
    params={"MMI": 3},
    headers={"Accept": "application/vnd.geo+json;version=2"},
    timeout=60,
)
r.raise_for_status()
features = r.json()["features"]
df = pd.DataFrame([feature["properties"] for feature in features])
df["longitude"] = [feature["geometry"]["coordinates"][0] for feature in features]
df["latitude"] = [feature["geometry"]["coordinates"][1] for feature in features]
df["time"] = pd.to_datetime(df["time"], utc=True)
df.to_parquet("geonet_quakes_mmi3.parquet", index=False)
print(len(df), "quakes", df["time"].min().isoformat(), "to",
      df["time"].max().isoformat(), "maximum magnitude", df["magnitude"].max())
```
Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 100 quakes 2026-10-01T17:18:26.382000+00:00 to 2026-11-01T16:22:13.682000+00:00 maximum magnitude 5.658060024388448

## Limits
- Rate limit: Not stated.
- The quick quake endpoint returns at most 100 events from the last 365 days.
- The volcano-quake endpoint covers the past 60 days.

## Quirks
- Pin the Accept-header version; without it, requests route to the current highest API version.
- time is the quake origin time. Store retrieval time separately when monitoring revisions.
- The quick endpoint is a rolling view of possibly felt events, not the full earthquake catalogue.

## Terms and attribution
- GeoNet content is licensed under Creative Commons Attribution 3.0 New Zealand.
- Credit Earth Sciences New Zealand and GeoNet when reusing the data.
- Terms page: https://www.geonet.org.nz/policy

## Sources
- https://api.geonet.org.nz: "The GeoNet project makes all its data and images freely available."
- https://api.geonet.org.nz: "Returns quakes possibly felt in the New Zealand region during the last 365 days up to a maximum of 100 quakes."
- https://api.geonet.org.nz: "Returns the current Volcanic Alert Level for volcanoes in New Zealand."
- https://www.geonet.org.nz/data/types/eq_catalogue: "Since the 1930's, earthquakes in the catalogue have been determined by instrumental records."
- https://www.geonet.org.nz/policy: "All data and images are made available free of charge through the GeoNet programme to facilitate research into hazards and assessment of risk."

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
