LMP Pricing Data

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'>]