Power Interconnection Queue (NYISO) API v1
Generated from
core.contract.describe_power_interconnection_queue_nyiso_v1()and checked fixture-backed examples. Do not hand-edit the example JSON files.
Capability
- Capability:
power.interconnection_queue_nyiso - Primitive:
query_power_interconnection_queue_nyiso_v1 - Status:
available - Current source:
energy.nyiso.queue - Source publisher: New York Independent System Operator (NYISO)
- Snapshot behavior:
as_of = latestresolves to an exact snapshot date in every response.
What It Can Answer
- Which projects have REQUESTED to connect to the NYISO grid, by state/county, fuel/technology, zone, and status.
- The summer-peak (sp_mw) and winter-peak (wp_mw) megawatts of each queued NYISO project, cited to its source row.
- NYISO load interconnection requests (the Load Projects tab) with their peak_mw_load, served as-reported.
- The as-reported lifecycle status of each NYISO project (active / withdrawn / in-service / affected-system), kept by tab.
- Row-level detail records when
include_recordsis true. - Raw workbook row evidence for any returned row-level citation.
Represented Facts
NYISO's Interconnection Queue reports each project's REQUESTED interconnection capacity — summer (SP) and winter (WP) peak MW, kept separate — across every lifecycle tab NYISO publishes (nine through 2026-06; seven since the 2026-07 restructure folded the load/affected-system withdrawn lists into the active tabs under NYISO's own 0=Withdrawn code); a request, not built capacityNYISO uniquely publishes a Load Projects tab — load interconnection requests with their own peak_mw_load, and (since 2026-07) NYISO's own End-Use class per request (end_use, e.g. DAT / DAT-AI / DAT-CM, served verbatim — NYISO publishes no key for these codes) plus the SIS Bundle study-batch code (sis_bundle)NYISO carries the requested-vs-built distinction in application_status (the lifecycle tab's reading, overridden to the withdrawn form on NYISO's own status code 0) + study_status_code; the In Service tab is the built reading, and a project may appear on more than one tab (grain = sheet + queue_position)
Data Point Contract
- Data point:
power.interconnection_queue_nyiso - Product spec:
blocks/power_interconnection_queue_nyiso/card.md - Grain:
project_snapshot - Source basis:
energy.nyiso.queue - Represented fact: The NYISO generator interconnection queue — New York ISO's public Interconnection Queue workbook, the waiting line of every project that has REQUESTED to connect to the New York grid, served as-reported, project by project across every lifecycle tab NYISO publishes (nine tabs through 2026-06; seven since NYISO's 2026-07 restructure folded the load-withdrawn and affected-withdrawn lists into the active tabs under its own status code 0, the workbook's printed '0=Withdrawn' key): the active serial queue (
Interconnection Queue) and FERC Order 2023 cluster queue (Cluster Projects); the LOAD interconnection requests (Load Projects) — NYISO is the one ISO that publishes load/large-load requests, carried as-reported with its ownpeak_mw_loadand, since 2026-07, NYISO's ownEnd-Useclass per load request (end_use, e.g. DAT / DAT-AI / DAT-CM — NYISO publishes no key for these codes; they are served verbatim) and theSIS Bundlestudy-batch code (sis_bundle, NYISO's 'XX-Y' = scope-year + serial); the cross-borderAffected System Studies; theWithdrawnand cluster-withdrawn lists; and the builtIn Servicelist. NYISO's full published structure is carried faithfully, in NYISO's own words: the summer-peak and winter-peak megawatts (sp_mw/wp_mw, kept SEPARATE — NYISO publishes no single nameplate and we never blend them), the loadpeak_mw_load, the as-reported study-phase code (study_status_code— NYISO's numeric key, published asSthrough 2026-06 and asProject Status #/NYISO Statussince), the requestrecord_type, thetype_fuelcodebook, the NYISO loadzone(A–K), the energy-storage capability, the location (state, county, point of interconnection, utility), and the lifecycle dates. This is a REQUEST, not built capacity: historically the large majority of queued MW withdraws before it is built. NYISO carries the requested-vs-built distinction in its OWN structure — every project'sapplication_status(the lifecycle tab's reading: ACTIVE / WITHDRAWN / IN_SERVICE / AFFECTED_SYSTEM / AFFECTED_SYSTEM_WITHDRAWN, overridden to the withdrawn form when the row's own status code is NYISO's 0) and the tab it sits on — so the MW figures are served under NYISO's own names and never relabeled or summed as operating capacity. A project may appear on more than one tab, so the grain is (sheet, queue_position) and we never invent a cross-tab dedup. This is a forward-looking slice (capacity/generation/demand are backward-looking actuals). NYISO carries no county_fips and no lat/lon; county_fips is derived by name (state-scoped) where it resolves and left null otherwise (out-of-NY rows in PA/NJ/CT, cross-border labels, and multi-county cells stay null). TheLoad Projectstab is served as-reported:end_useis NYISO's OWN classification, served verbatim — we still never infer an end use NYISO did not print; interpretation beyond the code is the analyst's, from cited rows.
Does not answer:
built/operating/nameplate capacity as a queue total (sp_mw/wp_mw/peak_mw_load are REQUESTED interconnection, not built; for operating capacity use power.capacity / EIA-860M; an In Service-tab project is the per-project built reading)a single nameplate figure (NYISO publishes summer SP and winter WP separately; both are served and never collapsed; the gridstatus max(SP,WP) convention is not adopted)a sum of MW treated as planned or operating capacity (most queued MW withdraws — totals are scoped by application_status / sheet_name, never read as built)a cross-ISO or national queue total (methodologies, inclusion, and withdrawal rates differ per ISO — never summed or deduped across ISOs; for the MISO queue use query_power_interconnection_queue_v1, for PJM query_power_interconnection_queue_pjm_v1, for CAISO query_power_interconnection_queue_caiso_v1)which Load Projects are "data-center driven" (NYISO publishes load requests but does not tag data centers; that inference is the analyst's, never tagged here)the probability that a queued project will actually be built or reach commercial operationgeneration MWh, demand, prices, retail sales, or transmission flowslat/lon or plant-level attribution (NYISO supplies none; only state, as-reported county, NYISO zone, and derived county_fips)queues for other ISOs/RTOs (MISO, PJM, CAISO, ISO-NE, ERCOT, SPP) — each is a separate block under the same gate
REST Surface
GET /v1/healthGET /v1/capabilitiesGET /v1/power/interconnection-queue-nyiso/schemaPOST /v1/power/interconnection-queue-nyiso/queryPOST /v1/evidence/source-row
MCP Surface
list_capabilities_v1describe_power_interconnection_queue_nyiso_v1query_power_interconnection_queue_nyiso_v1get_source_evidence_v1
Local MCP Setup
Some MCP clients launch servers from the user's home directory or ignore a configured cwd. Use uv run --directory so the server always starts from the repository project.
{
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/OSINT",
"python",
"-m",
"core.mcp_server"
]
}
Leave EXASCALE_PARQUET_BASE / EXASCALE_RAW_BASE unset: the one server hosts every data point's tools, and with no override it resolves each block's promoted snapshots and raw archive from the repository layout. Setting either env var points ALL tools at one directory — a per-block path breaks every other block's tools. They exist only for single-source sandboxes and tests.
Request Schema
Filters:
as_ofstatecounty_fipsapplication_statussheet_namestudy_status_coderecord_typetype_fuelzoneutilitystudies_availableend_useir_date
Group by:
statecounty_fipsapplication_statussheet_namestudy_status_coderecord_typetype_fuelzoneutilitystudies_availableend_use
Date range parameters:
ir_date_fromir_date_to
Controls:
include_recordsinclude_evidencelimitorder_bytop_norderrollup_other
Ranking (how order_by / top_n / order join — order_by ranks groups by a metric, never a group_by dimension; top_n needs both a group_by and an order_by):
{
"no_ranking": "Omit order_by and top_n to return all groups in group-key order.",
"order": {
"default": "desc",
"valid_values": [
"desc",
"asc"
]
},
"order_by": {
"accepts": "one of output.metrics",
"note": "Ranks the groups by a metric (a measure). Not a group_by dimension \u2014 rows already come back grouped by each group_by field.",
"requires": [
"group_by"
],
"valid_values": [
"sp_mw",
"wp_mw",
"peak_mw_load",
"source_record_count"
]
},
"top_n": {
"note": "Keeps the top N groups by order_by; the rest fold into one (other) remainder (additive metrics sum into it, non-additive ones are nulled) so the result still reconciles to summary.totals.",
"requires": [
"group_by",
"order_by"
],
"type": "positive integer"
}
}
Output Schema
Aggregate metrics:
sp_mwwp_mwpeak_mw_loadsource_record_count
Metric groups:
{
"load_mw": [
"peak_mw_load"
],
"records": [
"source_record_count"
],
"requested_mw": [
"sp_mw",
"wp_mw"
]
}
Response summary fields:
group_counttotals
Accepted fact policy:
- Query responses contain accepted, gate-passed facts only.
- Gate, monitor, and audit quality signals are internal controls, not agent-facing answer caveats.
- If a source snapshot is not fit to serve, the source must fail closed before it reaches this API.
Metric metadata:
| Metric | Category | Unit | Aggregation | Additive Across Groups | Authoritative Total | Definition |
|---|---|---|---|---|---|---|
sp_mw |
requested_mw | MW | sum | true | summary.totals.sp_mw |
The project's maximum summer megawatt output, as NYISO reports it (SP (MW)). |
wp_mw |
requested_mw | MW | sum | true | summary.totals.wp_mw |
The project's maximum winter megawatt output, as NYISO reports it (WP (MW)). |
peak_mw_load |
load_mw | MW | sum | true | summary.totals.peak_mw_load |
The project's requested peak load (Load Projects tab), as NYISO reports it (Peak MW load). |
source_record_count |
records | count | count source records | true | summary.totals.source_record_count |
Count of NYISO queue project-rows in the current result scope (one atom = one row of one lifecycle tab; nine tabs through 2026-06, seven since the 2026-07 restructure). |
Rollup rules:
summary.totals.<metric>is the authoritative total for the full matched query.- Grouped row metrics may be summed only when
additive_across_groupsistrue.
Detail record fields returned when include_records is true:
source_idsheet_nameisoqueue_positionsource_record_keyapplication_statusproject_namedeveloperrecord_typeproject_typestatestate_rawcountycounty_fipscounty_fips_sourcecounty_fips_unresolvedzonetype_fuelenergy_storage_capabilitymin_duration_full_dischargesp_mwwp_mwpeak_mw_loadstudy_status_codestudies_availableend_usesis_bundlepoint_of_interconnectionutilityaffected_toir_datelast_updateia_tender_datecy_fs_complete_datefs_completion_dateproposed_in_serviceproposed_initial_backfeedproposed_sync_dateproposed_codreport_periodsource_row_numberas_ofraw_file_sha256citation
Row-level citation fields:
source_idsource_urlsource_filesheetsource_rowraw_file_sha256as_of
Aggregate citation fields:
source_idpublishersource_urlsource_fileraw_file_sha256as_ofsource_rows_countsource_rows_sampleverifylineage_filter
Codebooks
| Field | Coverage | Codes | Examples | Note |
|---|---|---|---|---|
application_status |
the distinct application_status values served from the NYISO snapshot | 5 | ACTIVE = Active — a live request still in the queue (requested, not built), WITHDRAWN = Withdrawn — the request left the queue (the queue is withdrawn-dominated), IN_SERVICE = In service — the project is built and energized, AFFECTED_SYSTEM = Affected-system study — an out-of-NYISO project studied for NY-system impact, AFFECTED_SYSTEM_WITHDRAWN = Withdrawn affected-system study |
ALWAYS scope by application_status or sheet_name — the queue is dominated by WITHDRAWN requests. ACTIVE is the live pipeline of REQUESTED (not built) capacity (the Interconnection Queue, Cluster Projects and Load Projects tabs, minus rows NYISO's own status code marks withdrawn); IN_SERVICE is built and energized; WITHDRAWN left the queue; AFFECTED_SYSTEM is out-of-NYISO projects studied for NY-system impact. A queue-MW total is requested capacity, never built — for built/operating capacity use query_power_capacity_v1. |
study_status_code |
the distinct study-status codes observed in the served NYISO snapshot | 5 | 1 = Scoping Meeting Pending, 6 = SRIS/SIS Approved, 11 = IA Completed, 14 = In Service Commercial, 0 = Withdrawn |
NYISO's serial study-phase legend (kept as-reported, may include alphanumeric codes like 3A / 5P / 15 / P): 0=Withdrawn, 1=Scoping Meeting, 2-3=Feasibility Study, 4-6=SRIS/SIS, 7-9=Facilities Study, 10-11=IA, 12=Under Construction, 13=In Service for Test, 14=In Service Commercial, 15=Partial In-Service. The FERC Order 2023 cluster tabs use a separate phase system. Filter by NYISO's EXACT value. |
end_use |
the distinct end_use codes observed in the served NYISO snapshot (null before the 2026-07 edition and on non-load tabs) | 8 | DAT = DAT — as-reported (NYISO publishes no key for End-Use codes), DAT-AI = DAT-AI — as-reported, DAT-CM = DAT-CM — as-reported, M-CH = M-CH — as-reported, M-IN = M-IN — as-reported |
NYISO publishes NO key for these codes in the workbook — they are served verbatim and the labels below document the observed vocabulary only. The DAT family dominates the load queue (40 of 51 coded requests in the first edition that carries the column). Filter by NYISO's EXACT value; a load request NYISO left uncoded is null (as are all rows from pre-2026-07 snapshots — scope with as_of when counting). |
zone |
the distinct NYISO load zones observed in the served snapshot | 4 | A = Zone A — West, F = Zone F — Capital, J = Zone J — New York City, K = Zone K — Long Island |
NYISO's eleven load zones, west to east: A=West, B=Genesee, C=Central, D=North, E=Mohawk Valley, F=Capital, G=Hudson Valley, H=Millwood, I=Dunwoodie, J=NYC, K=Long Island. A project spanning zones carries a multi-zone value as-reported. Filter by NYISO's EXACT value. |
type_fuel |
the distinct type_fuel codes observed in the served NYISO snapshot | 25 | S = Solar, ES = Energy Storage (standalone battery), W = Wind (onshore), OSW = Off-Shore Wind, CR = CSR — Co-located Storage Resource: Energy Storage + Solar (hybrid) |
NYISO's resource type is a SHORT CODE — filter by NYISO's EXACT code, not a fuel word. The CSR codes are co-located storage HYBRIDS: CR = CSR (Energy Storage + Solar) and CW = CSR (Energy Storage + Wind) — NYISO's analog of a solar+storage / wind+storage hybrid (NOT a deliverability or capacity-service class). ES is standalone battery storage, OSW is offshore wind (distinct from onshore W), L is a load interconnection request (the Load Projects tab), and AC/DC are transmission (not generation, so they carry null MW). Values are AS-REPORTED, so a few older rows use a spelled-out or variant form (e.g. Solar for S, BAT for storage); a request with no type is null. |
The complete machine-readable codebooks are included in capability-schema.json.
Checked Examples
| Agent question | Request params | Checked output |
|---|---|---|
| How much requested MW and how many project-rows sit in the NYISO queue, by lifecycle status? | {"group_by": ["application_status"]} |
nyiso-queue-by-status.json |
| Which NYISO load zones have the most active requested interconnection capacity? | {"application_status": "ACTIVE", "group_by": ["zone"], "order_by": "sp_mw", "top_n": 11} |
active-summer-mw-by-zone.json |
| What load interconnection requests (the data-center-relevant tab) is NYISO studying, and how much peak load MW? | {"group_by": ["state"], "sheet_name": "Load Projects"} |
load-projects.json |
| Return one NYISO queue project with a row-level citation. | {"include_records": true, "limit": 1, "sheet_name": "Interconnection Queue"} |
queue-detail-with-citation.json |
| Verify the raw workbook row behind a returned citation | citations[ref].verify (aggregate) or records[0].citation (detail) |
source-row-evidence.json |
| Dogfood the tool sequence as an agent | list -> describe -> query -> evidence |
agent-dogfood-transcript.json |
The checked schema output is capability-schema.json.
Agent Workflow
- Call
list_capabilities_v1and selectpower.interconnection_queue_nyiso. - Call
describe_power_interconnection_queue_nyiso_v1to inspect valid filters, groupings, metrics, and citation fields. - Call
query_power_interconnection_queue_nyiso_v1with bounded JSON params. - If the answer needs proof, pass a returned row-level
citationobject toget_source_evidence_v1. - Answer with the resolved
as_ofand relevant citations. Present returned metrics as authoritative for their declared source, snapshot, grain, and aggregation.