Gov APIearthquake.phivolcs.dost.gov.ph ↗
Access real-time and historical Philippines earthquake data from PHIVOLCS — latest events, monthly archives, and detailed bulletins with intensities and depth.
What is the Gov API?
This API exposes 5 endpoints covering earthquake data from the Philippine Institute of Volcanology and Seismology (PHIVOLCS), returning fields like magnitude, depth, coordinates, tectonic origin, and shaking intensities. Use get_latest_earthquakes to pull current-month seismic events directly from the PHIVOLCS bulletin system, or query any historical month going back through the full archive. Detailed bulletin pages include damage expectations, aftershock outlooks, and epicentral map image URLs.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/59541784-c125-412a-a5b4-0b05b4d4e4b9/get_latest_earthquakes' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace earthquake-phivolcs-dost-gov-ph-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: PHIVOLCS Earthquake SDK — seismic event queries, bounded and re-runnable."""
from parse_apis.PHIVOLCS_Earthquake_Information_API import (
Phivolcs, Month, Year, EarthquakeNotFound,
)
client = Phivolcs()
# List the latest earthquakes for the current month (capped at 5).
for eq in client.earthquakes.latest(limit=5):
print(eq.date_time, eq.magnitude, eq.location)
# Retrieve historical earthquakes for a specific month using enums.
for eq in client.earthquakes.by_month(year=Year._2025, month=Month.FEBRUARY, limit=3):
print(eq.date_time, eq.magnitude, eq.depth_km)
# Drill into the first recent earthquake's full bulletin detail.
quake = client.earthquakes.latest(limit=1).first()
if quake:
detail = quake.detail()
print(detail.magnitude_full, detail.origin, detail.expecting_damage)
# Build a bulletin URL from known event identifiers.
built = client.earthquakes.build_url(date_time_code="2025_0204_2134", bulletin_suffix="B3F")
print(built.url)
# Discover available archive months.
for archive in client.archives.list(limit=3):
print(archive.year, archive.month, archive.url)
# Typed error handling: catch a not-found when fetching a bad bulletin.
try:
bad = client.earthquake("https://earthquake.phivolcs.dost.gov.ph/2099_Earthquake_Information/January/2099_0101_0000_B1.html")
bad.detail()
except EarthquakeNotFound as exc:
print(f"Not found: {exc}")
print("exercised: earthquakes.latest / earthquakes.by_month / quake.detail / earthquakes.build_url / archives.list / EarthquakeNotFound")
Fetches the current month's earthquake listings from the PHIVOLCS home page. Returns all recorded seismic events with date/time, coordinates, depth, magnitude, location description, and a link to the full bulletin. The list is ordered most-recent-first and covers the current calendar month only; for older data use get_monthly_earthquakes.
No input parameters required.
{
"type": "object",
"fields": {
"earthquakes": "array of earthquake summary objects"
},
"sample": {
"data": {
"earthquakes": [
{
"depth_km": "033",
"latitude": "05.56",
"location": "030km N 58° W of Balut Island (Municipality Of Sarangani) (Davao Occidental)",
"date_time": "11 June 2026 - 11:52 AM",
"longitude": "125.19",
"magnitude": "1.5",
"bulletin_url": "https://earthquake.phivolcs.dost.gov.ph/2026_Earthquake_Information/June/2026_0611_0352_B1F.html"
}
]
},
"status": "success"
}
}About the Gov API
Earthquake Listings and Archives
get_latest_earthquakes returns the current month's seismic events as an array of objects, each carrying date_time, latitude, longitude, depth_km, magnitude, location, and a bulletin_url linking to the full event record. For any past month, get_monthly_earthquakes accepts a year (integer) and a full month name (e.g., "March") and returns the same data shape. To discover which year/month combinations are available in the archive, call list_available_archives, which returns an array of objects with year, month, and url.
Bulletin Detail
get_earthquake_detail takes a bulletin_url from any listing endpoint and returns the full event record: origin (tectonic type), magnitude_full (with scale designation), depth_of_focus_km, location_full (narrative description with coordinates), expecting_damage, date_time, issued_on, bulletin_no, prepared_by initials, and a map_image_url pointing to the epicentral map. The map_image_url field may be null if no map was published with the bulletin.
URL Construction Helper
get_earthquake_bulletin_url is a client-side utility that constructs a bulletin URL from a date_time_code (format YYYY_MMDD_HHMM) and a bulletin_suffix (e.g., "B3F", "B1"). No network request is made — it assembles the standard PHIVOLCS URL pattern and returns the url string, which can then be passed directly to get_earthquake_detail.
Coverage Notes
All data reflects official PHIVOLCS bulletin records for the Philippines region. Event records span multiple years via the archive system. The get_earthquake_detail endpoint surfaces the shaking intensity table where published, covering affected provinces and municipalities at various intensity levels.
The Gov API is a managed, monitored endpoint for earthquake.phivolcs.dost.gov.ph — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when earthquake.phivolcs.dost.gov.ph changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official earthquake.phivolcs.dost.gov.ph API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor real-time seismic activity in the Philippines using magnitude and depth fields from
get_latest_earthquakes - Build historical earthquake frequency charts for a given province by iterating
get_monthly_earthquakesacross archived months - Trigger damage-assessment workflows when
expecting_damageis affirmative in a bulletin detail response - Display epicentral maps in a web app by consuming the
map_image_urlfield fromget_earthquake_detail - Construct time-series datasets of Philippine seismicity by looping through all entries returned by
list_available_archives - Cross-reference tectonic origin types using the
originfield to study fault activity patterns over time - Feed bulletin numbers and preparer initials into an audit log for official PHIVOLCS record tracking
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does PHIVOLCS provide an official developer API?+
What does `get_earthquake_detail` return beyond what the listing endpoints provide?+
get_earthquake_detail expands a bare listing record into the full bulletin: tectonic origin, magnitude_full with scale type, depth_of_focus_km, location_full narrative, expecting_damage, shaking intensities by area, bulletin_no, issued_on timestamp, prepared_by initials, and a map_image_url. The listing endpoints (get_latest_earthquakes, get_monthly_earthquakes) only return the summary row fields — coordinates, depth, magnitude, location string, and bulletin URL.How far back does the archive go?+
list_available_archives to get the actual set of year/month combinations currently accessible; it reflects only what the bulletin system makes available, not a fixed historical window.