{
  "openapi": "3.1.0",
  "info": {
    "title": "qz.energy Public Data API",
    "version": "1.0.0",
    "description": "Versioned machine-readable access to reviewed qz.energy public release snapshots, including the read-only v2 domain bundle, cursor pagination and documented provenance."
  },
  "servers": [
    {
      "url": "https://qz.energy/api/v1",
      "description": "Canonical qz.energy public API"
    }
  ],
  "externalDocs": {
    "description": "DCAT 3 catalogue",
    "url": "https://qz.energy/data/catalog.jsonld"
  },
  "paths": {
    "/entities": {
      "get": {
        "operationId": "listEntities",
        "summary": "List canonical entities",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/assets": {
      "get": {
        "operationId": "listAssets",
        "summary": "List asset entities",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/projects": {
      "get": {
        "operationId": "listProjects",
        "summary": "List project entities and milestones",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/companies": {
      "get": {
        "operationId": "listCompanies",
        "summary": "List company entities",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/regions": {
      "get": {
        "operationId": "listRegions",
        "summary": "List region entities",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/indicators": {
      "get": {
        "operationId": "listIndicators",
        "summary": "List indicator definitions",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/observations": {
      "get": {
        "operationId": "listObservations",
        "summary": "List immutable observations",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/timeseries": {
      "get": {
        "operationId": "listTimeseries",
        "summary": "List observation time series",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/relations": {
      "get": {
        "operationId": "listRelations",
        "summary": "List time-bounded relations",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/sources": {
      "get": {
        "operationId": "listDomainSources",
        "summary": "List source records used by the domain bundle",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/events": {
      "get": {
        "operationId": "listEvents",
        "summary": "List verified event snapshot records",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/publications": {
      "get": {
        "operationId": "listPublications",
        "summary": "List public release publications",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/changes": {
      "get": {
        "operationId": "listChanges",
        "summary": "List public release changes",
        "description": "Read-only v2 domain projection. All records carry the release identity and source provenance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Cursor"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/UpdatedSince"
          }
        ],
        "responses": {
          "200": {
            "description": "Cursor-paginated domain records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Collection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/entities/{entity_id}": {
      "get": {
        "operationId": "getEntity",
        "summary": "Get one canonical entity",
        "parameters": [
          {
            "$ref": "#/components/parameters/EntityId"
          }
        ],
        "responses": {
          "200": {
            "description": "Canonical entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Entity"
                }
              }
            }
          },
          "404": {
            "description": "Entity is not in the release",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/search": {
      "get": {
        "operationId": "searchDomain",
        "summary": "Search v2 domain records",
        "description": "Returns a reproducible literal-token interpretation of the supplied query; no hidden model reasoning is used.",
        "parameters": [
          {
            "$ref": "#/components/parameters/SearchQuery"
          },
          {
            "$ref": "#/components/parameters/Limit"
          }
        ],
        "responses": {
          "200": {
            "description": "Domain search result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Search"
                }
              }
            }
          },
          "400": {
            "description": "Missing query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/snapshot": {
      "get": {
        "operationId": "getHistoricalSnapshot",
        "summary": "Get a deterministic historical domain snapshot",
        "parameters": [
          {
            "$ref": "#/components/parameters/AsOf"
          }
        ],
        "responses": {
          "200": {
            "description": "Snapshot bounded by a public release date",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2Snapshot"
                }
              }
            }
          },
          "400": {
            "description": "Invalid as_of date",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/index.json": {
      "get": {
        "operationId": "getApiIndex",
        "summary": "API capabilities and current release",
        "responses": {
          "200": {
            "description": "API index",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiIndex"
                }
              }
            }
          }
        }
      }
    },
    "/datasets.json": {
      "get": {
        "operationId": "listDatasets",
        "summary": "List datasets in the current release",
        "responses": {
          "200": {
            "description": "Dataset catalogue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatasetList"
                }
              }
            }
          }
        }
      }
    },
    "/datasets/{dataset_id}.json": {
      "get": {
        "operationId": "getDataset",
        "summary": "Get one dataset metadata record",
        "parameters": [
          {
            "$ref": "#/components/parameters/DatasetId"
          }
        ],
        "responses": {
          "200": {
            "description": "Dataset metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dataset"
                }
              }
            }
          },
          "404": {
            "description": "Dataset is not in the release"
          }
        }
      }
    },
    "/datasets/{dataset_id}/data.json": {
      "get": {
        "operationId": "getDatasetData",
        "summary": "Get one immutable dataset snapshot",
        "parameters": [
          {
            "$ref": "#/components/parameters/DatasetId"
          }
        ],
        "responses": {
          "200": {
            "description": "Dataset snapshot envelope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatasetData"
                }
              }
            }
          },
          "404": {
            "description": "Dataset is not in the release"
          }
        }
      }
    },
    "/datasets/{dataset_id}/data.parquet": {
      "get": {
        "operationId": "getDatasetParquet",
        "summary": "Download one immutable Parquet snapshot",
        "parameters": [
          {
            "$ref": "#/components/parameters/DatasetId"
          }
        ],
        "responses": {
          "200": {
            "description": "Parquet snapshot distribution",
            "content": {
              "application/vnd.apache.parquet": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Dataset is not in the release"
          }
        }
      }
    },
    "/datasets/{dataset_id}/provenance.json": {
      "get": {
        "operationId": "getDatasetProvenance",
        "summary": "Get source and publication lineage",
        "parameters": [
          {
            "$ref": "#/components/parameters/DatasetId"
          }
        ],
        "responses": {
          "200": {
            "description": "Provenance record",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Provenance"
                }
              }
            }
          }
        }
      }
    },
    "/datasets/electricity-generation-series/reproducibility.json": {
      "get": {
        "operationId": "getElectricityGenerationReproducibility",
        "summary": "Get the fail-closed reproducibility receipt for electricity generation",
        "responses": {
          "200": {
            "description": "Reproducibility receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReproducibilityReceipt"
                }
              }
            }
          }
        }
      }
    },
    "/media-receipts.json": {
      "get": {
        "operationId": "getMediaReceipts",
        "summary": "Get the source-owned, rights-verified media receipt register",
        "responses": {
          "200": {
            "description": "Public media receipt register",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaReceiptRegister"
                }
              }
            }
          }
        }
      }
    },
    "/metrics.json": {
      "get": {
        "operationId": "listMetrics",
        "summary": "List metric definitions and comparability boundaries",
        "responses": {
          "200": {
            "description": "Metric dictionary",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetricList"
                }
              }
            }
          }
        }
      }
    },
    "/scientific-foundation.json": {
      "get": {
        "operationId": "getScientificFoundation",
        "summary": "Get the published QazKnowledge scientific foundation and validation boundary",
        "responses": {
          "200": {
            "description": "Scientific foundation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/metrics/{metric_id}.json": {
      "get": {
        "operationId": "getMetric",
        "summary": "Get one metric definition",
        "parameters": [
          {
            "name": "metric_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9_-]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Metric definition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Metric"
                }
              }
            }
          },
          "404": {
            "description": "Metric is not in the release"
          }
        }
      }
    },
    "/releases.json": {
      "get": {
        "operationId": "listReleases",
        "summary": "List public release history",
        "responses": {
          "200": {
            "description": "Release history",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Releases"
                }
              }
            }
          }
        }
      }
    },
    "/sources.json": {
      "get": {
        "operationId": "listSources",
        "summary": "List approved public source contracts",
        "responses": {
          "200": {
            "description": "Source registry",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sources"
                }
              }
            }
          }
        }
      }
    },
    "/examples.json": {
      "get": {
        "operationId": "listExamples",
        "summary": "Get copy-paste API examples",
        "responses": {
          "200": {
            "description": "API examples",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Examples"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "operationId": "getHealth",
        "summary": "Check query runtime health",
        "responses": {
          "200": {
            "description": "Runtime is available",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Health"
                }
              }
            }
          }
        }
      }
    },
    "/query": {
      "get": {
        "operationId": "queryDataset",
        "summary": "Filter and paginate one dataset",
        "description": "Read-only server-side query against the current immutable release. JSON-stat 2.0 is available for energy-indicators; use the static dataset data URL for a complete reproducible snapshot.",
        "parameters": [
          {
            "$ref": "#/components/parameters/DatasetIdQuery"
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "period",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "object_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "unit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "$ref": "#/components/parameters/Offset"
          },
          {
            "$ref": "#/components/parameters/Format"
          },
          {
            "$ref": "#/components/parameters/Fields"
          },
          {
            "$ref": "#/components/parameters/Sort"
          }
        ],
        "responses": {
          "200": {
            "description": "Filtered dataset page or JSON-stat 2.0 dataset for energy-indicators",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/QueryResponse"
                    },
                    {
                      "$ref": "#/components/schemas/JsonStatDataset"
                    }
                  ]
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Dataset is not in the release",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "406": {
            "description": "Requested format is not available",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "DatasetId": {
        "name": "dataset_id",
        "in": "path",
        "required": true,
        "description": "Stable qz.energy dataset identifier",
        "schema": {
          "type": "string",
          "pattern": "^[a-z0-9-]+$"
        }
      },
      "DatasetIdQuery": {
        "name": "dataset_id",
        "in": "query",
        "required": true,
        "description": "Stable qz.energy dataset identifier",
        "schema": {
          "type": "string",
          "pattern": "^[a-z0-9-]+$"
        }
      },
      "Limit": {
        "name": "limit",
        "in": "query",
        "required": false,
        "description": "Number of records to return",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000,
          "default": 100
        }
      },
      "Offset": {
        "name": "offset",
        "in": "query",
        "required": false,
        "description": "Number of matching records to skip",
        "schema": {
          "type": "integer",
          "minimum": 0,
          "default": 0
        }
      },
      "Cursor": {
        "name": "cursor",
        "in": "query",
        "required": false,
        "description": "Opaque cursor returned by a v2 collection response",
        "schema": {
          "type": "string"
        }
      },
      "UpdatedSince": {
        "name": "updated_since",
        "in": "query",
        "required": false,
        "description": "Inclusive ISO 8601 freshness filter",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "EntityId": {
        "name": "entity_id",
        "in": "path",
        "required": true,
        "description": "Immutable qz.energy v2 entity identifier",
        "schema": {
          "type": "string",
          "pattern": "^qze_[a-z0-9_]+$"
        }
      },
      "SearchQuery": {
        "name": "q",
        "in": "query",
        "required": true,
        "description": "Literal terms searched across public domain records",
        "schema": {
          "type": "string",
          "minLength": 1
        }
      },
      "AsOf": {
        "name": "as_of",
        "in": "query",
        "required": false,
        "description": "ISO date or timestamp bounding the public snapshot",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "Format": {
        "name": "format",
        "in": "query",
        "required": false,
        "description": "Response format; JSON-stat is available only for energy-indicators",
        "schema": {
          "type": "string",
          "enum": [
            "json",
            "csv",
            "json-stat"
          ],
          "default": "json"
        }
      },
      "Fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Comma-separated projection of record fields",
        "schema": {
          "type": "string",
          "example": "metric_id,period,value,unit"
        }
      },
      "Sort": {
        "name": "sort",
        "in": "query",
        "required": false,
        "description": "Comma-separated sort fields; prefix a field with - for descending order",
        "schema": {
          "type": "string",
          "example": "-period,region"
        }
      }
    },
    "schemas": {
      "ApiIndex": {
        "type": "object",
        "required": [
          "schema",
          "api_version",
          "product_id",
          "release_id",
          "endpoints"
        ],
        "additionalProperties": true
      },
      "DatasetList": {
        "type": "object",
        "required": [
          "schema",
          "release_id",
          "total",
          "datasets"
        ],
        "properties": {
          "schema": {
            "type": "string"
          },
          "release_id": {
            "type": "string"
          },
          "total": {
            "type": "integer"
          },
          "datasets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dataset"
            }
          }
        }
      },
      "Dataset": {
        "type": "object",
        "required": [
          "dataset_id",
          "version",
          "release_id",
          "links",
          "distributions"
        ],
        "additionalProperties": true
      },
      "MetricList": {
        "type": "object",
        "required": [
          "schema",
          "release_id",
          "metrics"
        ],
        "additionalProperties": true
      },
      "Metric": {
        "type": "object",
        "required": [
          "schema",
          "release_id",
          "metric"
        ],
        "additionalProperties": true
      },
      "DatasetData": {
        "type": "object",
        "required": [
          "schema",
          "dataset_id",
          "release_id",
          "data"
        ],
        "additionalProperties": true
      },
      "Provenance": {
        "type": "object",
        "required": [
          "schema",
          "dataset_id",
          "release_id",
          "lineage"
        ],
        "additionalProperties": true
      },
      "ReproducibilityReceipt": {
        "type": "object",
        "required": [
          "schema_version",
          "receipt_id",
          "inputs",
          "method",
          "transformations",
          "artifacts",
          "verification"
        ],
        "additionalProperties": false
      },
      "MediaReceiptRegister": {
        "type": "object",
        "required": [
          "schema",
          "api_version",
          "product_id",
          "release_id",
          "source",
          "receipts",
          "runtime_dependency"
        ],
        "properties": {
          "schema": {
            "const": "qz.energy.api.media-receipts.v1"
          },
          "runtime_dependency": {
            "const": false
          },
          "receipts": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object"
            }
          }
        },
        "additionalProperties": true
      },
      "Releases": {
        "type": "object",
        "required": [
          "schema",
          "current_release_id",
          "releases",
          "changes"
        ],
        "additionalProperties": true
      },
      "Sources": {
        "type": "object",
        "required": [
          "schema",
          "release_id",
          "total",
          "sources"
        ],
        "additionalProperties": true
      },
      "Examples": {
        "type": "object",
        "required": [
          "schema",
          "release_id",
          "examples"
        ],
        "additionalProperties": true
      },
      "Health": {
        "type": "object",
        "required": [
          "schema",
          "status",
          "service"
        ],
        "additionalProperties": true
      },
      "QueryResponse": {
        "type": "object",
        "required": [
          "schema",
          "dataset_id",
          "release_id",
          "pagination",
          "records"
        ],
        "additionalProperties": true
      },
      "V2Collection": {
        "type": "object",
        "required": [
          "schema_version",
          "release_id",
          "source_sha",
          "records",
          "pagination"
        ],
        "additionalProperties": true
      },
      "V2Entity": {
        "type": "object",
        "required": [
          "schema_version",
          "release_id",
          "entity"
        ],
        "additionalProperties": true
      },
      "V2Search": {
        "type": "object",
        "required": [
          "schema_version",
          "release_id",
          "interpreted_query",
          "records"
        ],
        "additionalProperties": true
      },
      "V2Snapshot": {
        "type": "object",
        "required": [
          "schema_version",
          "release_id",
          "snapshot"
        ],
        "additionalProperties": true
      },
      "JsonStatDataset": {
        "type": "object",
        "required": [
          "version",
          "class",
          "id",
          "size",
          "dimension",
          "value",
          "extension"
        ],
        "properties": {
          "version": {
            "const": "2.0"
          },
          "class": {
            "const": "dataset"
          },
          "id": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "size": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0
            }
          },
          "dimension": {
            "type": "object"
          },
          "value": {
            "type": "array",
            "items": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "extension": {
            "type": "object"
          }
        },
        "additionalProperties": true
      },
      "Error": {
        "type": "object",
        "required": [
          "schema",
          "error"
        ],
        "additionalProperties": true
      }
    }
  },
  "x-qz-static-snapshot": true,
  "x-qz-runtime-query": true,
  "x-qz-release-id": "qz-energy-v2-content-restoration-20260913-1225",
  "x-qz-filtering": {
    "server_side": true,
    "client_side": true,
    "pagination": true,
    "csv": true,
    "json_stat": "energy-indicators_only",
    "fields": true,
    "sort": true,
    "etag": true,
    "parquet": "snapshot_distribution",
    "planned": []
  }
}
