LMP Pricing Data#
Each ISO offers different LMP markets, but you can query them with a standardized API
import gridstatus
nyiso = gridstatus.NYISO()
nyiso.get_lmp(date="today", market="REAL_TIME_5_MIN", locations="ALL")
2026-04-21 02:23:21 - INFO - Requesting http://mis.nyiso.com/public/csv/realtime/20260420realtime_zone.csv
| Time | Interval Start | Interval End | Market | Location | Location Type | LMP | Energy | Congestion | Loss | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:05:00-04:00 | REAL_TIME_5_MIN | CAPITL | Zone | 48.08 | 46.50 | -0.00 | 1.58 |
| 1 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:05:00-04:00 | REAL_TIME_5_MIN | CENTRL | Zone | 46.08 | 46.50 | -0.00 | -0.42 |
| 2 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:05:00-04:00 | REAL_TIME_5_MIN | DUNWOD | Zone | 48.40 | 46.49 | -0.00 | 1.91 |
| 3 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:05:00-04:00 | REAL_TIME_5_MIN | GENESE | Zone | 46.36 | 46.50 | -0.00 | -0.14 |
| 4 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:00:00-04:00 | 2026-04-20 00:05:00-04:00 | REAL_TIME_5_MIN | H Q | Zone | 46.78 | 46.50 | -0.00 | 0.28 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 4120 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:25:00-04:00 | REAL_TIME_5_MIN | NORTH | Zone | 47.36 | 47.31 | -0.00 | 0.05 |
| 4121 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:25:00-04:00 | REAL_TIME_5_MIN | NPX | Zone | 65.05 | 47.32 | 15.93 | 1.80 |
| 4122 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:25:00-04:00 | REAL_TIME_5_MIN | O H | Zone | 45.09 | 47.31 | -0.00 | -2.22 |
| 4123 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:25:00-04:00 | REAL_TIME_5_MIN | PJM | Zone | 47.32 | 47.32 | -0.00 | 0.00 |
| 4124 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:20:00-04:00 | 2026-04-20 22:25:00-04:00 | REAL_TIME_5_MIN | WEST | Zone | 45.94 | 47.31 | -0.00 | -1.37 |
4125 rows × 10 columns
And here is querying CAISO
import gridstatus
caiso = gridstatus.CAISO()
locations = ["TH_NP15_GEN-APND", "TH_SP15_GEN-APND", "TH_ZP26_GEN-APND"]
caiso.get_lmp(date="today", market='DAY_AHEAD_HOURLY', locations=locations)
2026-04-21 02:23:21 - DEBUG - Dataset config: {'query': {'path': 'SingleZip', 'resultformat': 6, 'queryname': 'PRC_LMP', 'version': 12}, 'params': {'market_run_id': 'DAM', 'node': None, 'grp_type': [None, 'ALL', 'ALL_APNODES']}}
2026-04-21 02:23:21 - INFO - Fetching URL: http://oasis.caiso.com/oasisapi/SingleZip?resultformat=6&queryname=PRC_LMP&version=12&market_run_id=DAM&node=TH_NP15_GEN-APND,TH_SP15_GEN-APND,TH_ZP26_GEN-APND&startdatetime=20260420T07:00-0000&enddatetime=20260421T07:00-0000
2026-04-21 02:23:22 - DEBUG - Found 1 files: ['20260420_20260421_PRC_LMP_DAM_20260420_19_23_22_v12.csv']
2026-04-21 02:23:22 - DEBUG - Parsing file: 20260420_20260421_PRC_LMP_DAM_20260420_19_23_22_v12.csv
| Time | Interval Start | Interval End | Market | Location | Location Type | LMP | Energy | Congestion | Loss | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2026-04-20 00:00:00-07:00 | 2026-04-20 00:00:00-07:00 | 2026-04-20 01:00:00-07:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 32.70674 | 34.15871 | -0.22568 | -1.22630 |
| 1 | 2026-04-20 00:00:00-07:00 | 2026-04-20 00:00:00-07:00 | 2026-04-20 01:00:00-07:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 32.75324 | 34.15871 | 0.01553 | -1.42100 |
| 2 | 2026-04-20 00:00:00-07:00 | 2026-04-20 00:00:00-07:00 | 2026-04-20 01:00:00-07:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 33.20644 | 34.15871 | 0.02808 | -0.98036 |
| 3 | 2026-04-20 01:00:00-07:00 | 2026-04-20 01:00:00-07:00 | 2026-04-20 02:00:00-07:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 30.38340 | 31.84511 | -0.14333 | -1.31839 |
| 4 | 2026-04-20 01:00:00-07:00 | 2026-04-20 01:00:00-07:00 | 2026-04-20 02:00:00-07:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 30.35377 | 31.84511 | -0.31626 | -1.17508 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 67 | 2026-04-20 22:00:00-07:00 | 2026-04-20 22:00:00-07:00 | 2026-04-20 23:00:00-07:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 28.69261 | 32.93763 | -2.77271 | -1.47231 |
| 68 | 2026-04-20 22:00:00-07:00 | 2026-04-20 22:00:00-07:00 | 2026-04-20 23:00:00-07:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 30.78219 | 32.93763 | -0.89722 | -1.25822 |
| 69 | 2026-04-20 23:00:00-07:00 | 2026-04-20 23:00:00-07:00 | 2026-04-21 00:00:00-07:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 29.44075 | 32.07991 | -1.52919 | -1.10996 |
| 70 | 2026-04-20 23:00:00-07:00 | 2026-04-20 23:00:00-07:00 | 2026-04-21 00:00:00-07:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 28.66517 | 32.07991 | -2.28873 | -1.12600 |
| 71 | 2026-04-20 23:00:00-07:00 | 2026-04-20 23:00:00-07:00 | 2026-04-21 00:00:00-07:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 30.21702 | 32.07991 | -0.78821 | -1.07468 |
72 rows × 10 columns
You can see what markets are available by accessing the markets property of an ISO. For example
caiso.markets
[<Markets.REAL_TIME_5_MIN: 'REAL_TIME_5_MIN'>,
<Markets.REAL_TIME_15_MIN: 'REAL_TIME_15_MIN'>,
<Markets.DAY_AHEAD_HOURLY: 'DAY_AHEAD_HOURLY'>]