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-03-14 02:05:00 - INFO - Requesting http://mis.nyiso.com/public/csv/realtime/20260313realtime_zone.csv
| Time | Interval Start | Interval End | Market | Location | Location Type | LMP | Energy | Congestion | Loss | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:05:00-04:00 | REAL_TIME_5_MIN | CAPITL | Zone | 52.69 | 51.46 | -0.00 | 1.23 |
| 1 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:05:00-04:00 | REAL_TIME_5_MIN | CENTRL | Zone | 98.72 | 51.46 | 47.88 | -0.62 |
| 2 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:05:00-04:00 | REAL_TIME_5_MIN | DUNWOD | Zone | 53.10 | 51.45 | -0.00 | 1.65 |
| 3 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:05:00-04:00 | REAL_TIME_5_MIN | GENESE | Zone | 49.14 | 51.45 | -0.00 | -2.31 |
| 4 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:00:00-04:00 | 2026-03-13 00:05:00-04:00 | REAL_TIME_5_MIN | H Q | Zone | -39.07 | 51.46 | -90.89 | 0.36 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 4075 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:05:00-04:00 | REAL_TIME_5_MIN | NORTH | Zone | 49.71 | 49.86 | -0.00 | -0.15 |
| 4076 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:05:00-04:00 | REAL_TIME_5_MIN | NPX | Zone | 48.66 | 49.86 | -2.14 | 0.94 |
| 4077 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:05:00-04:00 | REAL_TIME_5_MIN | O H | Zone | 8.51 | 49.86 | -37.11 | -4.24 |
| 4078 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:05:00-04:00 | REAL_TIME_5_MIN | PJM | Zone | 22.69 | 49.86 | -26.12 | -1.05 |
| 4079 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:00:00-04:00 | 2026-03-13 22:05:00-04:00 | REAL_TIME_5_MIN | WEST | Zone | 7.70 | 49.85 | -39.06 | -3.09 |
4080 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-03-14 02:05:01 - 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-03-14 02:05:01 - 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=20260313T07:00-0000&enddatetime=20260314T07:00-0000
/home/docs/checkouts/readthedocs.org/user_builds/isodata/envs/v0.35.0/lib/python3.13/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'oasis.caiso.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
warnings.warn(
2026-03-14 02:05:02 - DEBUG - Found 1 files: ['20260313_20260314_PRC_LMP_DAM_20260313_19_05_01_v12.csv']
2026-03-14 02:05:02 - DEBUG - Parsing file: 20260313_20260314_PRC_LMP_DAM_20260313_19_05_01_v12.csv
| Time | Interval Start | Interval End | Market | Location | Location Type | LMP | Energy | Congestion | Loss | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2026-03-13 00:00:00-07:00 | 2026-03-13 00:00:00-07:00 | 2026-03-13 01:00:00-07:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 27.78702 | 28.83031 | -0.04000 | -1.00329 |
| 1 | 2026-03-13 00:00:00-07:00 | 2026-03-13 00:00:00-07:00 | 2026-03-13 01:00:00-07:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 26.10607 | 28.83031 | -1.76420 | -0.96005 |
| 2 | 2026-03-13 00:00:00-07:00 | 2026-03-13 00:00:00-07:00 | 2026-03-13 01:00:00-07:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 27.68287 | 28.83031 | 0.00000 | -1.14745 |
| 3 | 2026-03-13 01:00:00-07:00 | 2026-03-13 01:00:00-07:00 | 2026-03-13 02:00:00-07:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 27.51253 | 28.50448 | -0.00285 | -0.98911 |
| 4 | 2026-03-13 01:00:00-07:00 | 2026-03-13 01:00:00-07:00 | 2026-03-13 02:00:00-07:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 25.72584 | 28.50448 | -1.82090 | -0.95775 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 67 | 2026-03-13 22:00:00-07:00 | 2026-03-13 22:00:00-07:00 | 2026-03-13 23:00:00-07:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 29.48751 | 30.06579 | 0.27559 | -0.85387 |
| 68 | 2026-03-13 22:00:00-07:00 | 2026-03-13 22:00:00-07:00 | 2026-03-13 23:00:00-07:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 26.66485 | 30.06579 | -2.04798 | -1.35296 |
| 69 | 2026-03-13 23:00:00-07:00 | 2026-03-13 23:00:00-07:00 | 2026-03-14 00:00:00-07:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 28.87084 | 30.14160 | -0.08620 | -1.18456 |
| 70 | 2026-03-13 23:00:00-07:00 | 2026-03-13 23:00:00-07:00 | 2026-03-14 00:00:00-07:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 28.37848 | 30.14160 | -0.91915 | -0.84396 |
| 71 | 2026-03-13 23:00:00-07:00 | 2026-03-13 23:00:00-07:00 | 2026-03-14 00:00:00-07:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 28.85757 | 30.14160 | 0.00000 | -1.28403 |
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'>]