{"openapi":"3.1.0","info":{"title":"Grid Status API","version":"1.3.0"},"servers":[{"url":"https://api.gridstatus.io/v1"}],"paths":{"/":{"get":{"tags":["API Info"],"summary":"API Info","operationId":"api_info_v1__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIInfoResponse"}}}}}}},"/block-pricing/{iso}":{"get":{"tags":["Block Pricing Data"],"summary":"Get Block Pricing","description":"Returns block-averaged prices for an ISO over the requested date range.\n\nThe response is a list of columns. Daily columns (keyed by ISO date) cover the requested range, and additional summary columns are appended: `MTD` (month-to-date) and a `Month-Year` label for each full month spanned. Each column's `value` is the volume-weighted average price for the block over that window.\n\nEach datum includes `pct_change`, the percent change of `value` relative to the previous period for the same market and block (prior market day for daily columns; prior calendar month for summary columns). It is null when the previous period has no value or when the prior value is zero.\n\nThe `complete` flag indicates whether every interval in the window has reported data; it is `false` for in-progress windows such as the current day or month-to-date.","operationId":"get_block_pricing_v1_block_pricing__iso__get","parameters":[{"name":"iso","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ISOEnum","description":"ISO identifier used to resolve the backing block pricing dataset."},"description":"ISO identifier used to resolve the backing block pricing dataset."},{"name":"params","in":"query","required":true,"schema":{"$ref":"#/components/schemas/BlockPricingQueryParams"}},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BlockPricingDateGroup"},"title":"Response Get Block Pricing V1 Block Pricing  Iso  Get"},"example":[{"date":"2024-01-01","is_nerc_holiday":true,"data":[{"market":"da","block":"7x24","value":31.42,"complete":true},{"market":"da","block":"on-peak","value":38.15,"complete":true},{"market":"da","block":"off-peak","value":24.69,"complete":true},{"market":"rt","block":"7x24","value":29.87,"complete":true}]},{"date":"2024-01-02","is_nerc_holiday":false,"data":[{"market":"da","block":"7x24","value":33.1,"pct_change":5.35,"complete":true},{"market":"rt","block":"7x24","value":30.55,"pct_change":2.28,"complete":false}]},{"date":"MTD","is_nerc_holiday":false,"data":[{"market":"da","block":"7x24","value":32.26,"complete":false},{"market":"da","block":"on-peak","value":39.04,"complete":false}]},{"date":"Jan-2024","is_nerc_holiday":false,"data":[{"market":"da","block":"7x24","value":32.26,"complete":false}]}]}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datasets":{"get":{"tags":["Dataset Metadata"],"summary":"List Datasets","description":"List all published datasets a user has access to\n\nSee list of available datasets here: https://www.gridstatus.io/datasets","operationId":"list_datasets_v1_datasets_get","parameters":[{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"return_format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ReturnFormat","description":"The return format of the response","default":"json"},"description":"The return format of the response"},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to download the file or not","default":false,"title":"Download"},"description":"Whether to download the file or not"},{"name":"json_schema","in":"query","required":false,"schema":{"$ref":"#/components/schemas/JSONSchema","description":"The json schema of the response","default":"array-of-objects"},"description":"The json schema of the response"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDatasetsResponse"},"example":{"status_code":200,"data":[{"id":"caiso_as_prices","name":"CAISO AS Prices","description":"Ancillary Services Prices as reported by CAISO.\n\n**AS Mapping**\n\nThe *_EXP show only the intertie resources.\n \n-    AS_SP26_P: Resources in AS_SP26\n-    AS_NP26_P: Resources in AS_NP26\n-    AS_SP15_P: Resources in AS_SP15\n-    AS_NP15_P: Resources in AS_NP15\n-    AS_SP26_EXP_P: Resources in AS_SP26_EXP which are not in AS_SP26\n-    AS_NP26_EXP_P: Resources in AS_NP26_EXP which are not in AS_NP26\n-    AS_SP15_EXP_P: Resources in AS_SP15_EXP which are not in AS_SP15\n-    AS_NP15_EXP_P: Resources in AS_NP15_EXP which are not in AS_NP15\n-    AS_CAISO_NP26_P: Resources in AS_CAISO which are not in AS_SP26\n-    AS_CAISO_SP26_P: Resources in AS_CAISO which are not in AS_NP26\n-    AS_CAISO_NP15_P: Resources in AS_CAISO which are not in AS_SP15\n-    AS_CAISO_SP15_P: Resources in AS_CAISO which are not in AS_NP15","earliest_available_time_utc":"2010-01-01T08:00:00+00:00","latest_available_time_utc":"2025-05-20T06:00:00+00:00","source":"caiso","last_checked_time_utc":"2025-05-19T19:10:58+00:00","primary_key_columns":["interval_start_utc","region","market"],"time_index_column":"interval_start_utc","subseries_index_column":"region","all_columns":[{"name":"interval_start_utc","type":"TIMESTAMP","is_numeric":false,"is_date":false,"is_datetime":true},{"name":"interval_end_utc","type":"TIMESTAMP","is_numeric":false,"is_date":false,"is_datetime":true},{"name":"region","type":"VARCHAR","is_numeric":false,"is_date":false,"is_datetime":false},{"name":"market","type":"VARCHAR","is_numeric":false,"is_date":false,"is_datetime":false},{"name":"non_spinning_reserves","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"regulation_down","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"regulation_mileage_down","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"regulation_mileage_up","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"regulation_up","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"spinning_reserves","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false}],"number_of_rows_approximate":621445,"table_type":"table","is_in_snowflake":true,"data_frequency":"1_HOUR","source_url":"http://oasis.caiso.com/mrioasis/logon.do","is_published":true,"created_at_utc":"2023-04-20T07:00:37.935862Z","status":"active","popularity_rank":46},{"id":"spp_ver_curtailments","name":"SPP VER Curtailments","description":"VER curtailment data in 5 minute intervals for SPP.\nTotal VER curtailment (not per resource).","earliest_available_time_utc":"2014-03-01T06:00:00+00:00","latest_available_time_utc":"2025-05-19T04:55:00+00:00","source":"spp","last_checked_time_utc":"2025-05-19T19:12:06+00:00","primary_key_columns":["interval_start_utc"],"time_index_column":"interval_start_utc","all_columns":[{"name":"interval_start_utc","type":"TIMESTAMP","is_numeric":false,"is_date":false,"is_datetime":true},{"name":"interval_end_utc","type":"TIMESTAMP","is_numeric":false,"is_date":false,"is_datetime":true},{"name":"wind_redispatch_curtailments","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"wind_manual_curtailments","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"wind_curtailed_for_energy","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"solar_redispatch_curtailments","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"solar_manual_curtailments","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false},{"name":"solar_curtailed_for_energy","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false}],"number_of_rows_approximate":1141332,"table_type":"table","is_in_snowflake":true,"data_frequency":"5_MINUTES","source_url":"https://marketplace.spp.org/pages/ver-curtailments","is_published":true,"created_at_utc":"2023-05-17T17:21:02.118072Z","status":"active"}],"meta":{"page":1},"dataset_metadata":{"resample_conversion":{"1_MINUTE":60,"5_MINUTES":300,"15_MINUTES":900,"1_HOUR":3600,"1_DAY":86400,"1_DAY_MARKET":86400,"1_WEEK":604800,"1_MONTH":2592000,"1_YEAR":31536000,"IRREGULAR":-1}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datasets/{dataset_id}":{"get":{"tags":["Dataset Metadata"],"summary":"Get Dataset Metadata","description":"Get a dataset and its metadata","operationId":"get_dataset_metadata_v1_datasets__dataset_id__get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"return_format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ReturnFormat","description":"The return format of the response","default":"json"},"description":"The return format of the response"},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to download the file or not","default":false,"title":"Download"},"description":"Whether to download the file or not"},{"name":"json_schema","in":"query","required":false,"schema":{"$ref":"#/components/schemas/JSONSchema","description":"The json schema of the response","default":"array-of-objects"},"description":"The json schema of the response"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetResponse"},"example":{"id":"ercot_lmp_by_bus","name":"ERCOT LMP By Bus","description":"The Locational Marginal Price for each Electrical Bus in ERCOT,\nnormally produced by SCED every five minutes. \n\nThe location type present is:\n\n- *Electrical Bus*\n\nSee list of available locations\nby using the `ercot_electrical_buses` dataset.","earliest_available_time_utc":"2020-01-01T06:00:26Z","latest_available_time_utc":"2025-05-19T19:25:12Z","source":"ercot","last_checked_time_utc":"2025-05-19T19:25:59.143841Z","primary_key_columns":["sced_timestamp_utc","location"],"time_index_column":"sced_timestamp_utc","subseries_index_column":"location","all_columns":[{"name":"sced_timestamp_utc","type":"TIMESTAMP","is_numeric":false,"is_date":false,"is_datetime":true},{"name":"market","type":"VARCHAR","is_numeric":false,"is_date":false,"is_datetime":false},{"name":"location","type":"VARCHAR","is_numeric":false,"is_date":false,"is_datetime":false},{"name":"location_type","type":"VARCHAR","is_numeric":false,"is_date":false,"is_datetime":false},{"name":"lmp","type":"DOUBLE PRECISION","is_numeric":true,"is_date":false,"is_datetime":false}],"number_of_rows_approximate":8444429824,"table_type":"table","is_in_snowflake":true,"data_frequency":"ERCOT_SCED_RUN","source_url":"https://www.ercot.com/mp/data-products/data-product-details?id=NP6-787-CD","is_published":true,"created_at_utc":"2023-10-10T17:37:45.625368Z","status":"active","popularity_rank":46}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datasets/{dataset_id}/audit":{"get":{"tags":["Dataset Audit"],"summary":"Get Dataset Audit","description":"Returns audit data by market date for a given dataset\n\n* market_date: The market date for which the audit data is being returned\n\n* number_of_datapoints: The total number of rows\n\n* number_of_unique_time_index_values: The total number of unique time index\n  values\n\n* number_of_unique_subseries_index_values: The total number of unique\n  subseries index values\n\n* number_of_unique_publish_times_on_publish_date: The total number of\n  unique publish time values where the publish time occurred on the given\n  market date","operationId":"get_dataset_audit_v1_datasets__dataset_id__audit_get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"return_format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ReturnFormat","description":"The return format of the response","default":"json"},"description":"The return format of the response"},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to download the file or not","default":false,"title":"Download"},"description":"Whether to download the file or not"},{"name":"json_schema","in":"query","required":false,"schema":{"$ref":"#/components/schemas/JSONSchema","description":"The json schema of the response","default":"array-of-objects"},"description":"The json schema of the response"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetAuditResponse"},"example":{"status_code":200,"data":[{"market_date":"2025-01-01","number_of_datapoints":100,"number_of_unique_time_index_values":100,"number_of_unique_subseries_index_values":100,"number_of_unique_publish_times_on_publish_date":100},{"market_date":"2025-01-02","number_of_datapoints":100,"number_of_unique_time_index_values":100,"number_of_unique_subseries_index_values":100,"number_of_unique_publish_times_on_publish_date":100}],"meta":{"page":1}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datasets/{dataset_id}/query":{"get":{"tags":["Query Data"],"summary":"Query Dataset","description":"Query a dataset and return matching rows as JSON or CSV.\n\nJSON rows stream directly from a Postgres server-side cursor instead of\nbeing buffered in memory first (JSON only; CSV and external datasets always\nbuffer). The result-dependent ``X-Has-Next-Page`` and ``X-rows-in-response``\nheaders are omitted from streamed responses -- read pagination from the JSON\n``meta.hasNextPage`` and ``meta.cursor`` fields.","operationId":"query_dataset_v1_datasets__dataset_id__query_get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset ID","description":"ID of the dataset to query"},"description":"ID of the dataset to query"},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OrderBy"},{"type":"null"}],"description":"The order to order results by","default":"asc","title":"Order"},"description":"The order to order results by"},{"name":"filter_column","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The column to filter results by","title":"Filter Column"},"description":"The column to filter results by"},{"name":"filter_value","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"string"},{"type":"null"}],"description":"The value to filter results by","title":"Filter Value"},"description":"The value to filter results by"},{"name":"filter_operator","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/FilterOperator"},{"type":"null"}],"default":"=","title":"Filter Operator"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The maximum number of rows to return across all pages","title":"Limit"},"description":"The maximum number of rows to return across all pages"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","description":"The page number of results to return","default":1,"title":"Page"},"description":"The page number of results to return"},{"name":"page_size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The maximum number of rows to return in a single page","title":"Page Size"},"description":"The maximum number of rows to return in a single page"},{"name":"columns","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"},{"type":"null"}],"description":"Comma separated list of columns to return. Defaults to all columns.","title":"Columns"},"description":"Comma separated list of columns to return. Defaults to all columns."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The timezone to use when interpreting timezone naive timestamps, resampling to frequencies one day or more, and returning results. A value of `market`can be provided to return results in the timezone of the source ISO for the dataset. If `market` is specified and the dataset does not have a source ISO, the timezone will default to UTC for the query. When provided, columns in the `timezone` will be suffixed with `_local`.","default":"UTC","title":"Timezone"},"description":"The timezone to use when interpreting timezone naive timestamps, resampling to frequencies one day or more, and returning results. A value of `market`can be provided to return results in the timezone of the source ISO for the dataset. If `market` is specified and the dataset does not have a source ISO, the timezone will default to UTC for the query. When provided, columns in the `timezone` will be suffixed with `_local`."},{"name":"time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The time to filter results. Cannot be used with start_time or end_time.\n\nPossible values:\n\n- 'latest': Fetches the most recently reported data point.\n\n- A specific timestamp string (ISO 8601 format): Returns records that were published at the provided timestamp.\n\n","title":"Time"},"description":"The time to filter results. Cannot be used with start_time or end_time.\n\nPossible values:\n\n- 'latest': Fetches the most recently reported data point.\n\n- A specific timestamp string (ISO 8601 format): Returns records that were published at the provided timestamp.\n\n"},{"name":"time_comparison","in":"query","required":false,"schema":{"anyOf":[{"enum":["=",">",">=","<","<="],"type":"string"},{"type":"null"}],"description":"The comparison operator to use when filtering by time.\n\nPossible values:\n\n- '=': Fetches the data at the exact time.\n\n- '>': Fetches the earliest data after the provided time.\n\n- '>=': Fetches the earliest data on or after the provided time.\n\n- '<': Fetches the latest data before the provided time.\n\n- '<=': Fetches the latest data on or before the provided time.\n\n","default":"=","title":"Time Comparison"},"description":"The comparison operator to use when filtering by time.\n\nPossible values:\n\n- '=': Fetches the data at the exact time.\n\n- '>': Fetches the earliest data after the provided time.\n\n- '>=': Fetches the earliest data on or after the provided time.\n\n- '<': Fetches the latest data before the provided time.\n\n- '<=': Fetches the latest data on or before the provided time.\n\n"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The start time to filter results using the dataset's time_index_column. Data on or after this time will be returned. Only applies to datasets with a time_index_column","title":"Start Time"},"description":"The start time to filter results using the dataset's time_index_column. Data on or after this time will be returned. Only applies to datasets with a time_index_column"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The end time to filter results using the dataset's time_index_column. Data before this time will be returned. Only applies to datasets with a time_index_column","title":"End Time"},"description":"The end time to filter results using the dataset's time_index_column. Data before this time will be returned. Only applies to datasets with a time_index_column"},{"name":"publish_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"Controls the filtering based on the dataset's publish time.\n\nCannot be combined with publish_time_start or publish_time_end.Note: a dataset must have a time index column to use 'latest' or 'latest_before:' options.\n\nPossible values:\n\n- 'latest_report': Returns records only from the most recently published report.\n\n- 'latest': For any given timestamp, fetches the most recently reported data point associated with it.\n\n- A specific timestamp string (ISO 8601 format): Returns records that were published at the provided timestamp.\n\n- 'latest_before:<offset>': Return the most recent forecast for each operating time where publish_time <= operating_time + offset (e.g., 'latest_before:-6 hours').\n\n - 'latest_before': shorthand for 'latest_before:-0 hours'. Used to get the most recent forecast prior to each operating time. This is useful because some forecasts are published after the operating time they are forecasting for.\n\n- 'latest_before:<offset>@<HH:MM:SS>': Return the latest forecast published before the specified time on the offset day (e.g., 'latest_before:-1 day@10:00:00').\n\n - 'window':<offset>: Returns all forecasts for each operating time published between the specified offset from the operating time and the operating time. In other words, where operating_time + offset <= publish_time <= operating_time. (e.g., 'window:-6 hours').\n\n - 'window:<offset>@<HH:MM:SS>': Returns all forecasts for each operating time published between the specified time on the offset day from the operating time and the operating time (e.g., 'window:-1 day@10:00:00').\n\n- None: No filtering based on publish time.\n\n","title":"Publish Time"},"description":"Controls the filtering based on the dataset's publish time.\n\nCannot be combined with publish_time_start or publish_time_end.Note: a dataset must have a time index column to use 'latest' or 'latest_before:' options.\n\nPossible values:\n\n- 'latest_report': Returns records only from the most recently published report.\n\n- 'latest': For any given timestamp, fetches the most recently reported data point associated with it.\n\n- A specific timestamp string (ISO 8601 format): Returns records that were published at the provided timestamp.\n\n- 'latest_before:<offset>': Return the most recent forecast for each operating time where publish_time <= operating_time + offset (e.g., 'latest_before:-6 hours').\n\n - 'latest_before': shorthand for 'latest_before:-0 hours'. Used to get the most recent forecast prior to each operating time. This is useful because some forecasts are published after the operating time they are forecasting for.\n\n- 'latest_before:<offset>@<HH:MM:SS>': Return the latest forecast published before the specified time on the offset day (e.g., 'latest_before:-1 day@10:00:00').\n\n - 'window':<offset>: Returns all forecasts for each operating time published between the specified offset from the operating time and the operating time. In other words, where operating_time + offset <= publish_time <= operating_time. (e.g., 'window:-6 hours').\n\n - 'window:<offset>@<HH:MM:SS>': Returns all forecasts for each operating time published between the specified time on the offset day from the operating time and the operating time (e.g., 'window:-1 day@10:00:00').\n\n- None: No filtering based on publish time.\n\n"},{"name":"publish_time_start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The start time to filter results using the dataset's publish_time_column. Data on or after this time will be returned up to the publish_time_end if provided. Only applies to datasets with a publish_time_column. Cannot be used with publish_time.","title":"Publish Time Start"},"description":"The start time to filter results using the dataset's publish_time_column. Data on or after this time will be returned up to the publish_time_end if provided. Only applies to datasets with a publish_time_column. Cannot be used with publish_time."},{"name":"publish_time_end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The end time to filter results using the dataset's publish_index_column. Data before this time will be returned down the publish_time_start if provided. Only applies to datasets with a publish_time_column. Cannot be used with publish_time.","title":"Publish Time End"},"description":"The end time to filter results using the dataset's publish_index_column. Data before this time will be returned down the publish_time_start if provided. Only applies to datasets with a publish_time_column. Cannot be used with publish_time."},{"name":"resample_frequency","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The frequency to resample the data to. Must be one of:\n\n- \"1 minute\"\n- \"5 minutes\"\n- \"10 minutes\"\n- \"15 minutes\"\n- \"1 hour\"\n- \"1 day\"\n- \"1 week\"\n- \"1 month\"\n- \"1 year\"\n\nWhen resampling_frequency is specified, start_time and end_time values must also be provided. The only exception to this is when querying datasets that have a publish time and the publish time is specified as a specific timestamp or 'latest_report'.\n\nAdditionally, the number of days of data that can be queried is limited based on the resample frequency. The maximum number of days of data that can be queried for each resample frequency is listed below. There is no limit on days for resample frequencies not listed below.\n\n- 1 minute: 31 days\n- 5 minutes: 100 days\n- 10 minutes: 120 days\n- 15 minutes: 180 days\n- 1 hour: 365 days\n- 1 day: 1825 days","title":"Resample Frequency"},"description":"The frequency to resample the data to. Must be one of:\n\n- \"1 minute\"\n- \"5 minutes\"\n- \"10 minutes\"\n- \"15 minutes\"\n- \"1 hour\"\n- \"1 day\"\n- \"1 week\"\n- \"1 month\"\n- \"1 year\"\n\nWhen resampling_frequency is specified, start_time and end_time values must also be provided. The only exception to this is when querying datasets that have a publish time and the publish time is specified as a specific timestamp or 'latest_report'.\n\nAdditionally, the number of days of data that can be queried is limited based on the resample frequency. The maximum number of days of data that can be queried for each resample frequency is listed below. There is no limit on days for resample frequencies not listed below.\n\n- 1 minute: 31 days\n- 5 minutes: 100 days\n- 10 minutes: 120 days\n- 15 minutes: 180 days\n- 1 hour: 365 days\n- 1 day: 1825 days"},{"name":"resample_by","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"},{"type":"null"}],"description":"A comma separated list of columns to group by before resampling. \n\n- When resampling, the data is always grouped by the time index column of the dataset.\n\n- If a value is provided for resample_by, the data will be grouped by the provided columns in addition to the time index column.\n\n- If the dataset has a subseries index and no value is provided for resample_by, the data will also be grouped by the subseries index column.\n\n- If the dataset has a publish time column and the publish_time parameter is not 'latest', the data will also be grouped by the publish time column.","title":"Resample By"},"description":"A comma separated list of columns to group by before resampling. \n\n- When resampling, the data is always grouped by the time index column of the dataset.\n\n- If a value is provided for resample_by, the data will be grouped by the provided columns in addition to the time index column.\n\n- If the dataset has a subseries index and no value is provided for resample_by, the data will also be grouped by the subseries index column.\n\n- If the dataset has a publish time column and the publish_time parameter is not 'latest', the data will also be grouped by the publish time column."},{"name":"resample_function","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResampleFunction"},{"type":"null"}],"description":"The function to use when resampling. Defaults to \"mean\". Possible values are \"mean\", \"sum\", \"min\", \"max\", \"count\", \"stddev\", \"variance\". If resample is None, this is ignored.","default":"mean","title":"Resample Function"},"description":"The function to use when resampling. Defaults to \"mean\". Possible values are \"mean\", \"sum\", \"min\", \"max\", \"count\", \"stddev\", \"variance\". If resample is None, this is ignored."},{"name":"return_format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ReturnFormat","description":"The return format of the response","default":"json"},"description":"The return format of the response"},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to download the file or not","default":false,"title":"Download"},"description":"Whether to download the file or not"},{"name":"json_schema","in":"query","required":false,"schema":{"$ref":"#/components/schemas/JSONSchema","description":"The json schema of the response","default":"array-of-objects"},"description":"The json schema of the response"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/QueryDatasetResponse"},{"$ref":"#/components/schemas/CSVResponse"}],"title":"Response Query Dataset V1 Datasets  Dataset Id  Query Get"},"example":{"status_code":200,"data":[{"interval_start_local":"2018-04-10T00:00:00-07:00","interval_start_utc":"2018-04-10T07:00:00+00:00","interval_end_local":"2018-04-10T00:05:00-07:00","interval_end_utc":"2018-04-10T07:05:00+00:00","load":22459},{"interval_start_local":"2018-04-10T00:05:00-07:00","interval_start_utc":"2018-04-10T07:05:00+00:00","interval_end_local":"2018-04-10T00:10:00-07:00","interval_end_utc":"2018-04-10T07:10:00+00:00","load":22371},{"interval_start_local":"2018-04-10T00:10:00-07:00","interval_start_utc":"2018-04-10T07:10:00+00:00","interval_end_local":"2018-04-10T00:15:00-07:00","interval_end_utc":"2018-04-10T07:15:00+00:00","load":22330}],"meta":{"page":1,"limit":1000,"page_size":100000,"hasNextPage":false},"dataset_metadata":{"id":"caiso_load","name":"CAISO Load","time_index_column":"interval_start_utc","all_columns":[{"name":"interval_start_local","type":"TIMESTAMP","is_date":false,"is_datetime":true,"is_numeric":false},{"name":"interval_start_utc","type":"TIMESTAMP","is_date":false,"is_datetime":true,"is_numeric":false},{"name":"interval_end_local","type":"TIMESTAMP","is_date":false,"is_datetime":true,"is_numeric":false},{"name":"interval_end_utc","type":"TIMESTAMP","is_date":false,"is_datetime":true,"is_numeric":false},{"name":"load","type":"INTEGER","is_date":false,"is_datetime":false,"is_numeric":true}]}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datasets/{dataset_id}/query/{filter_column_id}/{filter_value_path}":{"get":{"tags":["Query Data"],"summary":"Query Dataset by column value","description":"Query a dataset by a column value\n\nThis is a shortcut for `/datasets/{dataset_id}/query?filter_column={filter_column}&filter_value={filter_value}`","operationId":"query_dataset_column_value_v1_datasets__dataset_id__query__filter_column_id___filter_value_path__get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"filter_column_id","in":"path","required":true,"schema":{"type":"string","title":"Filter Column ID","description":"ID of the column to filter by"},"description":"ID of the column to filter by"},{"name":"filter_value_path","in":"path","required":true,"schema":{"type":"string","title":"Filter Value","description":"Value to filter by"},"description":"Value to filter by"},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"return_format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ReturnFormat","description":"The return format of the response","default":"json"},"description":"The return format of the response"},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to download the file or not","default":false,"title":"Download"},"description":"Whether to download the file or not"},{"name":"json_schema","in":"query","required":false,"schema":{"$ref":"#/components/schemas/JSONSchema","description":"The json schema of the response","default":"array-of-objects"},"description":"The json schema of the response"},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OrderBy"},{"type":"null"}],"description":"The order to order results by","default":"asc","title":"Order"},"description":"The order to order results by"},{"name":"filter_column","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The column to filter results by","title":"Filter Column"},"description":"The column to filter results by"},{"name":"filter_value","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"string"},{"type":"null"}],"description":"The value to filter results by","title":"Filter Value"},"description":"The value to filter results by"},{"name":"filter_operator","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/FilterOperator"},{"type":"null"}],"default":"=","title":"Filter Operator"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The maximum number of rows to return across all pages","title":"Limit"},"description":"The maximum number of rows to return across all pages"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","description":"The page number of results to return","default":1,"title":"Page"},"description":"The page number of results to return"},{"name":"page_size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The maximum number of rows to return in a single page","title":"Page Size"},"description":"The maximum number of rows to return in a single page"},{"name":"columns","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"},{"type":"null"}],"description":"Comma separated list of columns to return. Defaults to all columns.","title":"Columns"},"description":"Comma separated list of columns to return. Defaults to all columns."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The timezone to use when interpreting timezone naive timestamps, resampling to frequencies one day or more, and returning results. A value of `market`can be provided to return results in the timezone of the source ISO for the dataset. If `market` is specified and the dataset does not have a source ISO, the timezone will default to UTC for the query. When provided, columns in the `timezone` will be suffixed with `_local`.","default":"UTC","title":"Timezone"},"description":"The timezone to use when interpreting timezone naive timestamps, resampling to frequencies one day or more, and returning results. A value of `market`can be provided to return results in the timezone of the source ISO for the dataset. If `market` is specified and the dataset does not have a source ISO, the timezone will default to UTC for the query. When provided, columns in the `timezone` will be suffixed with `_local`."},{"name":"time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The time to filter results. Cannot be used with start_time or end_time.\n\nPossible values:\n\n- 'latest': Fetches the most recently reported data point.\n\n- A specific timestamp string (ISO 8601 format): Returns records that were published at the provided timestamp.\n\n","title":"Time"},"description":"The time to filter results. Cannot be used with start_time or end_time.\n\nPossible values:\n\n- 'latest': Fetches the most recently reported data point.\n\n- A specific timestamp string (ISO 8601 format): Returns records that were published at the provided timestamp.\n\n"},{"name":"time_comparison","in":"query","required":false,"schema":{"anyOf":[{"enum":["=",">",">=","<","<="],"type":"string"},{"type":"null"}],"description":"The comparison operator to use when filtering by time.\n\nPossible values:\n\n- '=': Fetches the data at the exact time.\n\n- '>': Fetches the earliest data after the provided time.\n\n- '>=': Fetches the earliest data on or after the provided time.\n\n- '<': Fetches the latest data before the provided time.\n\n- '<=': Fetches the latest data on or before the provided time.\n\n","default":"=","title":"Time Comparison"},"description":"The comparison operator to use when filtering by time.\n\nPossible values:\n\n- '=': Fetches the data at the exact time.\n\n- '>': Fetches the earliest data after the provided time.\n\n- '>=': Fetches the earliest data on or after the provided time.\n\n- '<': Fetches the latest data before the provided time.\n\n- '<=': Fetches the latest data on or before the provided time.\n\n"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The start time to filter results using the dataset's time_index_column. Data on or after this time will be returned. Only applies to datasets with a time_index_column","title":"Start Time"},"description":"The start time to filter results using the dataset's time_index_column. Data on or after this time will be returned. Only applies to datasets with a time_index_column"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The end time to filter results using the dataset's time_index_column. Data before this time will be returned. Only applies to datasets with a time_index_column","title":"End Time"},"description":"The end time to filter results using the dataset's time_index_column. Data before this time will be returned. Only applies to datasets with a time_index_column"},{"name":"publish_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"Controls the filtering based on the dataset's publish time.\n\nCannot be combined with publish_time_start or publish_time_end.Note: a dataset must have a time index column to use 'latest' or 'latest_before:' options.\n\nPossible values:\n\n- 'latest_report': Returns records only from the most recently published report.\n\n- 'latest': For any given timestamp, fetches the most recently reported data point associated with it.\n\n- A specific timestamp string (ISO 8601 format): Returns records that were published at the provided timestamp.\n\n- 'latest_before:<offset>': Return the most recent forecast for each operating time where publish_time <= operating_time + offset (e.g., 'latest_before:-6 hours').\n\n - 'latest_before': shorthand for 'latest_before:-0 hours'. Used to get the most recent forecast prior to each operating time. This is useful because some forecasts are published after the operating time they are forecasting for.\n\n- 'latest_before:<offset>@<HH:MM:SS>': Return the latest forecast published before the specified time on the offset day (e.g., 'latest_before:-1 day@10:00:00').\n\n - 'window':<offset>: Returns all forecasts for each operating time published between the specified offset from the operating time and the operating time. In other words, where operating_time + offset <= publish_time <= operating_time. (e.g., 'window:-6 hours').\n\n - 'window:<offset>@<HH:MM:SS>': Returns all forecasts for each operating time published between the specified time on the offset day from the operating time and the operating time (e.g., 'window:-1 day@10:00:00').\n\n- None: No filtering based on publish time.\n\n","title":"Publish Time"},"description":"Controls the filtering based on the dataset's publish time.\n\nCannot be combined with publish_time_start or publish_time_end.Note: a dataset must have a time index column to use 'latest' or 'latest_before:' options.\n\nPossible values:\n\n- 'latest_report': Returns records only from the most recently published report.\n\n- 'latest': For any given timestamp, fetches the most recently reported data point associated with it.\n\n- A specific timestamp string (ISO 8601 format): Returns records that were published at the provided timestamp.\n\n- 'latest_before:<offset>': Return the most recent forecast for each operating time where publish_time <= operating_time + offset (e.g., 'latest_before:-6 hours').\n\n - 'latest_before': shorthand for 'latest_before:-0 hours'. Used to get the most recent forecast prior to each operating time. This is useful because some forecasts are published after the operating time they are forecasting for.\n\n- 'latest_before:<offset>@<HH:MM:SS>': Return the latest forecast published before the specified time on the offset day (e.g., 'latest_before:-1 day@10:00:00').\n\n - 'window':<offset>: Returns all forecasts for each operating time published between the specified offset from the operating time and the operating time. In other words, where operating_time + offset <= publish_time <= operating_time. (e.g., 'window:-6 hours').\n\n - 'window:<offset>@<HH:MM:SS>': Returns all forecasts for each operating time published between the specified time on the offset day from the operating time and the operating time (e.g., 'window:-1 day@10:00:00').\n\n- None: No filtering based on publish time.\n\n"},{"name":"publish_time_start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The start time to filter results using the dataset's publish_time_column. Data on or after this time will be returned up to the publish_time_end if provided. Only applies to datasets with a publish_time_column. Cannot be used with publish_time.","title":"Publish Time Start"},"description":"The start time to filter results using the dataset's publish_time_column. Data on or after this time will be returned up to the publish_time_end if provided. Only applies to datasets with a publish_time_column. Cannot be used with publish_time."},{"name":"publish_time_end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"type":"null"}],"description":"The end time to filter results using the dataset's publish_index_column. Data before this time will be returned down the publish_time_start if provided. Only applies to datasets with a publish_time_column. Cannot be used with publish_time.","title":"Publish Time End"},"description":"The end time to filter results using the dataset's publish_index_column. Data before this time will be returned down the publish_time_start if provided. Only applies to datasets with a publish_time_column. Cannot be used with publish_time."},{"name":"resample_frequency","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The frequency to resample the data to. Must be one of:\n\n- \"1 minute\"\n- \"5 minutes\"\n- \"10 minutes\"\n- \"15 minutes\"\n- \"1 hour\"\n- \"1 day\"\n- \"1 week\"\n- \"1 month\"\n- \"1 year\"\n\nWhen resampling_frequency is specified, start_time and end_time values must also be provided. The only exception to this is when querying datasets that have a publish time and the publish time is specified as a specific timestamp or 'latest_report'.\n\nAdditionally, the number of days of data that can be queried is limited based on the resample frequency. The maximum number of days of data that can be queried for each resample frequency is listed below. There is no limit on days for resample frequencies not listed below.\n\n- 1 minute: 31 days\n- 5 minutes: 100 days\n- 10 minutes: 120 days\n- 15 minutes: 180 days\n- 1 hour: 365 days\n- 1 day: 1825 days","title":"Resample Frequency"},"description":"The frequency to resample the data to. Must be one of:\n\n- \"1 minute\"\n- \"5 minutes\"\n- \"10 minutes\"\n- \"15 minutes\"\n- \"1 hour\"\n- \"1 day\"\n- \"1 week\"\n- \"1 month\"\n- \"1 year\"\n\nWhen resampling_frequency is specified, start_time and end_time values must also be provided. The only exception to this is when querying datasets that have a publish time and the publish time is specified as a specific timestamp or 'latest_report'.\n\nAdditionally, the number of days of data that can be queried is limited based on the resample frequency. The maximum number of days of data that can be queried for each resample frequency is listed below. There is no limit on days for resample frequencies not listed below.\n\n- 1 minute: 31 days\n- 5 minutes: 100 days\n- 10 minutes: 120 days\n- 15 minutes: 180 days\n- 1 hour: 365 days\n- 1 day: 1825 days"},{"name":"resample_by","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"},{"type":"null"}],"description":"A comma separated list of columns to group by before resampling. \n\n- When resampling, the data is always grouped by the time index column of the dataset.\n\n- If a value is provided for resample_by, the data will be grouped by the provided columns in addition to the time index column.\n\n- If the dataset has a subseries index and no value is provided for resample_by, the data will also be grouped by the subseries index column.\n\n- If the dataset has a publish time column and the publish_time parameter is not 'latest', the data will also be grouped by the publish time column.","title":"Resample By"},"description":"A comma separated list of columns to group by before resampling. \n\n- When resampling, the data is always grouped by the time index column of the dataset.\n\n- If a value is provided for resample_by, the data will be grouped by the provided columns in addition to the time index column.\n\n- If the dataset has a subseries index and no value is provided for resample_by, the data will also be grouped by the subseries index column.\n\n- If the dataset has a publish time column and the publish_time parameter is not 'latest', the data will also be grouped by the publish time column."},{"name":"resample_function","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResampleFunction"},{"type":"null"}],"description":"The function to use when resampling. Defaults to \"mean\". Possible values are \"mean\", \"sum\", \"min\", \"max\", \"count\", \"stddev\", \"variance\". If resample is None, this is ignored.","default":"mean","title":"Resample Function"},"description":"The function to use when resampling. Defaults to \"mean\". Possible values are \"mean\", \"sum\", \"min\", \"max\", \"count\", \"stddev\", \"variance\". If resample is None, this is ignored."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/QueryDatasetResponse"},{"$ref":"#/components/schemas/CSVResponse"}],"title":"Response Query Dataset Column Value V1 Datasets  Dataset Id  Query  Filter Column Id   Filter Value Path  Get"},"example":{"status_code":200,"data":[{"interval_start_local":"2018-04-10T00:00:00-07:00","interval_start_utc":"2018-04-10T07:00:00+00:00","interval_end_local":"2018-04-10T00:05:00-07:00","interval_end_utc":"2018-04-10T07:05:00+00:00","load":22459},{"interval_start_local":"2018-04-10T00:05:00-07:00","interval_start_utc":"2018-04-10T07:05:00+00:00","interval_end_local":"2018-04-10T00:10:00-07:00","interval_end_utc":"2018-04-10T07:10:00+00:00","load":22371},{"interval_start_local":"2018-04-10T00:10:00-07:00","interval_start_utc":"2018-04-10T07:10:00+00:00","interval_end_local":"2018-04-10T00:15:00-07:00","interval_end_utc":"2018-04-10T07:15:00+00:00","load":22330}],"meta":{"page":1,"limit":1000,"page_size":100000,"hasNextPage":false},"dataset_metadata":{"id":"caiso_load","name":"CAISO Load","time_index_column":"interval_start_utc","all_columns":[{"name":"interval_start_local","type":"TIMESTAMP","is_date":false,"is_datetime":true,"is_numeric":false},{"name":"interval_start_utc","type":"TIMESTAMP","is_date":false,"is_datetime":true,"is_numeric":false},{"name":"interval_end_local","type":"TIMESTAMP","is_date":false,"is_datetime":true,"is_numeric":false},{"name":"interval_end_utc","type":"TIMESTAMP","is_date":false,"is_datetime":true,"is_numeric":false},{"name":"load","type":"INTEGER","is_date":false,"is_datetime":false,"is_numeric":true}]}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dataset-updates/{dataset_id}":{"get":{"tags":["Dataset Updates"],"summary":"Dataset Updates","description":"List all updates that have occurred in chronological order\nfor a specific dataset","operationId":"dataset_updates_v1_dataset_updates__dataset_id__get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"return_format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ReturnFormat","description":"The return format of the response","default":"json"},"description":"The return format of the response"},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to download the file or not","default":false,"title":"Download"},"description":"Whether to download the file or not"},{"name":"json_schema","in":"query","required":false,"schema":{"$ref":"#/components/schemas/JSONSchema","description":"The json schema of the response","default":"array-of-objects"},"description":"The json schema of the response"},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OrderBy"},{"type":"null"}],"description":"The order to order results by","default":"desc","title":"Order"},"description":"The order to order results by"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The maximum number of rows to return across all pages","title":"Limit"},"description":"The maximum number of rows to return across all pages"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetUpdatesResponse"},"example":{"status_code":200,"data":[{"id":18759731,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T00:46:52+00:00","num_rows_updated":0,"num_rows_inserted":288166,"is_backfill":false},{"id":18759928,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T00:55:41+00:00","num_rows_updated":0,"num_rows_inserted":1934,"is_backfill":false},{"id":18760076,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T01:01:09+00:00","num_rows_updated":0,"num_rows_inserted":967,"is_backfill":false},{"id":18760163,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T01:04:48+00:00","num_rows_updated":0,"num_rows_inserted":967,"is_backfill":false},{"id":18760315,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T01:10:41+00:00","num_rows_updated":0,"num_rows_inserted":967,"is_backfill":false},{"id":18760500,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T01:17:30+00:00","num_rows_updated":0,"num_rows_inserted":967,"is_backfill":false},{"id":18760582,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T01:20:51+00:00","num_rows_updated":0,"num_rows_inserted":967,"is_backfill":false},{"id":18760714,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T01:25:48+00:00","num_rows_updated":0,"num_rows_inserted":967,"is_backfill":false},{"id":18760781,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T01:29:58+00:00","num_rows_updated":0,"num_rows_inserted":967,"is_backfill":false},{"id":18760950,"dataset":"ieso_lmp_real_time_5_min","time_utc":"2025-04-25T01:35:41+00:00","num_rows_updated":0,"num_rows_inserted":967,"is_backfill":false}],"meta":{"page":1}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/reports/daily_peak/{iso}":{"get":{"tags":["Reports"],"summary":"Get Daily Peak Report","description":"Get a daily peak report for the specified ISO on the specified date. If multiple peaks in LMP values are found in the Day Ahead Market data for a given zone, only data for the first peak will be returned.\n\nNOTE: You must be on a paid Grid Status plan to access this endpoint.","operationId":"get_daily_peak_report_v1_reports_daily_peak__iso__get","parameters":[{"name":"iso","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ISOEnum","title":"ISO Name","description":"Name of the iso for which the report should be created"},"description":"Name of the iso for which the report should be created"},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"date","description":"The date for which the report should be generated."},"description":"The date for which the report should be generated."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PeakLoadReportResponse"},"example":{"ISO":"PJM","market_date":"2025-05-16","timezone":"US/Eastern","peak_dam_lmp":[{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"AECO","location_type":"ZONE","lmp":97.118751,"energy":155.76,"congestion":-65.318232,"loss":6.676983},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"AEP","location_type":"ZONE","lmp":97.395159,"energy":155.76,"congestion":-54.431105,"loss":-3.933736},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"AEP-DAYTON HUB","location_type":"HUB","lmp":91.80928,"energy":155.76,"congestion":-58.663862,"loss":-5.286858},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"AEP GEN HUB","location_type":"HUB","lmp":83.493421,"energy":155.76,"congestion":-65.138947,"loss":-7.127632},{"interval_start_market":"2025-05-16T16:00:00","interval_end_market":"2025-05-16T17:00:00","location":"APS","location_type":"ZONE","lmp":89.160852,"energy":144.19,"congestion":-58.616387,"loss":3.587239},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"ATSI","location_type":"ZONE","lmp":92.365946,"energy":155.76,"congestion":-63.106612,"loss":-0.287442},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"ATSI GEN HUB","location_type":"HUB","lmp":86.943864,"energy":155.76,"congestion":-65.453409,"loss":-3.362727},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"BGE","location_type":"ZONE","lmp":195.448405,"energy":155.76,"congestion":28.636572,"loss":11.051833},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"CHICAGO GEN HUB","location_type":"HUB","lmp":61.777,"energy":155.76,"congestion":-80.126231,"loss":-13.856769},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"CHICAGO HUB","location_type":"HUB","lmp":65.470279,"energy":155.76,"congestion":-79.369223,"loss":-10.920498},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"COMED","location_type":"ZONE","lmp":65.207782,"energy":155.76,"congestion":-79.068823,"loss":-11.483395},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"DAY","location_type":"ZONE","lmp":103.381408,"energy":155.76,"congestion":-50.764866,"loss":-1.613726},{"interval_start_market":"2025-05-16T19:00:00","interval_end_market":"2025-05-16T20:00:00","location":"DEOK","location_type":"ZONE","lmp":89.94213,"energy":108.56,"congestion":-15.420282,"loss":-3.197588},{"interval_start_market":"2025-05-16T15:00:00","interval_end_market":"2025-05-16T16:00:00","location":"DOM","location_type":"ZONE","lmp":486.712458,"energy":137.01,"congestion":341.984566,"loss":7.717892},{"interval_start_market":"2025-05-16T19:00:00","interval_end_market":"2025-05-16T20:00:00","location":"DOMINION HUB","location_type":"HUB","lmp":191.920648,"energy":108.56,"congestion":80.191854,"loss":3.168794},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"DPL","location_type":"ZONE","lmp":112.420637,"energy":155.76,"congestion":-52.112548,"loss":8.773185},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"DUQ","location_type":"ZONE","lmp":83.736817,"energy":155.76,"congestion":-70.621802,"loss":-1.401381},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"EASTERN HUB","location_type":"HUB","lmp":114.075813,"energy":155.76,"congestion":-50.283271,"loss":8.599084},{"interval_start_market":"2025-05-16T19:00:00","interval_end_market":"2025-05-16T20:00:00","location":"EKPC","location_type":"ZONE","lmp":88.626441,"energy":108.56,"congestion":-14.0673,"loss":-5.866259},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"JCPL","location_type":"ZONE","lmp":88.978929,"energy":155.76,"congestion":-69.921157,"loss":3.140086},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"METED","location_type":"ZONE","lmp":115.99368,"energy":155.76,"congestion":-43.41339,"loss":3.64707},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"MID-ATL/APS","location_type":"ZONE","lmp":209.16278,"energy":155.76,"congestion":42.553516,"loss":10.849265},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"NEW JERSEY HUB","location_type":"HUB","lmp":89.631444,"energy":155.76,"congestion":-69.848054,"loss":3.719498},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"N ILLINOIS HUB","location_type":"HUB","lmp":64.797684,"energy":155.76,"congestion":-78.77356,"loss":-12.188756},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"OHIO HUB","location_type":"HUB","lmp":92.687787,"energy":155.76,"congestion":-57.230401,"loss":-5.841812},{"interval_start_market":"2025-05-16T19:00:00","interval_end_market":"2025-05-16T20:00:00","location":"OVEC","location_type":"ZONE","lmp":88.5,"energy":108.56,"congestion":-15.33,"loss":-4.73},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"PECO","location_type":"ZONE","lmp":95.395634,"energy":155.76,"congestion":-64.371292,"loss":4.006926},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"PENELEC","location_type":"ZONE","lmp":80.674772,"energy":155.76,"congestion":-78.416136,"loss":3.330908},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"PEPCO","location_type":"ZONE","lmp":262.645429,"energy":155.76,"congestion":95.992709,"loss":10.89272},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"PJM-RTO","location_type":"ZONE","lmp":144.182684,"energy":155.76,"congestion":-14.599713,"loss":3.022396},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"PPL","location_type":"ZONE","lmp":86.842633,"energy":155.76,"congestion":-69.501223,"loss":0.583856},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"PSEG","location_type":"ZONE","lmp":87.408946,"energy":155.76,"congestion":-71.727043,"loss":3.375989},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"RECO","location_type":"ZONE","lmp":84.78116,"energy":155.76,"congestion":-74.6739,"loss":3.69506},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"WESTERN HUB","location_type":"HUB","lmp":144.9218,"energy":155.76,"congestion":-15.622671,"loss":4.784471},{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","location":"WEST INT HUB","location_type":"HUB","lmp":147.074394,"energy":155.76,"congestion":-7.775049,"loss":-0.910557}],"peak_load":{"interval_start_market":"2025-05-16T16:00:00","interval_end_market":"2025-05-16T17:00:00","load":110462.82758333335,"net_load":96116.07758333335,"fuel_mix.coal":14757.583333333334,"fuel_mix.gas":43558.25,"fuel_mix.hydro":4504.916666666667,"fuel_mix.multiple_fuels":1342.6666666666667,"fuel_mix.nuclear":29601.5,"fuel_mix.oil":1393.0833333333333,"fuel_mix.solar":6843.5,"fuel_mix.storage":2.75,"fuel_mix.wind":7503.25,"fuel_mix.other_renewables":526.6666666666666},"peak_net_load":{"interval_start_market":"2025-05-16T17:00:00","interval_end_market":"2025-05-16T18:00:00","load":110453.081,"net_load":98153.49766666668,"fuel_mix.coal":15300.75,"fuel_mix.gas":45012.916666666664,"fuel_mix.hydro":4407.25,"fuel_mix.multiple_fuels":1417.25,"fuel_mix.nuclear":29569,"fuel_mix.oil":1466.5,"fuel_mix.solar":4975.25,"fuel_mix.storage":6.666666666666667,"fuel_mix.wind":7324.333333333333,"fuel_mix.other_renewables":536.1666666666666}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api_usage":{"get":{"tags":["API Usage"],"summary":"Get Api Usage Endpoint","description":"Get API usage statistics and limits for the current user/organization.","operationId":"get_api_usage_endpoint_v1_api_usage_get","parameters":[{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIUsageResponse"},"example":{"plan_name":"Example Plan","limits":{"api_rows_returned_limit":25000000,"api_requests_limit":100000,"api_rows_per_response_limit":90000,"per_second_api_rate_limit":3,"per_minute_api_rate_limit":20,"per_hour_api_rate_limit":900},"current_usage_period_start":"2025-10-01T00:00:00Z","current_usage_period_end":"2025-11-01T00:00:00Z","current_period_usage":{"total_requests":30000,"total_api_rows_returned":1500000}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csv-exports/{dataset_id}/{export_date}":{"get":{"tags":["CSV Exports"],"summary":"Generate a presigned S3 URL for a bulk export file","description":"Return a time-limited presigned URL for a bulk export object on S3.\n\nCaller supplies dataset id, date, and (optionally) file type; the server\nconstructs the S3 key per the layout documented in\n`gitbook/bulk-csv-download/folder-structure.md`.","operationId":"get_export_presigned_url_v1_csv_exports__dataset_id___export_date__get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"export_date","in":"path","required":true,"schema":{"type":"string","format":"date","description":"ISO 8601 date of the partition, e.g. `2025-03-14`.","title":"Export Date"},"description":"ISO 8601 date of the partition, e.g. `2025-03-14`."},{"name":"file_type","in":"query","required":false,"schema":{"const":"csv","type":"string","description":"File format. Currently only `csv` (gzipped) is available.","default":"csv","title":"File Type"},"description":"File format. Currently only `csv` (gzipped) is available."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresignedUrlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csv-exports/{dataset_id}":{"get":{"tags":["CSV Exports"],"summary":"List available bulk export files for a dataset","description":"List the per-day export files available on S3 for a dataset.\n\nEach entry includes the partition date, object size, and last-modified\ntimestamp; combine with `GET /{dataset_id}/{date}` to fetch a presigned\nURL for any specific file.","operationId":"list_dataset_exports_v1_csv_exports__dataset_id__get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1900},{"type":"null"}],"description":"Optional. Restrict the listing to a single year.","title":"Year"},"description":"Optional. Restrict the listing to a single year."},{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":12,"minimum":1},{"type":"null"}],"description":"Optional. Restrict the listing to a single month. Requires `year`.","title":"Month"},"description":"Optional. Restrict the listing to a single month. Requires `year`."},{"name":"file_type","in":"query","required":false,"schema":{"const":"csv","type":"string","description":"File format to list. Currently only `csv` (gzipped).","default":"csv","title":"File Type"},"description":"File format to list. Currently only `csv` (gzipped)."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetExportsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints":{"get":{"tags":["Constraints"],"summary":"List Constraints","description":"Get a list of constraints with optional filtering by ISOs and a search term.\n\nReturns constraints where market_id matches an item in the comma-separated\nisos list and constraint_name contains the search term. When sort_order is\nnot specified and there is a search term, results are sorted by relevance\n(shorter constraint_names first). When sort_order is not specified, there is no\nsearch term, and include_absolute_costs is false, results are sorted by\nlatest_seen_utc descending (most recently seen first), then market_id ascending,\nthen constraint_name ascending. When include_absolute_costs is true and there is\nno search term, results are sorted by rt_absolute_cost descending with nulls last.\n\nUse include_absolute_costs, include_timestamps, and include_dataset_metadata to opt\ninto rt_absolute_cost/da_absolute_cost, GS timestamps, and pricing dataset metadata.","operationId":"list_constraints_v1_constraints_get","parameters":[{"name":"include_absolute_costs","in":"query","required":false,"schema":{"type":"boolean","description":"When true, include rt_absolute_cost and da_absolute_cost on each constraint. Uses absolute_cost_start_time and absolute_cost_end_time when provided.","default":false,"title":"Include Absolute Costs"},"description":"When true, include rt_absolute_cost and da_absolute_cost on each constraint. Uses absolute_cost_start_time and absolute_cost_end_time when provided."},{"name":"include_timestamps","in":"query","required":false,"schema":{"type":"boolean","description":"When true, include gs_created_at_utc and gs_updated_at_utc.","default":false,"title":"Include Timestamps"},"description":"When true, include gs_created_at_utc and gs_updated_at_utc."},{"name":"include_dataset_metadata","in":"query","required":false,"schema":{"type":"boolean","description":"When true, include dataset_metadata with pricing dataset specs.","default":false,"title":"Include Dataset Metadata"},"description":"When true, include dataset_metadata with pricing dataset specs."},{"name":"absolute_cost_start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Optional lower bound for the absolute cost window. When set, include rows where time index >= absolute_cost_start_time. Only used when include_absolute_costs is true.","title":"Absolute Cost Start Time"},"description":"Optional lower bound for the absolute cost window. When set, include rows where time index >= absolute_cost_start_time. Only used when include_absolute_costs is true."},{"name":"absolute_cost_end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Optional upper bound for the absolute cost window. When set, include rows where time index < absolute_cost_end_time. Only used when include_absolute_costs is true.","title":"Absolute Cost End Time"},"description":"Optional upper bound for the absolute cost window. When set, include rows where time index < absolute_cost_end_time. Only used when include_absolute_costs is true."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"isos","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of market IDs to filter by","title":"Isos"},"description":"Comma-separated list of market IDs to filter by"},{"name":"active_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter latest_seen_utc to be on or after this timestamp","title":"Active After"},"description":"Filter latest_seen_utc to be on or after this timestamp"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100000,"minimum":0},{"type":"null"}],"description":"Maximum number of results to return (default: 10000)","default":10000,"title":"Limit"},"description":"Maximum number of results to return (default: 10000)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OrderBy"},{"type":"null"}],"description":"Sort order: asc or desc. Defaults to desc when omitted.","title":"Sort Order"},"description":"Sort order: asc or desc. Defaults to desc when omitted."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional search term to filter by constraint_name","title":"Search"},"description":"Optional search term to filter by constraint_name"},{"name":"sort_column","in":"query","required":false,"schema":{"anyOf":[{"enum":["constraint_name","market_id","earliest_seen_utc","latest_seen_utc"],"type":"string"},{"type":"null"}],"description":"Column to sort by. Must be one of: constraint_name, market_id, earliest_seen_utc, latest_seen_utc","title":"Sort Column"},"description":"Column to sort by. Must be one of: constraint_name, market_id, earliest_seen_utc, latest_seen_utc"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConstraintsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/contingencies":{"get":{"tags":["Constraints"],"summary":"List Contingencies","description":"Get a list of contingencies with optional filtering by ISOs and a search term.\n\nReturns all rows and columns from the contingencies table where market_id\nmatches an item in the comma-separated isos list and contingency_name\ncontains the search term. When sort_order is not specified and there is a\nsearch term, results are sorted by relevance (shorter contingency_names\nfirst). When sort_order is not specified and there is no search term,\nresults are sorted by latest_seen_utc descending (most recently seen first),\nthen market_id ascending, then contingency_name ascending for consistent\nordering.\n\nArgs:\n    params: Query parameters (isos, search, active_after, limit,\n        sort_column, sort_order)","operationId":"list_contingencies_v1_constraints_contingencies_get","parameters":[{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"isos","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of market IDs to filter by","title":"Isos"},"description":"Comma-separated list of market IDs to filter by"},{"name":"active_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter latest_seen_utc to be on or after this timestamp","title":"Active After"},"description":"Filter latest_seen_utc to be on or after this timestamp"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100000,"minimum":0},{"type":"null"}],"description":"Maximum number of results to return (default: 10000)","default":10000,"title":"Limit"},"description":"Maximum number of results to return (default: 10000)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OrderBy"},{"type":"null"}],"description":"Sort order: asc or desc. Defaults to desc when omitted.","title":"Sort Order"},"description":"Sort order: asc or desc. Defaults to desc when omitted."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional search term to filter by contingency_name","title":"Search"},"description":"Optional search term to filter by contingency_name"},{"name":"sort_column","in":"query","required":false,"schema":{"anyOf":[{"enum":["contingency_name","market_id","earliest_seen_utc","latest_seen_utc"],"type":"string"},{"type":"null"}],"description":"Column to sort by. Must be one of: contingency_name, market_id, earliest_seen_utc, latest_seen_utc","title":"Sort Column"},"description":"Column to sort by. Must be one of: contingency_name, market_id, earliest_seen_utc, latest_seen_utc"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ContingencyListResponse"},"title":"Response List Contingencies V1 Constraints Contingencies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/locations/{location_gs_entity_id}/shift-factors":{"get":{"tags":["Constraints"],"summary":"List Shift Factors For Location","description":"Retrieve estimated shift factors for a pricing location.\n\nQueries ClickHouse ``linear_estimated_shift_factors`` for the given\nlocation, returning one row per ``constraint_gs_entity_id``. When multiple\nsource rows share the same constraint, ``estimated_shift_factor`` is\naggregated per ``aggregation_function`` (mean, max, min, or median).\nOptional ``contingency_id`` restricts rows to a single contingency.\nOptional ``dataset_id`` filters on ``source_dataset``.\nWhen ``exclude_zeros`` is true, source rows with ``estimated_shift_factor``\nequal to zero are dropped before aggregating per constraint.","operationId":"list_shift_factors_for_location_v1_constraints_locations__location_gs_entity_id__shift_factors_get","parameters":[{"name":"location_gs_entity_id","in":"path","required":true,"schema":{"type":"string","title":"Location Gs Entity Id"}},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"contingency_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contingency ID","description":"When set, only include rows with this contingency_gs_entity_id"},"description":"When set, only include rows with this contingency_gs_entity_id"},{"name":"dataset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset ID","description":"When set, only include rows with this source_dataset"},"description":"When set, only include rows with this source_dataset"},{"name":"exclude_zeros","in":"query","required":false,"schema":{"type":"boolean","title":"Exclude zeros","description":"When true, exclude rows where estimated_shift_factor is zero before aggregating each group","default":false},"description":"When true, exclude rows where estimated_shift_factor is zero before aggregating each group"},{"name":"aggregation_function","in":"query","required":false,"schema":{"enum":["mean","max","min","median"],"type":"string","title":"Aggregation function","description":"Function used to combine source rows in each group: mean, max, min, or median","default":"mean"},"description":"Function used to combine source rows in each group: mean, max, min, or median"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShiftFactorConstraintResponse"},"title":"Response List Shift Factors For Location V1 Constraints Locations  Location Gs Entity Id  Shift Factors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/locations/{location_gs_entity_id}/constraint-costs":{"get":{"tags":["Constraints"],"summary":"List Constraint Costs For Location","description":"Get location-adjusted constraint costs over a time range.\n\nThe endpoint computes absolute cost per constraint/contingency pair from the\nspecified constraint dataset in ClickHouse, then multiplies each by the\nlocation's aggregated shift factor (mean) from\n``linear_estimated_shift_factors`` for the same dataset.\nFor datasets without ``contingency_gs_entity_id``, costs are computed per\nconstraint and reused across that constraint's shift-factor contingency rows.\n\nPass ``group_by=constraint`` to roll contingency-grained rows up to one row\nper constraint (sum of ``adjusted_cost``, mean ``shift_factor``; contingency\nfields are null). ``absolute_cost`` is summed when the dataset has a\ncontingency column; otherwise the shared per-constraint cost is kept once.","operationId":"list_constraint_costs_for_location_v1_constraints_locations__location_gs_entity_id__constraint_costs_get","parameters":[{"name":"location_gs_entity_id","in":"path","required":true,"schema":{"type":"string","title":"Location Gs Entity Id"}},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"start_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Filter to rows where time index >= start_time (ISO 8601)","title":"Start Time"},"description":"Filter to rows where time index >= start_time (ISO 8601)"},{"name":"end_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Filter to rows where time index < end_time (ISO 8601)","title":"End Time"},"description":"Filter to rows where time index < end_time (ISO 8601)"},{"name":"group_by","in":"query","required":false,"schema":{"enum":["constraint","constraint_contingency"],"type":"string","description":"Row grain. `constraint_contingency` (default) returns one row per constraint/contingency pair. `constraint` rolls those rows up to one row per constraint (sum of adjusted_cost, mean shift factor; absolute_cost summed only when the dataset has a contingency column).","default":"constraint_contingency","title":"Group By"},"description":"Row grain. `constraint_contingency` (default) returns one row per constraint/contingency pair. `constraint` rolls those rows up to one row per constraint (sum of adjusted_cost, mean shift factor; absolute_cost summed only when the dataset has a contingency column)."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LocationConstraintCostResponse"},"title":"Response List Constraint Costs For Location V1 Constraints Locations  Location Gs Entity Id  Constraint Costs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/{constraint_id}/shift-factors":{"get":{"tags":["Constraints"],"summary":"List Shift Factors","description":"Retrieve estimated shift factors for a constraint.\n\nQueries ClickHouse ``linear_estimated_shift_factors`` for the given\nconstraint, returning one row per ``location_gs_entity_id``. When multiple\nsource rows share the same location, ``estimated_shift_factor`` is\naggregated per ``aggregation_function`` (mean, max, min, or median).\nOptional ``contingency_id`` restricts rows to a single contingency.\nOptional ``dataset_id`` filters on ``source_dataset``.\nWhen ``exclude_zeros`` is true, source rows with ``estimated_shift_factor``\nequal to zero are dropped before aggregating per location.","operationId":"list_shift_factors_v1_constraints__constraint_id__shift_factors_get","parameters":[{"name":"constraint_id","in":"path","required":true,"schema":{"type":"string","title":"Constraint ID","description":"GS entity ID of the constraint to get shift factors for"},"description":"GS entity ID of the constraint to get shift factors for"},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"contingency_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contingency ID","description":"When set, only include rows with this contingency_gs_entity_id"},"description":"When set, only include rows with this contingency_gs_entity_id"},{"name":"dataset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset ID","description":"When set, only include rows with this source_dataset"},"description":"When set, only include rows with this source_dataset"},{"name":"exclude_zeros","in":"query","required":false,"schema":{"type":"boolean","title":"Exclude zeros","description":"When true, exclude rows where estimated_shift_factor is zero before aggregating each group","default":false},"description":"When true, exclude rows where estimated_shift_factor is zero before aggregating each group"},{"name":"aggregation_function","in":"query","required":false,"schema":{"enum":["mean","max","min","median"],"type":"string","title":"Aggregation function","description":"Function used to combine source rows in each group: mean, max, min, or median","default":"mean"},"description":"Function used to combine source rows in each group: mean, max, min, or median"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShiftFactorLocationResponse"},"title":"Response List Shift Factors V1 Constraints  Constraint Id  Shift Factors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/{constraint_id}/location":{"get":{"tags":["Constraints"],"summary":"Get Constraint Location","description":"Retrieve start/end substation coordinates for a constraint.\n\nReturns nullable ``start`` and ``end`` lat/lon from the market's constraint\ngeometry table. Markets without a geometry table return 400. Unknown constraint\nids return 404.","operationId":"get_constraint_location_v1_constraints__constraint_id__location_get","parameters":[{"name":"constraint_id","in":"path","required":true,"schema":{"type":"string","title":"Constraint ID","description":"GS entity ID of the constraint to get facility location for"},"description":"GS entity ID of the constraint to get facility location for"},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConstraintLocationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/binding":{"get":{"tags":["Constraints"],"summary":"List Constraint Binding Rows","description":"Get binding rows for a dataset with constraint display names.","operationId":"list_constraint_binding_rows_v1_constraints_binding_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":1,"description":"Maximum number of rows to return.","default":50000,"title":"Limit"},"description":"Maximum number of rows to return."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index >= start_time (ISO 8601)","title":"Start Time"},"description":"Filter to rows where time index >= start_time (ISO 8601)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index < end_time (ISO 8601 timestamp)","title":"End Time"},"description":"Filter to rows where time index < end_time (ISO 8601 timestamp)"},{"name":"price_threshold","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold.","title":"Price Threshold"},"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Constraint Binding Rows V1 Constraints Binding Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/binding/locations":{"get":{"tags":["Constraints"],"summary":"List Binding Constraints With Locations","description":"Get unique binding constraints for a dataset/time window with locations.\n\nScans binding observations for ``dataset_id`` in ``[start_time, end_time)``,\ncollapses peak-|shadow| per (constraint, interval), keeps the top\n``limit`` constraints by peak |shadow|, joins facility coordinates and\ncontingency identity/names, and returns one object per constraint with\nnested observations, ordered by that ranking.","operationId":"list_binding_constraints_with_locations_v1_constraints_binding_locations_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":1,"description":"Maximum number of unique binding constraints to return (all intervals for each are included).","default":50000,"title":"Limit"},"description":"Maximum number of unique binding constraints to return (all intervals for each are included)."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"start_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Filter to rows where time index >= start_time (ISO 8601)","title":"Start Time"},"description":"Filter to rows where time index >= start_time (ISO 8601)"},{"name":"end_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Filter to rows where time index < end_time (ISO 8601 timestamp)","title":"End Time"},"description":"Filter to rows where time index < end_time (ISO 8601 timestamp)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BindingConstraintsWithLocationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/{constraint_id}/binding_intervals_by_hour":{"get":{"tags":["Constraints"],"summary":"List Constraint Binding Intervals By Hour","description":"Get filtered binding interval counts grouped by hour-of-day.","operationId":"list_constraint_binding_intervals_by_hour_v1_constraints__constraint_id__binding_intervals_by_hour_get","parameters":[{"name":"constraint_id","in":"path","required":true,"schema":{"type":"string","title":"Constraint ID","description":"GS entity ID of the constraint to query"},"description":"GS entity ID of the constraint to query"},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional IANA timezone (e.g. America/New_York). When provided, buckets are computed in this timezone.","title":"Timezone"},"description":"Optional IANA timezone (e.g. America/New_York). When provided, buckets are computed in this timezone."},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index >= start_time (ISO 8601)","title":"Start Time"},"description":"Filter to rows where time index >= start_time (ISO 8601)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index < end_time (ISO 8601)","title":"End Time"},"description":"Filter to rows where time index < end_time (ISO 8601)"},{"name":"price_threshold","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold.","title":"Price Threshold"},"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold."},{"name":"contingency_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional contingency GS entity ID filter.","title":"Contingency Id"},"description":"Optional contingency GS entity ID filter."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConstraintBindingHourCountResponse"},"title":"Response List Constraint Binding Intervals By Hour V1 Constraints  Constraint Id  Binding Intervals By Hour Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/{constraint_id}/stats":{"get":{"tags":["Constraints"],"summary":"List Constraint Stats By Interval","description":"Get per-interval count, shadow-price summary stats, and absolute cost.","operationId":"list_constraint_stats_by_interval_v1_constraints__constraint_id__stats_get","parameters":[{"name":"constraint_id","in":"path","required":true,"schema":{"type":"string","title":"Constraint ID","description":"GS entity ID of the constraint to query"},"description":"GS entity ID of the constraint to query"},{"name":"aggregation_period","in":"query","required":true,"schema":{"enum":["hour","day","month","year"],"type":"string","description":"Aggregation bucket size. One of \"hour\", \"day\", \"month\", \"year\".","title":"Aggregation Period"},"description":"Aggregation bucket size. One of \"hour\", \"day\", \"month\", \"year\"."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional IANA timezone (e.g. America/New_York). When provided, buckets are computed in this timezone.","title":"Timezone"},"description":"Optional IANA timezone (e.g. America/New_York). When provided, buckets are computed in this timezone."},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index >= start_time (ISO 8601)","title":"Start Time"},"description":"Filter to rows where time index >= start_time (ISO 8601)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index < end_time (ISO 8601)","title":"End Time"},"description":"Filter to rows where time index < end_time (ISO 8601)"},{"name":"price_threshold","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold.","title":"Price Threshold"},"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold."},{"name":"contingency_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional contingency GS entity ID filter.","title":"Contingency Id"},"description":"Optional contingency GS entity ID filter."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConstraintStatsIntervalResponse"},"title":"Response List Constraint Stats By Interval V1 Constraints  Constraint Id  Stats Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/binding/counts":{"get":{"tags":["Constraints"],"summary":"List Constraint Binding Counts By Period","description":"Summarize unique binding constraints per UTC period for a dataset.","operationId":"list_constraint_binding_counts_by_period_v1_constraints_binding_counts_get","parameters":[{"name":"aggregation_period","in":"query","required":false,"schema":{"enum":["hour","day","month","year"],"type":"string","description":"UTC aggregation period for grouping counts. Supported values: hour, day, month, year.","default":"hour","title":"Aggregation Period"},"description":"UTC aggregation period for grouping counts. Supported values: hour, day, month, year."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index >= start_time (ISO 8601)","title":"Start Time"},"description":"Filter to rows where time index >= start_time (ISO 8601)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index < end_time (ISO 8601 timestamp)","title":"End Time"},"description":"Filter to rows where time index < end_time (ISO 8601 timestamp)"},{"name":"price_threshold","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold.","title":"Price Threshold"},"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BindingConstraintCountResponse"},"title":"Response List Constraint Binding Counts By Period V1 Constraints Binding Counts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/binding/absolute-costs":{"get":{"tags":["Constraints"],"summary":"List Constraint Binding Absolute Costs By Period","description":"Summarize absolute binding cost per UTC period for a dataset.","operationId":"list_constraint_binding_absolute_costs_by_period_v1_constraints_binding_absolute_costs_get","parameters":[{"name":"aggregation_period","in":"query","required":false,"schema":{"enum":["hour","day","month","year"],"type":"string","description":"UTC aggregation period for grouping absolute costs. Supported values: hour, day, month, year.","default":"hour","title":"Aggregation Period"},"description":"UTC aggregation period for grouping absolute costs. Supported values: hour, day, month, year."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index >= start_time (ISO 8601)","title":"Start Time"},"description":"Filter to rows where time index >= start_time (ISO 8601)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to rows where time index < end_time (ISO 8601 timestamp)","title":"End Time"},"description":"Filter to rows where time index < end_time (ISO 8601 timestamp)"},{"name":"price_threshold","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold.","title":"Price Threshold"},"description":"Optional threshold. When set, only include rows where ABS(configured shadow price column) > price_threshold."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BindingConstraintAbsoluteCostResponse"},"title":"Response List Constraint Binding Absolute Costs By Period V1 Constraints Binding Absolute Costs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/binding/heat_map":{"get":{"tags":["Constraints"],"summary":"Get Constraint Binding Heat Map","description":"Return absolute costs and shadow-price aggregates by bucket and constraint.","operationId":"get_constraint_binding_heat_map_v1_constraints_binding_heat_map_get","parameters":[{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"start_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Filter to rows where time index >= start_time (ISO 8601)","title":"Start Time"},"description":"Filter to rows where time index >= start_time (ISO 8601)"},{"name":"end_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Filter to rows where time index < end_time (ISO 8601 timestamp)","title":"End Time"},"description":"Filter to rows where time index < end_time (ISO 8601 timestamp)"},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional IANA timezone used for daily bucket boundaries. Defaults to the dataset market timezone.","title":"Timezone"},"description":"Optional IANA timezone used for daily bucket boundaries. Defaults to the dataset market timezone."},{"name":"bucket_mode","in":"query","required":false,"schema":{"enum":["auto","raw","hourly","daily"],"type":"string","description":"Bucket resolution. Raw preserves the native interval; hourly and daily use explicit buckets. Auto derives resolution from the native interval and selected range. Explicit modes that exceed the range limit resolve to the nearest available mode.","default":"auto","title":"Bucket Mode"},"description":"Bucket resolution. Raw preserves the native interval; hourly and daily use explicit buckets. Auto derives resolution from the native interval and selected range. Explicit modes that exceed the range limit resolve to the nearest available mode."},{"name":"group_by","in":"query","required":false,"schema":{"enum":["constraint","constraint_contingency"],"type":"string","description":"Group rows by constraint and contingency by default, or by constraint only.","default":"constraint_contingency","title":"Group By"},"description":"Group rows by constraint and contingency by default, or by constraint only."},{"name":"days_of_week","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional comma-separated market-local days of the week, where Monday is 1 and Sunday is 7. An empty value matches no rows.","title":"Days Of Week"},"description":"Optional comma-separated market-local days of the week, where Monday is 1 and Sunday is 7. An empty value matches no rows."},{"name":"hours","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional comma-separated market-local hour starts from 0 through 23. An empty value matches no rows.","title":"Hours"},"description":"Optional comma-separated market-local hour starts from 0 through 23. An empty value matches no rows."},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ConstraintBindingHeatMapSupportedResponse"},{"$ref":"#/components/schemas/ConstraintBindingHeatMapUnsupportedResponse"}],"title":"Response Get Constraint Binding Heat Map V1 Constraints Binding Heat Map Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/{gs_entity_id}":{"get":{"tags":["Constraints"],"summary":"Get Constraint","description":"Get data for a specific constraint by its GS entity ID.","operationId":"get_constraint_v1_constraints__gs_entity_id__get","parameters":[{"name":"gs_entity_id","in":"path","required":true,"schema":{"type":"string","title":"GS Entity ID","description":"GS entity ID of the constraint to query"},"description":"GS entity ID of the constraint to query"},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConstraintResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/{constraint_id}/intervals":{"get":{"tags":["Constraints"],"summary":"Get Constraint Intervals","description":"Year/month/day-level statistics on binding intervals in ISO local time.","operationId":"get_constraint_intervals_v1_constraints__constraint_id__intervals_get","parameters":[{"name":"constraint_id","in":"path","required":true,"schema":{"type":"string","title":"Constraint ID","description":"GS entity ID of the constraint to query"},"description":"GS entity ID of the constraint to query"},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"contingency_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contingency ID","description":"Optional contingency GS entity ID filter. Applied only when the dataset contains contingency_gs_entity_id."},"description":"Optional contingency GS entity ID filter. Applied only when the dataset contains contingency_gs_entity_id."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConstraintIntervalResponse"},"title":"Response Get Constraint Intervals V1 Constraints  Constraint Id  Intervals Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/constraints/{constraint_id}/contingencies":{"get":{"tags":["Constraints"],"summary":"List Contingencies For Constraint","description":"Contingencies binding for a constraint in a dataset/time window.","operationId":"list_contingencies_for_constraint_v1_constraints__constraint_id__contingencies_get","parameters":[{"name":"constraint_id","in":"path","required":true,"schema":{"type":"string","title":"Constraint ID","description":"Constraint GS entity ID to filter by (constraint_gs_entity_id)"},"description":"Constraint GS entity ID to filter by (constraint_gs_entity_id)"},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"include_binding_stats","in":"query","required":false,"schema":{"type":"boolean","description":"When true, include binding_intervals and absolute_cost and apply start_time/end_time/time filters. Default returns id and name only.","default":false,"title":"Include Binding Stats"},"description":"When true, include binding_intervals and absolute_cost and apply start_time/end_time/time filters. Default returns id and name only."},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time (ISO timestamp) for filtering (inclusive). Requires time index column. Only used when include_binding_stats is true.","title":"Start Time"},"description":"Start time (ISO timestamp) for filtering (inclusive). Requires time index column. Only used when include_binding_stats is true."},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time (ISO timestamp) for filtering (exclusive). Requires time index column. Only used when include_binding_stats is true.","title":"End Time"},"description":"End time (ISO timestamp) for filtering (exclusive). Requires time index column. Only used when include_binding_stats is true."},{"name":"time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional specific timestamp to filter results. Cannot be used with start_time or end_time. Only used when include_binding_stats is true.","title":"Time"},"description":"Optional specific timestamp to filter results. Cannot be used with start_time or end_time. Only used when include_binding_stats is true."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ContingencyResponse"},"title":"Response List Contingencies For Constraint V1 Constraints  Constraint Id  Contingencies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/outages/{market_id}/active":{"get":{"tags":["Outages"],"summary":"List Active Outages","description":"List scheduled transmission outages that overlap a time window.","operationId":"list_active_outages_v1_outages__market_id__active_get","parameters":[{"name":"market_id","in":"path","required":true,"schema":{"type":"string","description":"Market id (e.g. pjm). Determines outage + coordinates datasets.","title":"Market Id"},"description":"Market id (e.g. pjm). Determines outage + coordinates datasets."},{"name":"start_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Inclusive start of a half-open window (ISO 8601, UTC). Use with end_time. Tickets whose displayed interval overlaps [start_time, end_time) are returned. Also the reconstruction as-of cutoff (version/change times <= start_time).","title":"Start Time"},"description":"Inclusive start of a half-open window (ISO 8601, UTC). Use with end_time. Tickets whose displayed interval overlaps [start_time, end_time) are returned. Also the reconstruction as-of cutoff (version/change times <= start_time)."},{"name":"end_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Exclusive end of a half-open window (ISO 8601, UTC).","title":"End Time"},"description":"Exclusive end of a half-open window (ISO 8601, UTC)."},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Optional inclusive lower bound on the ticket's displayed current_interval_start_utc (ISO 8601, UTC). When omitted, outages that started at any time are included.","title":"Start Date"},"description":"Optional inclusive lower bound on the ticket's displayed current_interval_start_utc (ISO 8601, UTC). When omitted, outages that started at any time are included."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":1,"description":"Maximum number of tickets to return. When more tickets match, truncated is true and tickets is trimmed to this limit. Each returned ticket includes its full equipment list.","default":50000,"title":"Limit"},"description":"Maximum number of tickets to return. When more tickets match, truncated is true and tickets is trimmed to this limit. Each returned ticket includes its full equipment list."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PJMActiveOutagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/outages/pjm/search":{"get":{"tags":["Outages"],"summary":"Search Pjm Outage Tickets","description":"Search present PJM tickets whose latest reported start falls in a window.","operationId":"search_pjm_outage_tickets_v1_outages_pjm_search_get","parameters":[{"name":"start_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Inclusive start of a half-open window (ISO 8601, UTC). Tickets whose latest reported outage start falls in [start_time, end_time) are returned.","title":"Start Time"},"description":"Inclusive start of a half-open window (ISO 8601, UTC). Tickets whose latest reported outage start falls in [start_time, end_time) are returned."},{"name":"end_time","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Exclusive end of a half-open window (ISO 8601, UTC).","title":"End Time"},"description":"Exclusive end of a half-open window (ISO 8601, UTC)."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Case-insensitive match on ticket number, facility name, equipment name, or station name.","title":"Search"},"description":"Case-insensitive match on ticket number, facility name, equipment name, or station name."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum number of tickets to return.","default":1000,"title":"Limit"},"description":"Maximum number of tickets to return."},{"name":"min_voltage_kv","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Keep tickets that have present equipment at or above this voltage (kV). Equipment with unknown voltage does not match.","title":"Min Voltage Kv"},"description":"Keep tickets that have present equipment at or above this voltage (kV). Equipment with unknown voltage does not match."},{"name":"zones","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated PJM zone codes. Empty means all zones.","title":"Zones"},"description":"Comma-separated PJM zone codes. Empty means all zones."},{"name":"equipment_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated equipment types (LINE, XFMR, GEN, PS, CAP, BRKR, OTHER). Empty means all types. OTHER matches unnamed or unrecognized types.","title":"Equipment Types"},"description":"Comma-separated equipment types (LINE, XFMR, GEN, PS, CAP, BRKR, OTHER). Empty means all types. OTHER matches unnamed or unrecognized types."},{"name":"open_closed","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ticket equipment state: both, open, or closed. A ticket is open when any present equipment has an open switching action.","title":"Open Closed"},"description":"Ticket equipment state: both, open, or closed. A ticket is open when any present equipment has an open switching action."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PJMOutageSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/outages/pjm/{ticket_id}":{"get":{"tags":["Outages"],"summary":"Get Pjm Outage Ticket Detail","description":"Return CDC histories for one PJM transmission outage ticket.\n\nNewest change or version first in each list. Tickets with no versions\nreturn 404.","operationId":"get_pjm_outage_ticket_detail_v1_outages_pjm__ticket_id__get","parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","description":"PJM transmission outage ticket number.","title":"Ticket Id"},"description":"PJM transmission outage ticket number."},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PJMOutageTicketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pricing_locations":{"get":{"tags":["Pricing Locations"],"summary":"List Pricing Locations","description":"Get a list of pricing locations with optional filtering by ISOs, zones,\nzone types and a search term.\n\nArgs:\n    params: Query parameters for filtering pricing locations\n    sort_column: Column to sort by.\n    sort_order: Sort order - 'asc' or 'desc'.","operationId":"list_pricing_locations_v1_pricing_locations_get","parameters":[{"name":"sort_column","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort Column"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OrderBy"},{"type":"null"}],"title":"Sort Order"}},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional search term to filter locations by name","title":"Search"},"description":"Optional search term to filter locations by name"},{"name":"isos","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of market IDs to filter by","title":"Isos"},"description":"Comma-separated list of market IDs to filter by"},{"name":"zones","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of zones to filter by","title":"Zones"},"description":"Comma-separated list of zones to filter by"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of statuses to filter by","title":"Status"},"description":"Comma-separated list of statuses to filter by"},{"name":"location_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of location types to filter by","title":"Location Types"},"description":"Comma-separated list of location types to filter by"},{"name":"has_geo_data","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by whether locations have geographic data","title":"Has Geo Data"},"description":"Filter by whether locations have geographic data"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacetedSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pricing_locations/nearby":{"get":{"tags":["Pricing Locations"],"summary":"List Nearby Pricing Locations","description":"Get a list of pricing locations near the provided latitude/longitude\nor gs_entity_id. User must provide either latitude and longitude or a\ngs_entity_id, but not both.","operationId":"list_nearby_pricing_locations_v1_pricing_locations_nearby_get","parameters":[{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"latitude","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":90,"minimum":-90},{"type":"null"}],"description":"The latitude of the location to search","title":"Latitude"},"description":"The latitude of the location to search"},{"name":"longitude","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":180,"minimum":-180},{"type":"null"}],"description":"The longitude of the location to search","title":"Longitude"},"description":"The longitude of the location to search"},{"name":"gs_entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The GS entity ID of the location to search","title":"Gs Entity Id"},"description":"The GS entity ID of the location to search"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NearbyPricingLocationItem"},"title":"Response List Nearby Pricing Locations V1 Pricing Locations Nearby Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pricing_locations/{gs_entity_id}":{"get":{"tags":["Pricing Locations"],"summary":"Get Pricing Location","description":"Get data for a specific pricing location by its ID.","operationId":"get_pricing_location_v1_pricing_locations__gs_entity_id__get","parameters":[{"name":"gs_entity_id","in":"path","required":true,"schema":{"type":"string","title":"Pricing Location","description":"Name of the pricing location to query"},"description":"Name of the pricing location to query"},{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (query)","title":"Api Key"},"description":"API key for authentication (query)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication (header)","title":"X-Api-Key"},"description":"API key for authentication (header)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PricingLocationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"APIInfoResponse":{"properties":{"name":{"type":"string","title":"Name"},"version":{"type":"string","title":"Version"}},"type":"object","required":["name","version"],"title":"APIInfoResponse","example":{"name":"Grid Status API","version":"1.3.0"}},"APIUsageLimits":{"properties":{"api_rows_returned_limit":{"type":"integer","title":"Api Rows Returned Limit"},"api_requests_limit":{"type":"integer","title":"Api Requests Limit"},"api_rows_per_response_limit":{"type":"integer","title":"Api Rows Per Response Limit"},"per_second_api_rate_limit":{"type":"integer","title":"Per Second Api Rate Limit"},"per_minute_api_rate_limit":{"type":"integer","title":"Per Minute Api Rate Limit"},"per_hour_api_rate_limit":{"type":"integer","title":"Per Hour Api Rate Limit"}},"type":"object","required":["api_rows_returned_limit","api_requests_limit","api_rows_per_response_limit","per_second_api_rate_limit","per_minute_api_rate_limit","per_hour_api_rate_limit"],"title":"APIUsageLimits"},"APIUsageResponse":{"properties":{"plan_name":{"type":"string","title":"Plan Name"},"limits":{"$ref":"#/components/schemas/APIUsageLimits"},"current_usage_period_start":{"type":"string","format":"date-time","title":"Current Usage Period Start"},"current_usage_period_end":{"type":"string","format":"date-time","title":"Current Usage Period End"},"current_period_usage":{"$ref":"#/components/schemas/CurrentPeriodUsage"}},"type":"object","required":["plan_name","limits","current_usage_period_start","current_usage_period_end","current_period_usage"],"title":"APIUsageResponse"},"BindingConstraintAbsoluteCostResponse":{"properties":{"period_start_utc":{"type":"string","format":"date-time","title":"Period Start Utc"},"absolute_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Absolute Cost"}},"type":"object","required":["period_start_utc","absolute_cost"],"title":"BindingConstraintAbsoluteCostResponse","description":"Absolute binding cost for a single UTC aggregation period."},"BindingConstraintCountResponse":{"properties":{"period_start_utc":{"type":"string","format":"date-time","title":"Period Start Utc"},"binding_constraint_count":{"type":"integer","title":"Binding Constraint Count"},"binding_constraint_ids":{"items":{"type":"string"},"type":"array","title":"Binding Constraint Ids"}},"type":"object","required":["period_start_utc","binding_constraint_count","binding_constraint_ids"],"title":"BindingConstraintCountResponse","description":"Count of unique binding constraints for a single UTC aggregation period."},"BindingConstraintObservation":{"properties":{"interval_start_utc":{"type":"string","format":"date-time","title":"Interval Start Utc"},"shadow_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shadow Price"},"contingency_gs_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contingency Gs Entity Id"},"contingency_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contingency Name"}},"type":"object","required":["interval_start_utc"],"title":"BindingConstraintObservation","description":"One binding observation for a constraint in the query window."},"BindingConstraintWithLocationResponse":{"properties":{"constraint_gs_entity_id":{"type":"string","title":"Constraint Gs Entity Id"},"constraint_name":{"type":"string","title":"Constraint Name"},"start":{"anyOf":[{"$ref":"#/components/schemas/SubstationLocation"},{"type":"null"}]},"end":{"anyOf":[{"$ref":"#/components/schemas/SubstationLocation"},{"type":"null"}]},"observations":{"items":{"$ref":"#/components/schemas/BindingConstraintObservation"},"type":"array","title":"Observations"}},"type":"object","required":["constraint_gs_entity_id","constraint_name","observations"],"title":"BindingConstraintWithLocationResponse","description":"A unique binding constraint with substation coords and interval observations.\n\n``observations`` lists every binding interval (and its shadow price) in the\nquery window so clients can filter to a single interval or day-peak price\nwithout a second request."},"BindingConstraintsWithLocationsResponse":{"properties":{"constraints":{"items":{"$ref":"#/components/schemas/BindingConstraintWithLocationResponse"},"type":"array","title":"Constraints"}},"type":"object","required":["constraints"],"title":"BindingConstraintsWithLocationsResponse","description":"Binding constraints for a dataset/time window, merged with substations."},"BlockPricingDateGroup":{"properties":{"date":{"type":"string","title":"Date","description":"Column identifier: an ISO date (YYYY-MM-DD) for a daily column, \"MTD\" for month-to-date, or a \"Month-Year\" label for a full-month summary."},"is_nerc_holiday":{"type":"boolean","title":"Is Nerc Holiday","description":"Whether the daily column is a NERC holiday. False for summary columns.","default":false},"data":{"items":{"$ref":"#/components/schemas/BlockPricingDatum"},"type":"array","title":"Data","description":"Block values for this column, one entry per market/block."}},"type":"object","required":["date","data"],"title":"BlockPricingDateGroup","description":"All block values for a single response column."},"BlockPricingDatum":{"properties":{"market":{"type":"string","title":"Market","description":"Market the value is for (\"da\" or \"rt\")."},"block":{"type":"string","title":"Block","description":"Block the value is for (e.g. 7x24, on-peak, off-peak)."},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value","description":"Volume-weighted average price for the block over the column's window, or null when no data is available."},"pct_change":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Change","description":"Percent change of `value` relative to the previous period for the same market and block (e.g. the prior market day for daily columns, or the prior calendar month for summary columns). Null when the previous period has no value or when the prior value is zero."},"complete":{"type":"boolean","title":"Complete","description":"Whether every interval in the column's window has reported data. False for in-progress windows (e.g. the current day or month-to-date)."}},"type":"object","required":["market","block","value","pct_change","complete"],"title":"BlockPricingDatum","description":"A single block's value for one column (a day or a summary period)."},"BlockPricingQueryParams":{"properties":{"start_date":{"type":"string","format":"date","title":"Start Date","description":"Start of date range (inclusive), interpreted in the ISO market timezone."},"end_date":{"type":"string","format":"date","title":"End Date","description":"End of date range (exclusive), interpreted in the ISO market timezone."},"location":{"type":"string","title":"Location","description":"Location filter."},"market":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Market","description":"Optional market filter. Allowed values: \"da\" or \"rt\"."},"blocks":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blocks","description":"Optional comma-separated list of block values. Allowed values: 7x24, 7x8, 2x16h, on-peak, off-peak."}},"type":"object","required":["start_date","end_date","location"],"title":"BlockPricingQueryParams"},"CSVResponse":{"properties":{"file":{"anyOf":[{"$ref":"#/components/schemas/FileResponseData"},{"type":"null"}],"description":"The CSV data as a bytes object, a string, or a StreamingResponse object."},"content_type":{"type":"string","title":"Content Type","description":"The content type of the response.","default":"text/csv"}},"type":"object","title":"CSVResponse"},"ColumnResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"is_numeric":{"type":"boolean","title":"Is Numeric"},"is_date":{"type":"boolean","title":"Is Date","default":false},"is_datetime":{"type":"boolean","title":"Is Datetime"}},"type":"object","required":["name","type","is_numeric","is_datetime"],"title":"ColumnResponse"},"ConstraintBindingHeatMapCellResponse":{"properties":{"absolute_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Absolute Cost","description":"Total absolute cost: the sum of duration-weighted absolute shadow prices, or null when any binding row has an unknown absolute cost."},"peak_shadow_price":{"type":"number","title":"Peak Shadow Price","description":"Signed shadow price with the greatest absolute value."},"mean_shadow_price":{"type":"number","title":"Mean Shadow Price","description":"Mean shadow price."},"binding_interval_count":{"type":"integer","title":"Binding Interval Count","description":"Number of underlying binding rows."},"bucket_start_utc":{"type":"string","format":"date-time","title":"Bucket Start Utc"},"interval_start_utc":{"type":"string","format":"date-time","title":"Interval Start Utc","description":"UTC timestamp of the shadow price with the greatest absolute value in the bucket. It may be an irregular dataset time index."},"constraint_gs_entity_id":{"type":"string","title":"Constraint Gs Entity Id"},"contingency_gs_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contingency Gs Entity Id"}},"type":"object","required":["absolute_cost","peak_shadow_price","mean_shadow_price","binding_interval_count","bucket_start_utc","interval_start_utc","constraint_gs_entity_id"],"title":"ConstraintBindingHeatMapCellResponse"},"ConstraintBindingHeatMapMetrics":{"properties":{"absolute_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Absolute Cost","description":"Total absolute cost: the sum of duration-weighted absolute shadow prices, or null when any binding row has an unknown absolute cost."},"peak_shadow_price":{"type":"number","title":"Peak Shadow Price","description":"Signed shadow price with the greatest absolute value."},"mean_shadow_price":{"type":"number","title":"Mean Shadow Price","description":"Mean shadow price."},"binding_interval_count":{"type":"integer","title":"Binding Interval Count","description":"Number of underlying binding rows."}},"type":"object","required":["absolute_cost","peak_shadow_price","mean_shadow_price","binding_interval_count"],"title":"ConstraintBindingHeatMapMetrics"},"ConstraintBindingHeatMapRowSummaryResponse":{"properties":{"constraint_gs_entity_id":{"type":"string","title":"Constraint Gs Entity Id"},"contingency_gs_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contingency Gs Entity Id"},"metrics":{"$ref":"#/components/schemas/ConstraintBindingHeatMapMetrics"}},"type":"object","required":["constraint_gs_entity_id","metrics"],"title":"ConstraintBindingHeatMapRowSummaryResponse"},"ConstraintBindingHeatMapSupportedResponse":{"properties":{"timezone":{"type":"string","title":"Timezone"},"group_by":{"type":"string","enum":["constraint","constraint_contingency"],"title":"Group By"},"supports_contingency_grouping":{"type":"boolean","title":"Supports Contingency Grouping"},"constraint_names":{"additionalProperties":{"type":"string"},"type":"object","title":"Constraint Names"},"contingency_names":{"additionalProperties":{"type":"string"},"type":"object","title":"Contingency Names"},"native_interval_minutes":{"type":"integer","title":"Native Interval Minutes"},"interval_minutes":{"type":"integer","title":"Interval Minutes"},"bucket_mode":{"type":"string","enum":["raw","hourly","daily"],"title":"Bucket Mode"},"available_bucket_modes":{"items":{"type":"string","enum":["raw","hourly","daily"]},"type":"array","title":"Available Bucket Modes","description":"Bucket modes available for the native interval and range."},"cells":{"items":{"$ref":"#/components/schemas/ConstraintBindingHeatMapCellResponse"},"type":"array","title":"Cells"},"row_summaries":{"items":{"$ref":"#/components/schemas/ConstraintBindingHeatMapRowSummaryResponse"},"type":"array","title":"Row Summaries"},"unsupported_reason":{"type":"null","title":"Unsupported Reason"}},"type":"object","required":["timezone","group_by","supports_contingency_grouping","native_interval_minutes","interval_minutes","bucket_mode","available_bucket_modes"],"title":"ConstraintBindingHeatMapSupportedResponse","description":"Absolute binding cost and shadow-price aggregates for a supported dataset."},"ConstraintBindingHeatMapUnsupportedResponse":{"properties":{"timezone":{"type":"string","title":"Timezone"},"group_by":{"type":"string","enum":["constraint","constraint_contingency"],"title":"Group By"},"supports_contingency_grouping":{"type":"boolean","title":"Supports Contingency Grouping"},"constraint_names":{"additionalProperties":{"type":"string"},"type":"object","title":"Constraint Names"},"contingency_names":{"additionalProperties":{"type":"string"},"type":"object","title":"Contingency Names"},"native_interval_minutes":{"type":"null","title":"Native Interval Minutes"},"interval_minutes":{"type":"null","title":"Interval Minutes"},"bucket_mode":{"type":"null","title":"Bucket Mode"},"available_bucket_modes":{"items":{"type":"string","enum":["raw","hourly","daily"]},"type":"array","maxItems":0,"title":"Available Bucket Modes"},"cells":{"items":{"$ref":"#/components/schemas/ConstraintBindingHeatMapCellResponse"},"type":"array","maxItems":0,"title":"Cells"},"row_summaries":{"items":{"$ref":"#/components/schemas/ConstraintBindingHeatMapRowSummaryResponse"},"type":"array","maxItems":0,"title":"Row Summaries"},"unsupported_reason":{"type":"string","title":"Unsupported Reason"}},"type":"object","required":["timezone","group_by","supports_contingency_grouping","unsupported_reason"],"title":"ConstraintBindingHeatMapUnsupportedResponse","description":"Binding heat map metadata for a dataset that cannot be displayed."},"ConstraintBindingHourCountResponse":{"properties":{"hour":{"type":"integer","title":"Hour"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["hour","count"],"title":"ConstraintBindingHourCountResponse","description":"Count of filtered binding rows by local hour (requested timezone or UTC)."},"ConstraintIntervalDayResponse":{"properties":{"day":{"type":"integer","title":"Day"},"count":{"type":"integer","title":"Count"},"times":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Times"}},"type":"object","required":["day","count"],"title":"ConstraintIntervalDayResponse","description":"Day-level count of unique timestamps within a month."},"ConstraintIntervalMonthResponse":{"properties":{"month":{"type":"integer","title":"Month"},"count":{"type":"integer","title":"Count"},"days":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConstraintIntervalDayResponse"},"type":"array"},{"type":"null"}],"title":"Days"}},"type":"object","required":["month","count"],"title":"ConstraintIntervalMonthResponse","description":"Month-level count of unique timestamps within a year."},"ConstraintIntervalResponse":{"properties":{"year":{"type":"integer","title":"Year"},"count":{"type":"integer","title":"Count"},"months":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConstraintIntervalMonthResponse"},"type":"array"},{"type":"null"}],"title":"Months"}},"type":"object","required":["year","count"],"title":"ConstraintIntervalResponse","description":"Year/month/day-level statistics for constraint binding intervals.\n\nYear: months with data and count in each.\nMonth: days with data and count in each.\nDay: times (HH:MM:SS strings) for unique timestamps on that day."},"ConstraintLocationResponse":{"properties":{"constraint_gs_entity_id":{"type":"string","title":"Constraint Gs Entity Id"},"constraint_name":{"type":"string","title":"Constraint Name"},"start":{"anyOf":[{"$ref":"#/components/schemas/SubstationLocation"},{"type":"null"}]},"end":{"anyOf":[{"$ref":"#/components/schemas/SubstationLocation"},{"type":"null"}]}},"type":"object","required":["constraint_gs_entity_id","constraint_name"],"title":"ConstraintLocationResponse","description":"Start/end substation coordinates for a constraint.\n\nEither endpoint may be null when that constraint has no mapped coords.\nMarkets without a geometry table are rejected by the endpoint (400)."},"ConstraintPricingDatasetSpecResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"shadow_price_column":{"type":"string","title":"Shadow Price Column"}},"type":"object","required":["dataset_id","shadow_price_column"],"title":"ConstraintPricingDatasetSpecResponse"},"ConstraintResponse":{"properties":{"gs_entity_id":{"type":"string","title":"Gs Entity Id"},"constraint_name":{"type":"string","title":"Constraint Name"},"market_id":{"type":"string","title":"Market Id"},"earliest_seen_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Earliest Seen Utc"},"latest_seen_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Seen Utc"},"available_datasets":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Datasets"},"rt_absolute_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rt Absolute Cost"},"da_absolute_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Da Absolute Cost"},"gs_created_at_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Gs Created At Utc"},"gs_updated_at_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Gs Updated At Utc"}},"type":"object","required":["gs_entity_id","constraint_name","market_id","earliest_seen_utc","latest_seen_utc","available_datasets"],"title":"ConstraintResponse"},"ConstraintStatsIntervalResponse":{"properties":{"interval_start_utc":{"type":"string","format":"date-time","title":"Interval Start Utc"},"binding_intervals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Binding Intervals"},"shadow_price_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shadow Price Min"},"shadow_price_mean":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shadow Price Mean"},"shadow_price_median":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shadow Price Median"},"shadow_price_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shadow Price Max"},"absolute_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Absolute Cost"}},"type":"object","required":["interval_start_utc","binding_intervals","shadow_price_min","shadow_price_mean","shadow_price_median","shadow_price_max","absolute_cost"],"title":"ConstraintStatsIntervalResponse","description":"Per-interval aggregate stats for filtered constraint rows."},"ConstraintsListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ConstraintResponse"},"type":"array","title":"Data"},"dataset_metadata":{"anyOf":[{"additionalProperties":{"additionalProperties":{"items":{"$ref":"#/components/schemas/ConstraintPricingDatasetSpecResponse"},"type":"array"},"type":"object"},"type":"object"},{"type":"null"}],"title":"Dataset Metadata"}},"type":"object","required":["data"],"title":"ConstraintsListResponse"},"ContingencyListResponse":{"properties":{"gs_entity_id":{"type":"string","title":"Gs Entity Id"},"contingency_name":{"type":"string","title":"Contingency Name"},"market_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Market Id"},"earliest_seen_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Earliest Seen Utc"},"latest_seen_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Seen Utc"},"available_datasets":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Available Datasets"},"gs_created_at_utc":{"type":"string","format":"date-time","title":"Gs Created At Utc"},"gs_updated_at_utc":{"type":"string","format":"date-time","title":"Gs Updated At Utc"}},"type":"object","required":["gs_entity_id","contingency_name","market_id","earliest_seen_utc","latest_seen_utc","available_datasets","gs_created_at_utc","gs_updated_at_utc"],"title":"ContingencyListResponse"},"ContingencyResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"type":"string","title":"Name"},"binding_intervals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Binding Intervals"},"absolute_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Absolute Cost"}},"type":"object","required":["id","name"],"title":"ContingencyResponse","description":"Contingency with id, name, and optional binding stats."},"CurrentPeriodUsage":{"properties":{"total_requests":{"type":"integer","title":"Total Requests"},"total_api_rows_returned":{"type":"integer","title":"Total Api Rows Returned"}},"type":"object","required":["total_requests","total_api_rows_returned"],"title":"CurrentPeriodUsage"},"DatasetAudit":{"properties":{"market_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Market Date"},"number_of_datapoints":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Of Datapoints"},"number_of_unique_time_index_values":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Of Unique Time Index Values"},"number_of_unique_subseries_index_values":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Of Unique Subseries Index Values"},"number_of_unique_publish_times_on_publish_date":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Of Unique Publish Times On Publish Date"}},"type":"object","required":["market_date","number_of_datapoints","number_of_unique_time_index_values","number_of_unique_subseries_index_values","number_of_unique_publish_times_on_publish_date"],"title":"DatasetAudit"},"DatasetAuditResponse":{"properties":{"status_code":{"type":"integer","title":"Status Code"},"data":{"items":{"$ref":"#/components/schemas/DatasetAudit"},"type":"array","title":"Data"}},"type":"object","required":["status_code","data"],"title":"DatasetAuditResponse"},"DatasetExportFile":{"properties":{"date":{"type":"string","format":"date","title":"Date","description":"Partition date for this file."},"size_bytes":{"type":"integer","title":"Size Bytes","description":"Object size in bytes."},"last_modified":{"type":"string","format":"date-time","title":"Last Modified","description":"When the object was last written by the export pipeline."}},"type":"object","required":["date","size_bytes","last_modified"],"title":"DatasetExportFile"},"DatasetExportsListResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"file_type":{"type":"string","const":"csv","title":"File Type"},"count":{"type":"integer","title":"Count"},"files":{"items":{"$ref":"#/components/schemas/DatasetExportFile"},"type":"array","title":"Files"}},"type":"object","required":["dataset_id","file_type","count","files"],"title":"DatasetExportsListResponse"},"DatasetResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"earliest_available_time_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Earliest Available Time Utc"},"latest_available_time_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Available Time Utc"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"last_checked_time_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Checked Time Utc"},"primary_key_columns":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Primary Key Columns"},"publish_time_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Time Column"},"time_index_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Index Column"},"subseries_index_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subseries Index Column"},"all_columns":{"anyOf":[{"items":{"$ref":"#/components/schemas/ColumnResponse"},"type":"array"},{"type":"null"}],"title":"All Columns"},"number_of_rows_approximate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Of Rows Approximate"},"table_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Table Type"},"is_in_snowflake":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is In Snowflake"},"data_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Frequency"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"publication_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publication Frequency"},"is_published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Published"},"created_at_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At Utc"},"status":{"anyOf":[{"$ref":"#/components/schemas/DatasetStatusEnum"},{"type":"null"}]},"popularity_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Popularity Rank"}},"type":"object","required":["id","name","description","earliest_available_time_utc","latest_available_time_utc","source","last_checked_time_utc","primary_key_columns","publish_time_column","time_index_column","subseries_index_column","all_columns","number_of_rows_approximate","table_type","is_in_snowflake","data_frequency","source_url","publication_frequency","is_published","created_at_utc","status"],"title":"DatasetResponse"},"DatasetStatusEnum":{"type":"string","enum":["retired","active","deprecated"],"title":"DatasetStatusEnum"},"DatasetUpdateResponse":{"properties":{"id":{"type":"string","title":"Id"},"dataset":{"type":"string","title":"Dataset"},"time_utc":{"type":"string","format":"date-time","title":"Time Utc"},"num_rows_updated":{"type":"integer","title":"Num Rows Updated"},"num_rows_inserted":{"type":"integer","title":"Num Rows Inserted"},"is_backfill":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Backfill"}},"type":"object","required":["id","dataset","time_utc","num_rows_updated","num_rows_inserted","is_backfill"],"title":"DatasetUpdateResponse"},"DatasetUpdatesResponse":{"properties":{"status_code":{"type":"integer","title":"Status Code"},"data":{"items":{"$ref":"#/components/schemas/DatasetUpdateResponse"},"type":"array","title":"Data"},"meta":{"$ref":"#/components/schemas/MetadataResponse"}},"type":"object","required":["status_code","data","meta"],"title":"DatasetUpdatesResponse"},"FacetedSearchResponse":{"properties":{"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"total_items":{"type":"integer","title":"Total Items"},"facets":{"additionalProperties":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"type":"object","title":"Facets"}},"type":"object","required":["items","total_items","facets"],"title":"FacetedSearchResponse","description":"Response from get_items_and_facets containing items, total count, and facets."},"FileResponseData":{"properties":{"media_type":{"type":"string","title":"Media Type"},"content":{"anyOf":[{"type":"string","format":"binary"},{"type":"string"}],"title":"Content"}},"type":"object","required":["media_type","content"],"title":"FileResponseData"},"FilterOperator":{"type":"string","enum":["=","!=",">",">=","<","<=","in"],"title":"FilterOperator"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ISOEnum":{"type":"string","enum":["CAISO","ERCOT","IESO","ISONE","MISO","NYISO","PJM","SPP"],"title":"ISOEnum"},"JSONSchema":{"type":"string","enum":["array-of-objects","array-of-arrays"],"title":"JSONSchema"},"ListDatasetsDatasetMetadataResponse":{"properties":{"resample_conversion":{"additionalProperties":{"type":"integer"},"type":"object","title":"Resample Conversion","default":{"1_MINUTE":60,"5_MINUTES":300,"10_MINUTES":600,"15_MINUTES":900,"1_HOUR":3600,"1_DAY":86400,"1_DAY_MARKET":86400,"1_WEEK":604800,"1_MONTH":2592000,"1_YEAR":31536000,"IRREGULAR":-1}}},"type":"object","title":"ListDatasetsDatasetMetadataResponse"},"ListDatasetsResponse":{"properties":{"status_code":{"type":"integer","title":"Status Code"},"data":{"items":{"$ref":"#/components/schemas/DatasetResponse"},"type":"array","title":"Data"},"meta":{"$ref":"#/components/schemas/MetadataResponse"},"dataset_metadata":{"$ref":"#/components/schemas/ListDatasetsDatasetMetadataResponse"}},"type":"object","required":["status_code","data","meta","dataset_metadata"],"title":"ListDatasetsResponse","examples":[{"first":"test2","second":"test"}]},"LocationConstraintCostResponse":{"properties":{"constraint_gs_entity_id":{"type":"string","title":"Constraint Gs Entity Id"},"constraint_name":{"type":"string","title":"Constraint Name"},"contingency_gs_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contingency Gs Entity Id"},"contingency_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contingency Name"},"shift_factor":{"type":"number","title":"Shift Factor"},"absolute_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Absolute Cost"},"adjusted_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adjusted Cost"}},"type":"object","required":["constraint_gs_entity_id","constraint_name","contingency_gs_entity_id","contingency_name","shift_factor","absolute_cost","adjusted_cost"],"title":"LocationConstraintCostResponse","description":"Constraint costs adjusted by a location's shift factor.\n\nDefault grain is constraint + contingency. When the endpoint is called with\n``group_by=constraint``, contingency fields are null and costs/shift factors\nare rolled up across contingencies for each constraint. ``adjusted_cost`` is\nalways summed; ``absolute_cost`` is summed only when the underlying dataset has\na contingency column (otherwise the shared per-constraint cost is kept once)."},"MetadataResponse":{"properties":{"page":{"type":"integer","title":"Page"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"page_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Size"},"hasNextPage":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Hasnextpage"},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},"type":"object","required":["page","limit","page_size","hasNextPage","cursor"],"title":"MetadataResponse"},"NearbyPricingLocationItem":{"properties":{"gs_entity_id":{"type":"string","title":"Gs Entity Id"},"location":{"type":"string","title":"Location"},"market_id":{"type":"string","title":"Market Id"},"distance_in_miles":{"type":"number","title":"Distance In Miles"}},"type":"object","required":["gs_entity_id","location","market_id","distance_in_miles"],"title":"NearbyPricingLocationItem"},"OrderBy":{"type":"string","enum":["asc","desc"],"title":"OrderBy"},"PJMActiveOutageEquipment":{"properties":{"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"},"facility_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Name"},"equipment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Equipment Type"},"station_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station 1"},"station_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station 2"},"from_substation":{"anyOf":[{"$ref":"#/components/schemas/SubstationLocation"},{"type":"null"}]},"to_substation":{"anyOf":[{"$ref":"#/components/schemas/SubstationLocation"},{"type":"null"}]},"voltage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voltage"},"equipment_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Equipment Name"},"switching_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Switching Action"},"interval_start_utc":{"type":"string","format":"date-time","title":"Interval Start Utc"},"interval_end_utc":{"type":"string","format":"date-time","title":"Interval End Utc"}},"type":"object","required":["interval_start_utc","interval_end_utc"],"title":"PJMActiveOutageEquipment"},"PJMActiveOutageTicket":{"properties":{"ticket":{"type":"integer","title":"Ticket"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"outage_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outage Type"},"version_time_utc":{"type":"string","format":"date-time","title":"Version Time Utc"},"current_interval_start_utc":{"type":"string","format":"date-time","title":"Current Interval Start Utc"},"current_interval_end_utc":{"type":"string","format":"date-time","title":"Current Interval End Utc"},"causes":{"items":{"type":"string"},"type":"array","title":"Causes"},"equipment":{"items":{"$ref":"#/components/schemas/PJMActiveOutageEquipment"},"type":"array","title":"Equipment"}},"type":"object","required":["ticket","version_time_utc","current_interval_start_utc","current_interval_end_utc","causes","equipment"],"title":"PJMActiveOutageTicket"},"PJMActiveOutagesResponse":{"properties":{"truncated":{"type":"boolean","title":"Truncated"},"tickets":{"items":{"$ref":"#/components/schemas/PJMActiveOutageTicket"},"type":"array","title":"Tickets"}},"type":"object","required":["truncated","tickets"],"title":"PJMActiveOutagesResponse"},"PJMCauseChangeRow":{"properties":{"change_time_utc":{"type":"string","format":"date-time","title":"Change Time Utc"},"ticket":{"type":"integer","title":"Ticket"},"cause":{"type":"string","title":"Cause"},"is_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Present"}},"type":"object","required":["change_time_utc","ticket","cause"],"title":"PJMCauseChangeRow"},"PJMEquipmentChangeRow":{"properties":{"change_time_utc":{"type":"string","format":"date-time","title":"Change Time Utc"},"ticket":{"type":"integer","title":"Ticket"},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"},"facility_name":{"type":"string","title":"Facility Name"},"equipment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Equipment Type"},"station_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station 1"},"station_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station 2"},"voltage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voltage"},"equipment_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Equipment Name"},"switching_action":{"type":"string","title":"Switching Action"},"interval_start_utc":{"type":"string","format":"date-time","title":"Interval Start Utc"},"interval_end_utc":{"type":"string","format":"date-time","title":"Interval End Utc"},"is_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Present"},"from_substation":{"anyOf":[{"$ref":"#/components/schemas/SubstationLocation"},{"type":"null"}]},"to_substation":{"anyOf":[{"$ref":"#/components/schemas/SubstationLocation"},{"type":"null"}]}},"type":"object","required":["change_time_utc","ticket","facility_name","switching_action","interval_start_utc","interval_end_utc"],"title":"PJMEquipmentChangeRow"},"PJMOutageSearchHit":{"properties":{"ticket":{"type":"integer","title":"Ticket"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"open_closed":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Open Closed"},"outage_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outage Type"},"report_time_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Report Time Utc"},"interval_start_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Interval Start Utc"},"interval_end_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Interval End Utc"},"facilities":{"items":{"type":"string"},"type":"array","title":"Facilities"},"equipment_names":{"items":{"type":"string"},"type":"array","title":"Equipment Names"},"stations":{"items":{"type":"string"},"type":"array","title":"Stations"}},"type":"object","required":["ticket","facilities","equipment_names","stations"],"title":"PJMOutageSearchHit"},"PJMOutageSearchResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/PJMOutageSearchHit"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"PJMOutageSearchResponse"},"PJMOutageTicketResponse":{"properties":{"ticket":{"type":"integer","title":"Ticket"},"cause_changes":{"items":{"$ref":"#/components/schemas/PJMCauseChangeRow"},"type":"array","title":"Cause Changes"},"equipment_changes":{"items":{"$ref":"#/components/schemas/PJMEquipmentChangeRow"},"type":"array","title":"Equipment Changes"},"status_changes":{"items":{"$ref":"#/components/schemas/PJMStatusChangeRow"},"type":"array","title":"Status Changes"},"ticket_versions":{"items":{"$ref":"#/components/schemas/PJMOutageTicketVersionRow"},"type":"array","title":"Ticket Versions"},"window_changes":{"items":{"$ref":"#/components/schemas/PJMWindowChangeRow"},"type":"array","title":"Window Changes"}},"type":"object","required":["ticket","cause_changes","equipment_changes","status_changes","ticket_versions","window_changes"],"title":"PJMOutageTicketResponse","description":"CDC histories for one PJM transmission outage ticket."},"PJMOutageTicketVersionRow":{"properties":{"version_time_utc":{"type":"string","format":"date-time","title":"Version Time Utc"},"ticket":{"type":"integer","title":"Ticket"},"is_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Present"},"current_interval_start_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Interval Start Utc"},"current_interval_end_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Interval End Utc"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Status"},"outage_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outage Type"},"rtep":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rtep"},"availability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Availability"},"approval_risk":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Risk"},"on_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"On Time"},"last_revised_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Revised Utc"},"last_evaluated_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Evaluated Utc"}},"type":"object","required":["version_time_utc","ticket"],"title":"PJMOutageTicketVersionRow","description":"One CDC revision of a PJM transmission outage ticket."},"PJMStatusChangeRow":{"properties":{"first_observed_time_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Observed Time Utc"},"ticket":{"type":"integer","title":"Ticket"},"status_time_utc":{"type":"string","format":"date-time","title":"Status Time Utc"},"status_sequence":{"type":"integer","title":"Status Sequence"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["ticket","status_time_utc","status_sequence"],"title":"PJMStatusChangeRow"},"PJMWindowChangeRow":{"properties":{"first_observed_time_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Observed Time Utc"},"ticket":{"type":"integer","title":"Ticket"},"revision_time_utc":{"type":"string","format":"date-time","title":"Revision Time Utc"},"revision_sequence":{"type":"integer","title":"Revision Sequence"},"interval_start_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Interval Start Utc"},"interval_end_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Interval End Utc"}},"type":"object","required":["ticket","revision_time_utc","revision_sequence"],"title":"PJMWindowChangeRow"},"PeakDamLmpResponse":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string","format":"date-time"},{"type":"string"},{"type":"null"}]},"type":"object"},"PeakIntervalResponse":{"properties":{"interval_start_market":{"type":"string","format":"date-time","title":"Interval Start Market"},"interval_end_market":{"type":"string","format":"date-time","title":"Interval End Market"},"load":{"type":"number","title":"Load"},"net_load":{"type":"number","title":"Net Load"}},"additionalProperties":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"object","required":["interval_start_market","interval_end_market","load","net_load"],"title":"PeakIntervalResponse"},"PeakLoadReportResponse":{"properties":{"ISO":{"type":"string","title":"Iso"},"market_date":{"type":"string","format":"date","title":"Market Date"},"timezone":{"type":"string","title":"Timezone"},"peak_dam_lmp":{"anyOf":[{"items":{"$ref":"#/components/schemas/PeakDamLmpResponse"},"type":"array"},{"type":"null"}],"title":"Peak Dam Lmp"},"peak_load":{"anyOf":[{"$ref":"#/components/schemas/PeakIntervalResponse"},{"type":"null"}]},"peak_net_load":{"anyOf":[{"$ref":"#/components/schemas/PeakIntervalResponse"},{"type":"null"}]}},"type":"object","required":["ISO","market_date","timezone"],"title":"PeakLoadReportResponse"},"PresignedUrlResponse":{"properties":{"presigned_url":{"type":"string","title":"Presigned Url","description":"Time-limited HTTPS URL to download the requested file."},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds","description":"Number of seconds the presigned URL is valid for."},"bucket":{"type":"string","title":"Bucket","description":"S3 bucket the object lives in."},"object_key":{"type":"string","title":"Object Key","description":"S3 object key the URL points to."}},"type":"object","required":["presigned_url","expires_in_seconds","bucket","object_key"],"title":"PresignedUrlResponse"},"PricingLocationResponse":{"properties":{"gs_entity_id":{"type":"string","title":"Gs Entity Id"},"location":{"type":"string","title":"Location"},"location_type":{"type":"string","title":"Location Type"},"market_id":{"type":"string","title":"Market Id"},"baa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Baa"},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"},"zone_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone Type"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"pricing_datasets":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Pricing Datasets"},"earliest_seen_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Earliest Seen Utc"},"latest_seen_utc":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Seen Utc"},"status_threshold_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Threshold Days"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["gs_entity_id","location","location_type","market_id","baa","zone","zone_type","latitude","longitude","earliest_seen_utc","latest_seen_utc","status_threshold_days","status"],"title":"PricingLocationResponse"},"QueryDatasetResponse":{"properties":{"status_code":{"type":"integer","title":"Status Code"},"data":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Data"},"meta":{"$ref":"#/components/schemas/MetadataResponse"},"dataset_metadata":{"$ref":"#/components/schemas/DatasetResponse"}},"type":"object","required":["status_code","data","meta","dataset_metadata"],"title":"QueryDatasetResponse"},"ResampleFunction":{"type":"string","enum":["mean","sum","min","max","count","stddev","variance"],"title":"ResampleFunction"},"ReturnFormat":{"type":"string","enum":["json","csv"],"title":"ReturnFormat"},"ShiftFactorConstraintResponse":{"properties":{"constraint_gs_entity_id":{"type":"string","title":"Constraint Gs Entity Id"},"estimated_shift_factor":{"type":"number","title":"Estimated Shift Factor"},"constraint":{"type":"string","title":"Constraint"}},"type":"object","required":["constraint_gs_entity_id","estimated_shift_factor","constraint"],"title":"ShiftFactorConstraintResponse","description":"Linear estimated shift factor aggregated per constraint for a location."},"ShiftFactorLocationResponse":{"properties":{"location_gs_entity_id":{"type":"string","title":"Location Gs Entity Id"},"estimated_shift_factor":{"type":"number","title":"Estimated Shift Factor"},"location":{"type":"string","title":"Location"}},"type":"object","required":["location_gs_entity_id","estimated_shift_factor","location"],"title":"ShiftFactorLocationResponse","description":"Linear estimated shift factor aggregated per location for a constraint."},"SubstationLocation":{"properties":{"latitude":{"type":"number","title":"Latitude"},"longitude":{"type":"number","title":"Longitude"},"name":{"type":"string","title":"Name"}},"type":"object","required":["latitude","longitude","name"],"title":"SubstationLocation","description":"Lat/lon and display name for a substation."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"x-tagGroups":[{"name":"API Endpoints","tags":["API Info","Block Pricing Data","Dataset Metadata","Query Data","Dataset Updates","Reports"]}],"externalDocs":{"description":"GridStatus documentation. Human docs: https://docs.gridstatus.io/developers. Ask a natural-language question (RAG search): append a URL-encoded question to https://docs.gridstatus.io/?ask=","url":"https://docs.gridstatus.io/llms.txt"},"x-rag-search":{"description":"Natural-language question answering over the GridStatus documentation. Substitute a URL-encoded question for {question}.","url_template":"https://docs.gridstatus.io/?ask={question}","llms_txt":"https://docs.gridstatus.io/llms.txt"}}