| name | pangaea-data-api |
| description | Access earth and environmental science datasets via PANGAEA API |
| metadata | {"openclaw":{"emoji":"🌍","category":"domains","subcategory":"geoscience","keywords":["PANGAEA","earth science data","oceanography","paleoclimate","environmental data","geoscience repository"],"source":"https://www.pangaea.de/"}} |
PANGAEA Data Repository API
Overview
PANGAEA is the world's leading data repository for earth and environmental sciences, hosting 400K+ datasets with 20B+ data points. It archives research data from oceanography, paleoclimatology, geology, ecology, and atmospheric science. Each dataset has a DOI and is linked to the originating publication. The API provides search, metadata retrieval, and data download. Free, no authentication required.
API Endpoints
Search API
curl "https://www.pangaea.de/advanced/search.php?q=ocean+temperature&count=20&type=json"
curl "https://www.pangaea.de/advanced/search.php?\
q=sediment+core&minlat=-60&maxlat=-30&minlon=-180&maxlon=180&type=json"
curl "https://www.pangaea.de/advanced/search.php?\
q=carbon+dioxide¶m=Atmospheric+CO2&type=json"
curl "https://www.pangaea.de/advanced/search.php?\
q=Arctic+ice&mindate=2020-01-01&maxdate=2026-12-31&type=json"
ElasticSearch API
curl -X POST "https://ws.pangaea.de/es/pangaea/panmd/_search" \
-H "Content-Type: application/json" \
-d '{
"query": {
"bool": {
"must": [
{"match": {"citation.title": "ocean temperature"}}
],
"filter": [
{"range": {"citation.year": {"gte": 2020}}}
]
}
},
"size": 20
}'
Dataset Access
curl "https://doi.pangaea.de/10.1594/PANGAEA.123456?format=metainfo_json"
curl "https://doi.pangaea.de/10.1594/PANGAEA.123456?format=textfile"
curl "https://doi.pangaea.de/10.1594/PANGAEA.123456?format=csv"
OAI-PMH Harvesting
curl "https://ws.pangaea.de/oai/provider?verb=ListRecords&metadataPrefix=oai_dc"
curl "https://ws.pangaea.de/oai/provider?verb=GetRecord&identifier=oai:pangaea.de:doi:10.1594/PANGAEA.123456&metadataPrefix=oai_dc"
Query Parameters (Search API)
| Parameter | Description | Example |
|---|
q | Search query | q=coral+reef+bleaching |
count | Results per page | count=50 |
offset | Pagination offset | offset=20 |
minlat/maxlat | Latitude bounds | -90 to 90 |
minlon/maxlon | Longitude bounds | -180 to 180 |
mindate/maxdate | Temporal filter | 2020-01-01 |
param | Parameter/measurement | Temperature |
topic | Topic filter | Atmosphere, Biosphere |
type | Response format | json, xml |
Python Usage
import requests
import pandas as pd
from io import StringIO
SEARCH_URL = "https://www.pangaea.de/advanced/search.php"
ES_URL = "https://ws.pangaea.de/es/pangaea/panmd/_search"
def search_pangaea(query: str, count: int = 20,
bbox: dict = None) -> list:
"""Search PANGAEA for earth science datasets."""
params = {"q": query, "count": count, "type": "json"}
if bbox:
params.update({
"minlat": bbox.get("south", -90),
"maxlat": bbox.get("north", 90),
"minlon": bbox.get("west", -180),
"maxlon": bbox.get("east", 180),
})
resp = requests.get(SEARCH_URL, params=params, timeout=30)
resp.raise_for_status()
data = resp.json()
results = []
for item in data.get("results", []):
results.append({
"doi": item.get("URI", ""),
"title": item.get("citation", ""),
"year": item.get("year"),
"size": item.get(),
: item.get(, []),
: item.get(),
})
results
() -> pd.DataFrame:
url =
resp = requests.get(url, timeout=)
resp.raise_for_status()
lines = resp.text.split()
header_end = (
(i i, line (lines) line.startswith()),
-,
)
data_text = .join(lines[header_end + :])
pd.read_csv(StringIO(data_text), sep=)
() -> :
bbox = {
: lat - radius_deg,
: lat + radius_deg,
: lon - radius_deg,
: lon + radius_deg,
}
search_pangaea(query, bbox=bbox)
datasets = search_pangaea(, count=)
ds datasets:
()
()
arctic = search_by_location(, lat=, lon=)
ds arctic[:]:
()
Data Topics
| Topic | Coverage |
|---|
| Oceans | Temperature, salinity, currents, chemistry |
| Paleoclimate | Ice cores, sediment cores, tree rings |
| Atmosphere | CO2, aerosols, weather observations |
| Lithosphere | Geology, tectonics, geochemistry |
| Biosphere | Biodiversity, ecology, marine biology |
| Cryosphere | Sea ice, glaciers, permafrost |
References