Discover/IAEA API
live

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.

Endpoint health
verified 6d ago
list_countries
under_construction_by_country
shutdown_reactors_by_country
operational_reactors_by_country
country_details
6/6 passing latest checkself-healing
Endpoints
6
Updated
21d ago

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.

Try it

No input parameters required.

api.parse.bot/scraper/879920c6-644e-4b27-bb71-af2c9b764c5d/<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/879920c6-644e-4b27-bb71-af2c9b764c5d/list_countries' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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")
All endpoints · 6 totalmissing one? ·

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.

Input

No input parameters required.

Response
{
  "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.

Reliability & maintenanceVerified

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.

Last verified
6d ago
Latest check
6/6 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
  • 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_country to follow new reactor projects.
  • Build a decommissioning timeline by combining shutdown_reactors_by_country with individual reactor_details milestone dates.
  • Compare nuclear share trends country-by-country using the nuclear_share trend array from country_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_details over codes returned from list_countries.
  • Cross-reference reactor grid connection dates and operational status to analyze fleet aging across different countries.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does IAEA PRIS have an official developer API?+
IAEA PRIS does not publish a documented public REST API for programmatic access. The PRIS database is available as a browsable web interface at pris.iaea.org; this Parse API provides structured programmatic access to the same data.
How do reactor IDs work, and where do I find them?+
Reactor IDs are numeric strings — for example, '3' corresponds to ATUCHA-1 and '85' to BIBLIS-A. The IDs are exposed in the reactor list returned by 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?+
The 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?+
Not currently. The 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?+
Yes. 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.
Page content last updated . Spec covers 6 endpoints from pris.iaea.org.
Related APIs in Government PublicSee all →
euenergy.live API
Monitor real-time and historical electricity prices across Europe with hourly granularity, including load data and city-level pricing information. Look up current rates by country or city, track price trends over time, and access comprehensive bulk historical data to analyze European energy markets.
data.nordpoolgroup.com API
Monitor Nord Pool electricity market data including day-ahead prices, system prices, intraday statistics, and market areas across different regions. Access real-time and recent historical pricing information to track energy market trends and make informed decisions about electricity trading and consumption.
powernext.com API
Access real-time and historical European energy market data including natural gas spot and futures prices, German power futures, and intraday power information. Monitor market snapshots and Guarantees of Origin to stay informed on energy market movements across Europe.
caiso.com API
Access real-time and intraday data from California's electricity grid (CAISO), including current demand and forecasts, generation supply mix, renewable energy levels, CO2 emissions and carbon intensity, locational marginal prices (LMPs), and overall grid operating status.
gasstorage.dk API
Monitor Danish gas storage capacity, hourly nominations, and daily utilization metrics in real-time to track energy supply and storage operations across the country's facilities. Access detailed data on storage levels and gas flow patterns to make informed decisions about energy management and market analysis.
epexspot.com API
Access real-time and historical European power market data including day-ahead and intraday pricing results, monitor auction statuses across market areas, and stay updated with the latest newsroom articles from EPEX SPOT. Track power prices and market activity across different European regions to make informed trading and investment decisions.
energy-charts.de API
Monitor real-time electricity prices, production data, and market forecasts across Germany and Europe to track energy costs and grid conditions. Access day-ahead and intraday pricing, power generation forecasts, cross-border trading flows, and traffic signal alerts for comprehensive energy market insights.
ameren.com API
Retrieve hourly electricity prices, current outage summaries, rate information, and energy efficiency programs from Ameren. Covers Illinois and Missouri service areas with real-time and forecast pricing data.