Hanford APIhanford.gov ↗
Access Hanford Site cleanup data via 4 endpoints: paginated press releases, monthly calendar events, event details, and live weather conditions.
What is the Hanford API?
The Hanford.gov API provides 4 endpoints covering public information about the Hanford nuclear cleanup site, including paginated press releases, monthly calendar events, event detail pages, and live on-site weather. The list_press_releases endpoint returns up to 15 releases per page with title, date, summary, and URL, while get_weather delivers current temperature, wind conditions, and a two-day forecast without requiring any parameters.
curl -X GET 'https://api.parse.bot/scraper/72ff1dd0-22c3-4461-8402-be3541696150/list_press_releases?page=1' \ -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 hanford-gov-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: Hanford Site Cleanup API — bounded, re-runnable."""
from parse_apis.hanford_gov_api import Hanford, InputFormatInvalid
client = Hanford()
# Current weather conditions and forecast at the Hanford Site.
weather = client.weather.get()
print(weather.current.temperature_f, weather.current.weather)
print("Today:", weather.forecast.today.high_f, "/", weather.forecast.today.low_f, weather.forecast.today.weather)
print("Alert active:", weather.alert.active)
# Recent press releases, capped at 5.
for release in client.press_releases.list(limit=5):
print(release.date, "-", release.title)
# Calendar events for a specific month; drill into the first one.
event_summary = client.event_summaries.list(month="9", year="2026", limit=1).first()
if event_summary is not None:
# Navigate from summary to full detail via typed instance method.
event = event_summary.details()
print(event.title)
print(event.category)
print(event.description[:200])
# Point lookup when the event_id is already known.
try:
detail = client.events.get(event_id="18097")
print(detail.date, detail.title)
except InputFormatInvalid:
print("Invalid event ID format")
print("exercised: weather.get / press_releases.list / event_summaries.list / details / events.get")
List Hanford Site press releases in reverse chronological order. Returns 15 releases per page with title, date, summary, and link to the full release. Pagination is controlled by the page parameter; omitting it returns the first page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (15 releases per page). |
{
"type": "object",
"fields": {
"page": "current page number",
"total": "total number of press releases available",
"per_page": "number of releases per page (15)",
"releases": "array of press release objects, each with date, title, url, and summary",
"total_pages": "total number of pages"
},
"sample": {
"data": {
"page": 1,
"total": 393,
"per_page": 15,
"releases": [
{
"url": "https://www.hanford.gov/c.cfm/media/attachments.cfm/DOE/DOE_Strengthens_Hanford_Advisory_Board_Empowers_Local_Community.pdf",
"date": "August 12, 2026",
"title": "DOE Strengthens Hanford Advisory Board, Empowers Local Community",
"summary": "The Department of Energy’s Office of Environmental Management, in coordination with the Hanford Field Office, is strengthening the Hanford Advisory Board to enhance engagement with those who live closest to Hanford."
}
],
"total_pages": 27
},
"status": "success"
}
}About the Hanford API
Press Releases and Calendar Events
The list_press_releases endpoint returns press releases in reverse chronological order, 15 per page. Each item in the releases array includes a date, title, url, and summary. Use the page integer parameter to paginate; omitting it returns page 1. The total and total_pages fields let you determine how many releases exist and how many pages to traverse.
The get_calendar_events endpoint accepts optional month (1–12) and year (four-digit string) parameters. Omitting both returns the current month. Results include an events array of objects with event_id and title, plus a month_year display string. Some events include a week_range field. The event_id values from this endpoint feed directly into get_event_detail.
Event Details and Weather
get_event_detail takes a single required event_id string and returns the full event record: title, category (such as "Comment Period / Feedback Opportunity"), date, and a description field containing the complete event text. This is the right endpoint when you need the full context behind a calendar listing.
get_weather requires no parameters and returns a current object with temperature_f, weather, wind, and observation_time, plus a forecast object with today and tomorrow sub-objects, each containing high_f, low_f, and weather. A top-level alert object indicates whether an active weather alert is in effect at the site.
The Hanford API is a managed, monitored endpoint for hanford.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hanford.gov 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 hanford.gov 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 Hanford cleanup milestones by polling
list_press_releasesfor new entries and surfacing them in an internal news feed. - Build a public comment deadline tracker by parsing
get_calendar_eventsfor events in the 'Comment Period / Feedback Opportunity' category. - Display current Hanford Site weather conditions in a field operations dashboard using
temperature_f,wind, andobservation_time. - Archive all press releases programmatically by iterating through all pages via the
pageparameter and storing each release'surlandsummary. - Alert stakeholders when a weather advisory is active by checking the
alert.activeboolean fromget_weather. - Pull the two-day forecast (
high_f,low_f) to schedule outdoor remediation activities around site weather conditions. - Aggregate monthly event descriptions by looping
get_calendar_eventsacross multiple months and enriching each result withget_event_detail.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does hanford.gov have an official developer API?+
What does `get_event_detail` return beyond what `get_calendar_events` provides?+
get_calendar_events returns only event_id, title, and optionally week_range. get_event_detail adds the full description text, the category label, and the specific date shown on the event page. You need to call get_event_detail with an event_id from the calendar listing to get those fields.How many press releases does each page return, and can I change that number?+
per_page field. The page size is fixed and cannot be adjusted via a parameter. Use the total_pages field in the response to determine how many requests you need to cover all available releases.Does the API expose the full text of press releases?+
list_press_releases returns a summary and a url for each release, but not the full article body. You can fork this API on Parse and revise it to add an endpoint that fetches the full release text by following the url field.Does the calendar cover future months beyond the current one?+
get_calendar_events accepts any month and year combination, so you can request past or future months. However, the API does not provide a bulk 'all upcoming events' endpoint or date-range filtering. You can fork this API on Parse and revise it to add a multi-month aggregation endpoint that iterates across a date range automatically.