IAEA APIpris.iaea.org ↗
Access IAEA PRIS data on nuclear reactors worldwide — operational status, capacity, construction progress, country stats, and full reactor history across 6 endpoints.
What is the IAEA API?
This API exposes 6 endpoints covering the IAEA Power Reactor Information System (PRIS), the authoritative global registry of nuclear power reactors. You can retrieve country-level summaries of operational, under-construction, and permanently shutdown reactors, or drill into a specific facility using reactor_details to get capacity figures, key milestone dates, owner and operator names, and lifetime performance metrics.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/879920c6-644e-4b27-bb71-af2c9b764c5d/list_countries' \ -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 pris-iaea-org-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: IAEA PRIS nuclear reactor data — bounded, re-runnable."""
from parse_apis.iaea_pris_power_reactor_information_system_api import (
PRIS, ReactorNotFound
)
client = PRIS()
# List all countries with nuclear programs, take first few.
for country in client.countrysummaries.list(limit=5):
print(country.code, country.name)
# Drill into one country's full details via the nav op.
summary = client.countrysummaries.list(limit=1).first()
detail = summary.details()
print(detail.name, detail.total_reactors, "reactors")
# Access nested typed resources on the country detail.
if detail.summary.in_operation:
print("Operational:", detail.summary.in_operation.number_of_reactors, "reactors,",
detail.summary.in_operation.total_reference_power_mw, "MW")
# Fetch a specific reactor by ID with typed error handling.
try:
reactor = client.reactors.get(reactor_id="3")
print(reactor.name, reactor.type, reactor.status)
print("Capacity:", reactor.capacities.reference_unit_power_mw, "MW net")
print("Grid connection:", reactor.dates.grid_connection)
if reactor.lifetime_performance.as_of_year:
print("Load factor:", reactor.lifetime_performance.load_factor,
"as of", reactor.lifetime_performance.as_of_year)
except ReactorNotFound as exc:
print(f"Reactor not found: {exc}")
# Global operational overview — singleton fetch.
ops = client.operationaloverviews.get()
print("World operational:", ops.in_operation.total_reactors, "reactors,",
ops.in_operation.total_net_electrical_capacity_mw, "MW")
print("exercised: countrysummaries.list / details / reactors.get / operationaloverviews.get")
Returns all countries that have or have had nuclear reactor programs, each with its ISO 2-letter code and full name. Use the returned country_code values as input to the country_details endpoint.
No input parameters required.
{
"type": "object",
"fields": {
"countries": "array of objects with country_code and country_name",
"total_countries": "integer count of countries"
},
"sample": {
"data": {
"countries": [
{
"country_code": "AR",
"country_name": "Argentina"
},
{
"country_code": "US",
"country_name": "United States of America"
}
],
"total_countries": 38
},
"status": "success"
}
}About the IAEA API
Country-Level Nuclear Statistics
Start with list_countries to retrieve all countries that have or have had nuclear programs, each with an ISO 2-letter country_code and country_name. Feed those codes into country_details to get a full reactor roster for any country — fields include reactor name, type, status, location, first_grid_connection, gross and net electrical capacities, and a nuclear_share object containing trend data and electricity production values. The summary sub-object breaks down reactor counts by status category for the country.
Fleet Status Endpoints
Four dedicated endpoints slice the global fleet by status. operational_reactors_by_country returns both in-operation and suspended-operation reactors, each grouped as a countries array with per-country reactor counts and total_net_electrical_capacity_mw, plus global totals. under_construction_by_country covers facilities currently being built, and shutdown_reactors_by_country covers those permanently decommissioned — both follow the same response shape, making it straightforward to compare fleet sizes across lifecycle stages.
Individual Reactor Records
The reactor_details endpoint accepts a numeric reactor_id (for example, 3 for ATUCHA-1) and returns a detailed record: type, model, owner, operator, status, country, a capacities object with reference_unit_power_mw, design_net_capacity_mw, gross_capacity_mw, and thermal_capacity_mw, plus a dates object with key milestones such as first criticality, grid connection, and commercial operation. Reactor IDs are exposed via the country_details endpoint's reactor list.
The IAEA API is a managed, monitored endpoint for pris.iaea.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pris.iaea.org 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 pris.iaea.org 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?+
- Track total global nuclear generating capacity in MW across operational fleets using
operational_reactors_by_country. - Monitor construction pipelines by country using
under_construction_by_countryto follow new reactor projects. - Build a decommissioning timeline by combining
shutdown_reactors_by_countrywith individualreactor_detailsmilestone dates. - Compare nuclear share trends country-by-country using the
nuclear_sharetrend array fromcountry_details. - Populate an energy research database with reactor specifications — owner, operator, thermal capacity, and model — via
reactor_details. - Generate a country-level nuclear capacity report by looping
country_detailsover codes returned fromlist_countries. - Cross-reference reactor grid connection dates and operational status to analyze fleet aging across different countries.
| 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 IAEA PRIS have an official developer API?+
How do reactor IDs work, and where do I find them?+
country_details for any given country_code. Retrieve a country's reactors first, note the IDs, then call reactor_details with those IDs to get full specifications.What does `reactor_details` return for capacity fields?+
capacities object includes four distinct figures: reference_unit_power_mw (the PRIS reference value), design_net_capacity_mw, gross_capacity_mw, and thermal_capacity_mw. These can differ meaningfully for older reactors where design specs and operational ratings diverged over time.Does the API expose annual energy output or capacity factor data per reactor?+
reactor_details endpoint returns lifetime performance metadata and key dates, and country_details includes a nuclear_share trend object with electricity production values at the country level, but granular per-reactor annual generation or capacity factor time series are not currently exposed. You can fork this API on Parse and revise it to add an endpoint covering per-reactor annual operating history if that data is required.Is data available for countries that had reactors but shut them all down?+
list_countries includes all countries that have or have had nuclear reactors, not just those with active fleets. shutdown_reactors_by_country and country_details with the relevant country_code will return records for countries like Italy or Kazakhstan where all reactors are permanently decommissioned.