{
  "openapi": "3.0.1",
  "info": {
    "title": "UK Grid Capacity Tracker — NESO TEC Register",
    "description": "Monitor the Great Britain electricity grid connection queue (TEC register, transmission entry capacity, interconnection queue) for new and changed projects, capacity, gate and status, without parsing NESO's rotating CSV or building diff-detection yourself. From $0.01/project record, PPE.",
    "version": "0.2",
    "x-build-id": "n7sWZCK7KYWRs0134"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/codeclouds~uk-netcongestie-grid-capacity-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-codeclouds-uk-netcongestie-grid-capacity-tracker",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/codeclouds~uk-netcongestie-grid-capacity-tracker/runs": {
      "post": {
        "operationId": "runs-sync-codeclouds-uk-netcongestie-grid-capacity-tracker",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/codeclouds~uk-netcongestie-grid-capacity-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-codeclouds-uk-netcongestie-grid-capacity-tracker",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "technology": {
            "title": "Technology filter",
            "type": "array",
            "description": "Optional: only include projects whose plant type matches one of these (case-insensitive). Common values: \"Energy Storage System\", \"Wind Onshore\", \"Wind Offshore\", \"PV Array (Photo Voltaic/solar)\", \"CCGT (Combined Cycle Gas Turbine)\", \"Hydro\", \"Pump Storage\", \"Interconnector\", \"Demand\", \"Nuclear\", \"Reactive Compensation\". Co-located projects list multiple types separated by \";\" and match if ANY of them is in this list. Leave empty for all technologies.",
            "items": {
              "type": "string"
            }
          },
          "connectionSite": {
            "title": "Connection site contains",
            "type": "string",
            "description": "Optional: only include projects whose connection site (substation / GSP name, e.g. \"Berkswell GSP\", \"Alverdiscott 400kV Substation\") contains this text (case-insensitive)."
          },
          "hostTO": {
            "title": "Transmission owner filter",
            "type": "array",
            "description": "Optional: only include projects of these transmission owners / hosts: \"NGET\" (National Grid Electricity Transmission), \"SHET\" (Scottish Hydro Electric Transmission / SSEN), \"SPT\" (SP Transmission), \"OFTO\" (Offshore transmission owner). Leave empty for all.",
            "items": {
              "type": "string"
            }
          },
          "gate": {
            "title": "Gate filter (Connections Reform)",
            "type": "array",
            "description": "Optional: only include projects in this gate. \"2\" = firm, near-term ordered pipeline (Gate 2 offers to 2035); \"1\" = waiting list / speculative (Gate 1). Leave empty for all, including projects not yet assigned a gate (blank).",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "title": "Project status filter",
            "type": "array",
            "description": "Optional: only include projects with one of these official Project Status values (case-insensitive), e.g. \"Scoping\", \"Awaiting Consents\", \"Consents Approved\", \"Built\". Leave empty for all statuses.",
            "items": {
              "type": "string"
            }
          },
          "minCapacityMW": {
            "title": "Minimum capacity (MW)",
            "type": "integer",
            "description": "Optional: only include projects whose total contracted Transmission Entry Capacity (max cumulative MW across stages) is at least this many MW."
          },
          "maxCapacityMW": {
            "title": "Maximum capacity (MW)",
            "type": "integer",
            "description": "Optional: only include projects whose total contracted Transmission Entry Capacity is at most this many MW."
          },
          "onlyChangedSinceLastRun": {
            "title": "Only deliver new/changed projects",
            "type": "boolean",
            "description": "If true (default), only projects that are new or changed since the previous run are delivered and charged. If false, the full filtered snapshot is delivered every run, but only new/changed projects are still charged the change-alert. Uses a shared, persistent key-value store snapshot ('uk-netcongestie-grid-capacity-tracker-snapshot') that is also read and updated by scheduled monitoring runs, not just this one. On the very first call ever (no snapshot exists yet), there is nothing to compare against: every project in the filtered set is treated as new, so the entire filtered snapshot is delivered that first time (and charged per the pricing rules).",
            "default": true
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}