Next free-source hunt
We check for new free data every weekday.
Datasets / OSINT
psmsl.org/

PSMSL tide-gauge mean sea level (RLR)

Freeauth: noneCustom#osint#maritime#sea-level#tide-gauge#climate✓ verified Nov 6, 2026

PSMSL tide-gauge mean sea level (RLR)

The Permanent Service for Mean Sea Level (PSMSL) publishes Revised Local Reference (RLR) monthly and annual tide-gauge mean sea-level series as free downloadable archives, with a global station list and complete-dataset zips.

Coverage

Global PSMSL RLR tide-gauge stations. Station-level start years vary; see the RLR station list and complete-dataset pages. Distinct from the near-real-time IOC Sea Level Station Monitoring Facility already listed.

Verdict

This is the research-grade global mean sea-level tide-gauge archive for agents tracking long-run water-level change at ports and coasts as a berth and access-risk signal. PSMSL says its datasets are "free for all to use" and asks users to cite the data set and Holgate et al. 2013 with the Retrieved/Extracted date. Signal Lab does not host the zips.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Probe PSMSL RLR monthly zip headers in memory. Checked against the provider's documentation on Nov 6, 2026.

Raw skill file (/skills/psmsl-mean-sea-level.md)Also in our MCP server: call get_ingestion_skill with {"slug": "psmsl-mean-sea-level"}.

Access

  • No key. HTTPS HEAD/GET of the RLR monthly zip.

Request

bash
curl -sS -L -I 'https://psmsl.org/data/obtaining/rlr.monthly.data/rlr_monthly.zip'

Format

ZIP archive of RLR monthly tide-gauge files as documented on psmsl.org/data/obtaining/.

Load into pandas (in memory)

Needs Python 3 with requests and pandas. The provider's terms limit storage or leave it unclear, so this snippet does not write a file.

python
"""Probe PSMSL RLR monthly zip headers in memory (citation required; writes no file)."""
import requests
import pandas as pd

URL = "https://psmsl.org/data/obtaining/rlr.monthly.data/rlr_monthly.zip"
r = requests.head(URL, allow_redirects=True, timeout=30)
r.raise_for_status()
df = pd.DataFrame([{
    "url": URL,
    "status": r.status_code,
    "content_type": r.headers.get("Content-Type"),
    "content_length": r.headers.get("Content-Length"),
}])
print(df.to_string(index=False))

Run by us on 2026-11-06 (python 3 | requests). Result: RLR monthly zip URL returned HTTP 200 (application/zip) on 2026-11-06.

Limits

  • Not stated numeric rate limit on the checked PSMSL pages.

Quirks

  • Cite PSMSL and Holgate et al. 2013 with the Retrieved/Extracted date.
  • Do not commit the zip into git.
  • This snippet writes no file; it only checks headers in memory.

Terms and attribution

  • PSMSL datasets are "free for all to use."
  • Reference page: cite the data set and Holgate et al. 2013 with Retrieved date; this probe does not store the archive.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer