Discover/Go API
live

Go APIbmkg.go.id ↗

Access BMKG Indonesia data: village weather forecasts, earthquakes, marine forecasts, air quality, METAR/TAF, and more via 25 structured endpoints.

Endpoint health
verified 2h ago
list_tropical_cyclones
list_airports
search_weather_locations
get_port_forecast
get_weather_forecast
25/25 passing latest checkself-healing
Endpoints
25
Updated
3h ago

What is the Go API?

The BMKG API exposes 25 endpoints covering Indonesia's official meteorology, climatology, and geophysics data — from village-level 10-day weather forecasts to realtime earthquake catalogues. Use search_weather_locations to find a village code, then pass it to get_weather_forecast for hourly temperature, humidity, wind speed, and cloud cover. The same surface includes marine and port forecasts, high-wave warnings, aviation METAR/TAF, air-quality readings, and seismic bulletins.

This call costs2 credits / call— charged only on success
Try it
Free-text place name (village, district, regency or province), e.g. a district name.
→ api.parse.bot/scraper/14d37ac3-44d2-4d6b-ba48-f4fe3ea92fe8/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/14d37ac3-44d2-4d6b-ba48-f4fe3ea92fe8/search_weather_locations?query=kemayoran' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 25 totalmissing one? ·

Searches BMKG's administrative location index (province / regency / district / village) by free text and returns matching villages with their location_code, the key used by get_weather_forecast. One round trip; typically up to 10 matches, ordered by the site. An empty list means no village matched.

Input
ParamTypeDescription
queryrequiredstringFree-text place name (village, district, regency or province), e.g. a district name.
Response
{
  "type": "object",
  "fields": {
    "count": "number of locations returned",
    "query": "echo of the search text",
    "locations": "array of matching villages: location_code (adm4 village code), province_code, regency_code, district_code, province, regency, district, village, latitude, longitude, timezone (IANA)"
  },
  "sample": {
    "data": {
      "count": 1,
      "query": "kemayoran",
      "locations": [
        {
          "regency": "Kota Adm. Jakarta Pusat",
          "village": "Kemayoran",
          "district": "Kemayoran",
          "latitude": -6.1647214778,
          "province": "DKI Jakarta",
          "timezone": "Asia/Jakarta",
          "longitude": 106.8453837867,
          "regency_code": "31.71",
          "district_code": "31.71.03",
          "location_code": "31.71.03.1001",
          "province_code": "31"
        }
      ]
    },
    "status": "success"
  }
}

About the Go API

Weather Forecasts and Warnings

Start with search_weather_locations, which accepts a free-text place name and returns up to 10 matching villages, each with a location_code in NN.NN.NN.NNNN adm4 format. Feed that code into get_weather_forecast to retrieve roughly 10 days of 1–3-hourly entries per day: temperature_c, humidity_pct, wind_direction, wind_speed_kmh, cloud_cover_pct, and a weather description in Indonesian. The location object includes the village's time_zone (WIB, WITA, or WIT), coordinates, and full administrative hierarchy. For province-level hazards, list_weather_warnings returns active early-warning bulletins; get_weather_warning fetches the full text, infographic URL, and validity window for a specific province. get_extreme_weather_outlook gives a 3-day outlook broken down by category (moderate-heavy rain, strong wind, etc.) and province.

Marine, Port, and Aviation Weather

list_marine_areas returns roughly 375 named sea areas. get_marine_forecast for any area_code delivers daily entries with wind direction, speed and gust in knots, significant wave height in metres, wave category, and current speed. list_ports covers about 659 ports with coordinates; get_port_forecast adds visibility in km and tidal height in metres on top of the marine fields. For aviation, list_airports lists ~137 Indonesian airports by ICAO code; get_airport_weather returns the latest raw METAR string, the latest raw TAF string, and an hourly aerodrome forecast with visibility_km, temperature_c, dew_point_c, and pressure_hpa. list_high_wave_warnings provides the current national bulletin with wave categories (sedang 1.25–2.5 m through ekstrem >6 m) broken out by coastal region.

Earthquakes and Seismic Bulletins

list_realtime_earthquakes returns the 200 most recent auto-located events with event_id, time_utc, latitude, longitude, depth_km, magnitude, and area. list_earthquakes serves three distinct InaTEWS-reviewed bulletins selected via the category parameter: m5 (magnitude 5.0+ events), felt (events reported by the public, including MMI intensities per locality in the felt field), and tsunami_potential (events that triggered a warning). Each bulletin contains up to 30 events.

Air Quality and Other Environmental Data

list_pm25_stations gives the latest hourly PM2.5 reading and air-quality category from ~27 automatic stations. get_pm25_station returns today's full hourly series for one station. list_air_pollutant_monthly supports four pollutant values — so2, no2, spm, and rain_ph — returning station-level monthly readings with published regulatory thresholds where available. get_surface_ozone delivers daily mean, max, and min ozone statistics for the latest published month. Additional endpoints cover drought warnings, lightning strikes, sunrise/sunset tables, weather-modification (cloud-seeding) operation history filterable by year, tropical cyclone tracks from TCWC Jakarta, and BMKG publications.

Reliability & maintenanceVerified

The Go API is a managed, monitored endpoint for bmkg.go.id — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bmkg.go.id 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 bmkg.go.id 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.

Last verified
2h ago
Latest check
25/25 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build an Indonesia travel app that pulls village-level hourly forecasts via get_weather_forecast for any destination.
  • Monitor active province-level storm warnings using list_weather_warnings and get_weather_warning for alerting systems.
  • Display realtime seismic activity on a map using list_realtime_earthquakes with magnitude, depth, and epicentre fields.
  • Track Indonesian port and sea-area wave heights via get_port_forecast and get_marine_forecast for maritime logistics.
  • Integrate raw METAR and TAF strings from get_airport_weather into flight-planning or dispatch tooling for Indonesian airports.
  • Analyse PM2.5 trends across BMKG stations using list_pm25_stations and get_pm25_station for environmental reporting.
  • Query the cloud-seeding operation history via list_weather_modification_operations filtered by year for research datasets.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does BMKG provide an official public developer API?+
BMKG publishes some open data through its website at bmkg.go.id and the InaTEWS earthquake feed, but there is no single versioned developer API with documentation and keys. This Parse API consolidates the available public data into consistent, structured endpoints.
What is the difference between list_realtime_earthquakes and list_earthquakes?+
list_realtime_earthquakes returns the 200 most recent automatically located events at all magnitudes — useful for near-real-time monitoring but subject to auto-location errors. list_earthquakes serves three reviewed InaTEWS bulletins (up to 30 events each): m5 for magnitude 5.0+ events, felt for events reported by the public with MMI intensities, and tsunami_potential for events that triggered a warning. Use the category parameter to select which bulletin you need.
Are historical weather forecasts or past earthquake events beyond the current bulletins available?+
Not currently. get_weather_forecast returns only the current forecast window (~10 days), list_realtime_earthquakes covers the most recent 200 auto-located events, and list_earthquakes bulletins hold up to 30 reviewed events each. No historical archive endpoints are included. You can fork this API on Parse and revise it to add endpoints that retrieve deeper historical records if BMKG exposes them.
How granular is the weather forecast — can I get data below village level?+
The finest granularity is the adm4 village level. Each village is identified by a location_code in NN.NN.NN.NNNN format retrieved via search_weather_locations. Forecasts are issued per village; no sub-village or coordinate-interpolated grid is exposed. If you need point-level interpolation, you can fork the API on Parse and revise it to compute estimates from nearby village codes.
Does the API cover all Indonesian provinces for weather warnings, or only some?+
list_weather_warnings returns only provinces that currently have an active early warning issued by BMKG. Provinces with no active warning do not appear in the list, and calling get_weather_warning for such a province returns a 422 input_not_found response. The extreme weather outlook from get_extreme_weather_outlook covers all flagged provinces over a 3-day window and is a better choice for a nationwide daily summary.
Page content last updated . Spec covers 25 endpoints from bmkg.go.id.
Related APIs in WeatherSee all →
dataonline.bmkg.go.id API
Access Indonesia's weather station information and check the availability of meteorological data including rainfall, temperature, and sunshine duration readings. Search across different regions and station types to find the weather data you need.
wunderground.com API
Access real-time weather conditions, multi-day forecasts, and detailed historical weather data from thousands of personal and airport weather stations worldwide. Search and retrieve current observations, hourly history, and monthly records to power your weather applications and analysis.
bom.gov.au API
Get accurate weather forecasts for Australian cities with temperature, precipitation, UV index, and conditions from the Bureau of Meteorology. Search for any location and retrieve multi-day forecasts to plan your activities with confidence.
metoffice.gov.uk API
Access detailed UK weather forecasts, real-time lightning tracking, and weather warnings from the Met Office. Search locations to retrieve hourly, daily, regional, and long-range predictions, and monitor storm activity with spot forecasts across any geographic area.
smhi.se API
Get accurate weather forecasts, current conditions, and severe weather warnings for any location across Sweden. Search for specific Swedish locations to retrieve detailed meteorological analysis and real-time weather data.
weatherspark.com API
Get historical weather data, current METAR reports, and monthly climate summaries for any location by searching WeatherSpark's comprehensive weather database. Access detailed weather insights including temperature trends, precipitation patterns, and atmospheric conditions to power weather-dependent applications and analysis.
meteo.pl API
Get detailed weather forecasts with temperature, pressure, wind, precipitation, and cloud data for any location using multiple weather models (UM, GFS) from Poland's Institute of Meteorology and Water Management. Search locations and access available forecasts to plan ahead with comprehensive meteorological information.
accuweather.com API
Get real-time weather conditions, multi-day forecasts, and health alerts for any location worldwide. Search cities and access detailed data including allergen information and air quality to plan your activities with confidence.