Discover/Pacific Power API
live

Pacific Power APIpacificpower.net

Access real-time outage data from Pacific Power across OR, WA, and CA. Query by ZIP, county, or state to get incident details, ETR, cause, and customer counts.

Endpoint health
verified 2d ago
get_outage_summary
get_outage_incidents
get_outage_by_zip
get_outage_by_county
get_service_areas
5/5 passing latest checkself-healing
Endpoints
5
Updated
26d ago

What is the Pacific Power API?

The Pacific Power API provides 5 endpoints covering real-time outage data across Oregon, Washington, and California. With get_outage_incidents, you can retrieve individual incident records including GPS coordinates, cause, crew status, and estimated time of restoration. Other endpoints expose state-level summaries, ZIP code lookups, county-level counts, and Pacific Power's served states list.

Try it
State code. Accepted values: OR, WA, CA.
api.parse.bot/scraper/47282ce0-6372-4988-aebc-2d35ad9c11b1/<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/47282ce0-6372-4988-aebc-2d35ad9c11b1/get_outage_summary?state=OR' \
  -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 pacificpower-net-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: Pacific Power outage data — bounded, re-runnable."""
from parse_apis.pacific_power_utility_api import PacificPower, State, InvalidInput

pp = PacificPower()

# Get outage summary for Oregon
summary = pp.outagesummaries.get(state=State.OR)
print(summary.state, summary.total_outages, summary.total_customers_affected, summary.last_updated)

# Browse counties with outages
for county in summary.counties:
    print(county.county_name, county.out_count_unplan, county.cust_out_unplan)

# Look up a specific ZIP code's outage status
zip_detail = summary.zip_outages.get(zip_code="97211")
print(zip_detail.zip_code, zip_detail.out_count_unplan, zip_detail.cust_out_unplan)

# Look up a specific county's outage status via typed error handling
try:
    county_detail = summary.county_outages.get(county="Douglas")
    print(county_detail.county_name, county_detail.out_count_plan, county_detail.cust_out_unplan)
except InvalidInput as exc:
    print(f"invalid input: {exc}")

# List incidents for that state (capped)
for incident in summary.incidents.list(limit=3):
    print(incident.cause, incident.etr, incident.zip, incident.cust_out, incident.crew_status)

# Get service area info
info = pp.serviceinfos.get()
print(info.states, info.description)

print("exercised: outagesummaries.get / county_outages.get / zip_outages.get / incidents.list / serviceinfos.get")
All endpoints · 5 totalmissing one? ·

High-level summary of outages for a given state. Returns total outage counts, total customers affected, and per-county/per-ZIP breakdowns of planned and unplanned outages. Data refreshes every few minutes; the last_updated timestamp indicates freshness.

Input
ParamTypeDescription
statestringState code. Accepted values: OR, WA, CA.
Response
{
  "type": "object",
  "fields": {
    "zips": "array of objects with zipCode, outCountPlan, outCountUnplan, custOutPlan, custOutUnplan",
    "state": "string, state code queried",
    "counties": "array of objects with countyName, outCountPlan, outCountUnplan, custOutPlan, custOutUnplan",
    "last_updated": "string, timestamp of last data refresh",
    "total_outages": "integer, total number of active outages",
    "total_customers_affected": "integer, total customers currently without power"
  },
  "sample": {
    "data": {
      "zips": [
        {
          "zipCode": "97211",
          "custOutPlan": 0,
          "outCountPlan": 0,
          "custOutUnplan": 3,
          "outCountUnplan": 3
        }
      ],
      "state": "OR",
      "counties": [
        {
          "countyName": "Benton",
          "custOutPlan": 1,
          "outCountPlan": 1,
          "custOutUnplan": 1,
          "outCountUnplan": 1
        }
      ],
      "last_updated": "Wednesday, June 10 01:30 PM, 2026",
      "total_outages": 27,
      "total_customers_affected": 209
    },
    "status": "success"
  }
}

About the Pacific Power API

Outage Summaries and Incident Details

The get_outage_summary endpoint accepts a state parameter (OR, WA, or CA) and returns aggregate outage counts alongside arrays of affected ZIP codes and counties. Each entry in the zips and counties arrays includes separate counts for planned vs. unplanned outages (outCountPlan, outCountUnplan) and the corresponding number of customers affected (custOutPlan, custOutUnplan). The response also includes total_outages, total_customers_affected, and a last_updated timestamp.

Incident-Level Data

get_outage_incidents returns the full list of discrete outage events for a state. Each incident object carries latitude and longitude for map placement, cause, etr (estimated time of restoration), crewStatus, custOut (customers out), outCount, reported timestamp, and zip. This makes it the right endpoint for building outage maps or alerting systems that need geographic and operational detail per event.

ZIP Code and County Lookups

get_outage_by_zip and get_outage_by_county accept a specific ZIP or county name alongside a state code and return planned/unplanned outage counts for that geography. Both return zero counts rather than an error when no active outages are present, so null-checking is not required on those fields. get_service_areas returns the list of state codes Pacific Power serves along with a coverage description — useful for validating inputs before querying the other endpoints.

Reliability & maintenanceVerified

The Pacific Power API is a managed, monitored endpoint for pacificpower.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pacificpower.net 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 pacificpower.net 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
2d ago
Latest check
5/5 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
  • Display a live outage map using incident latitude, longitude, cause, and etr fields from get_outage_incidents.
  • Build a county-level dashboard showing planned vs. unplanned outage counts and affected customer totals.
  • Send ZIP code outage alerts by polling get_outage_by_zip for specific service areas.
  • Aggregate state-wide customer impact numbers from get_outage_summary for utility monitoring reports.
  • Track crew deployment status across active incidents using the crewStatus field from get_outage_incidents.
  • Validate which states a user's address falls under before querying outage data, using get_service_areas.
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 Pacific Power offer an official developer API?+
Pacific Power does not publish a documented public developer API or API keys for third-party access. pacificpower.net exposes outage information through its public outage map, and this Parse API surfaces that data in structured JSON form.
How does `get_outage_incidents` differ from `get_outage_summary`?+
get_outage_incidents returns one object per discrete outage event, including coordinates, ETR, cause, crew status, and the reported timestamp. get_outage_summary collapses all events into aggregate counts grouped by ZIP code and county, plus state-level totals. Use incidents when you need per-event detail; use summary when you need rolled-up counts.
How current is the outage data?+
Each response from get_outage_summary and get_outage_incidents includes a last_updated timestamp reflecting when the source data was last refreshed. Outage maps at utilities typically update on a polling interval rather than in true real-time, so there may be a lag of several minutes between a new outage occurring and it appearing in results.
Does the API cover historical outage data or outage frequency over time?+
No. All five endpoints reflect the current active outage state only — there is no historical incident archive or time-series data exposed. You can fork this API on Parse and revise it to add a logging endpoint that stores each poll's results for trend analysis.
Can I query outages for a specific city or address rather than a ZIP code or county?+
The API currently supports lookups by ZIP code (get_outage_by_zip) and county (get_outage_by_county). City-level or address-level granularity is not exposed. You can fork this API on Parse and revise it to add an address-to-ZIP resolution step before passing the ZIP to the existing lookup endpoint.
Page content last updated . Spec covers 5 endpoints from pacificpower.net.
Related APIs in Government PublicSee all →
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.
citypower.co.za API
Check real-time loadshedding schedules, outage status, and electricity tariffs for Johannesburg, plus access customer service information, billing details, and company news. Plan your power usage with loadshedding schedules and stay updated on City Power's latest announcements, FAQs, and contact information.
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.
energymadeeasy.gov.au API
Search Australian energy plans by location and get detailed pricing, terms, and provider information. Compare plan features and availability across different areas to make informed decisions about energy providers.
hailpoint.com API
Retrieve historical hail maps and detailed storm impact data by location, state, city, or date range. Search for hail events by keyword or geographic filters, view damage severity categories, and access hail report markers with geographic coordinates.
foodpantries.org API
Find food pantries near you by searching your address, browsing by state, city, or county, and access detailed information about locations and services. Discover newly added pantries and explore comprehensive listings to locate food assistance resources in your area.
zoom.earth API
Search Zoom Earth for places and get live environmental data including weather forecasts by coordinates, satellite imagery timestamps, active tropical storm tracks, active fires, and current platform status.
lightningmaps.org API
Track real-time lightning strikes across the globe with precise coordinates, timestamps, and accuracy measurements from the Blitzortung.org network. Query live strike data and access information about detector stations worldwide to monitor weather patterns and atmospheric activity as it happens.