Elhub · Schema

controllable_unit_history_response

Controllable unit - history

CompanyEnergyElectricityDatahubMeteringOpen DataNorwayUtilities

Properties

Name Type Description
id integer Unique surrogate key.
business_id string Unique business identifier for the controllable unit.
name string Free text name of the controllable unit.
start_date stringnull The usage date when the controllable unit is first active.
status object
regulation_direction object
maximum_active_power number Maximum continuous active power (flexible power) that the controllable unit can produce or consume, i.e. deliver for balancing and congestion services, in kilowatts.
is_small boolean Whether the controllable unit is small or not, following NCDR. Current threshold for this to be true is <= 50 kW of flexible power.
accounting_point_id integer Reference to the accounting point that the controllable unit is connected to.
additional_information stringnull Free text field for extra information about the controllable unit if needed.
recorded_at string When the resource was recorded (created or updated) in the system.
recorded_by integer The identity that recorded the resource.
controllable_unit_id integer Reference to the resource that was updated.
replaced_by integernull The identity that updated the resource when it was replaced.
replaced_at stringnull When the resource was replaced in the system.
suspension_history object Embedded controllable_unit_suspension_history
service_provider_history object Embedded controllable_unit_service_provider_history
service_providing_group_membership_history object Embedded service_providing_group_membership_history
technical_resource_history object Embedded technical_resource_history
View JSON Schema on GitHub

JSON Schema

elhub-controllable-unit-history-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/elhub/main/json-schema/elhub-controllable-unit-history-response-schema.json",
  "title": "controllable_unit_history_response",
  "description": "Controllable unit - history",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/elhub-flex-information-system-main-api-openapi.yml#/components/schemas/controllable_unit_history_response",
  "summary": "Controllable unit - history",
  "properties": {
    "id": {
      "description": "Unique surrogate key.",
      "format": "bigint",
      "type": "integer",
      "readOnly": true
    },
    "business_id": {
      "description": "Unique business identifier for the controllable unit.",
      "format": "text",
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
      "readOnly": true
    },
    "name": {
      "description": "Free text name of the controllable unit.",
      "format": "text",
      "type": "string",
      "maxLength": 512
    },
    "start_date": {
      "description": "The usage date when the controllable unit is first active.",
      "format": "date",
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "$ref": "#/$defs/controllable_unit_status",
      "default": "new"
    },
    "regulation_direction": {
      "$ref": "#/$defs/controllable_unit_regulation_direction"
    },
    "maximum_active_power": {
      "description": "Maximum continuous active power (flexible power) that the controllable unit can produce or consume, i.e. deliver for balancing and congestion services, in kilowatts.",
      "format": "decimal",
      "type": "number",
      "minimum": 0,
      "maximum": 999999.999,
      "multipleOf": 0.001
    },
    "is_small": {
      "description": "Whether the controllable unit is small or not, following NCDR. Current threshold for this to be true is <= 50 kW of flexible power.",
      "format": "boolean",
      "type": "boolean",
      "readOnly": true
    },
    "accounting_point_id": {
      "description": "Reference to the accounting point that the controllable unit is connected to.",
      "format": "bigint",
      "type": "integer",
      "nullable": false
    },
    "additional_information": {
      "description": "Free text field for extra information about the controllable unit if needed.",
      "format": "text",
      "type": [
        "string",
        "null"
      ]
    },
    "recorded_at": {
      "description": "When the resource was recorded (created or updated) in the system.",
      "format": "date-time",
      "type": "string",
      "readOnly": true
    },
    "recorded_by": {
      "description": "The identity that recorded the resource.",
      "format": "bigint",
      "type": "integer",
      "readOnly": true
    },
    "controllable_unit_id": {
      "description": "Reference to the resource that was updated.",
      "format": "bigint",
      "type": "integer"
    },
    "replaced_by": {
      "description": "The identity that updated the resource when it was replaced.",
      "format": "bigint",
      "type": [
        "integer",
        "null"
      ]
    },
    "replaced_at": {
      "description": "When the resource was replaced in the system.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "suspension_history": {
      "description": "Embedded controllable_unit_suspension_history",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/controllable_unit_suspension_history_response"
          }
        },
        {
          "type": "null"
        }
      ],
      "nullable": true
    },
    "service_provider_history": {
      "description": "Embedded controllable_unit_service_provider_history",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/controllable_unit_service_provider_history_response"
          }
        },
        {
          "type": "null"
        }
      ],
      "nullable": true
    },
    "service_providing_group_membership_history": {
      "description": "Embedded service_providing_group_membership_history",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/service_providing_group_membership_history_response"
          }
        },
        {
          "type": "null"
        }
      ],
      "nullable": true
    },
    "technical_resource_history": {
      "description": "Embedded technical_resource_history",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/technical_resource_history_response"
          }
        },
        {
          "type": "null"
        }
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "business_id",
    "name",
    "status",
    "regulation_direction",
    "maximum_active_power",
    "is_small",
    "accounting_point_id",
    "recorded_at",
    "recorded_by",
    "controllable_unit_id"
  ],
  "$defs": {
    "category": {
      "description": "Resource category classification. Derived from technologies.",
      "format": "text",
      "type": "string",
      "enum": [
        "consumption",
        "production",
        "energy_storage"
      ]
    },
    "controllable_unit_history_response": {
      "summary": "Controllable unit - history",
      "description": "Controllable unit - history",
      "properties": {
        "id": {
          "description": "Unique surrogate key.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "business_id": {
          "description": "Unique business identifier for the controllable unit.",
          "format": "text",
          "type": "string",
          "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
          "readOnly": true
        },
        "name": {
          "description": "Free text name of the controllable unit.",
          "format": "text",
          "type": "string",
          "maxLength": 512
        },
        "start_date": {
          "description": "The usage date when the controllable unit is first active.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "status": {
          "$ref": "#/$defs/controllable_unit_status",
          "default": "new"
        },
        "regulation_direction": {
          "$ref": "#/$defs/controllable_unit_regulation_direction"
        },
        "maximum_active_power": {
          "description": "Maximum continuous active power (flexible power) that the controllable unit can produce or consume, i.e. deliver for balancing and congestion services, in kilowatts.",
          "format": "decimal",
          "type": "number",
          "minimum": 0,
          "maximum": 999999.999,
          "multipleOf": 0.001
        },
        "is_small": {
          "description": "Whether the controllable unit is small or not, following NCDR. Current threshold for this to be true is <= 50 kW of flexible power.",
          "format": "boolean",
          "type": "boolean",
          "readOnly": true
        },
        "accounting_point_id": {
          "description": "Reference to the accounting point that the controllable unit is connected to.",
          "format": "bigint",
          "type": "integer",
          "nullable": false
        },
        "additional_information": {
          "description": "Free text field for extra information about the controllable unit if needed.",
          "format": "text",
          "type": [
            "string",
            "null"
          ]
        },
        "recorded_at": {
          "description": "When the resource was recorded (created or updated) in the system.",
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "recorded_by": {
          "description": "The identity that recorded the resource.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "controllable_unit_id": {
          "description": "Reference to the resource that was updated.",
          "format": "bigint",
          "type": "integer"
        },
        "replaced_by": {
          "description": "The identity that updated the resource when it was replaced.",
          "format": "bigint",
          "type": [
            "integer",
            "null"
          ]
        },
        "replaced_at": {
          "description": "When the resource was replaced in the system.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "suspension_history": {
          "description": "Embedded controllable_unit_suspension_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/controllable_unit_suspension_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        },
        "service_provider_history": {
          "description": "Embedded controllable_unit_service_provider_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/controllable_unit_service_provider_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        },
        "service_providing_group_membership_history": {
          "description": "Embedded service_providing_group_membership_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/service_providing_group_membership_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        },
        "technical_resource_history": {
          "description": "Embedded technical_resource_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/technical_resource_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        }
      },
      "required": [
        "id",
        "business_id",
        "name",
        "status",
        "regulation_direction",
        "maximum_active_power",
        "is_small",
        "accounting_point_id",
        "recorded_at",
        "recorded_by",
        "controllable_unit_id"
      ]
    },
    "controllable_unit_regulation_direction": {
      "description": "The regulation direction of the controllable unit. `up` means it can be used to increase production or decrease consumption, while `down` means to decrease production or increase consumption.",
      "format": "text",
      "type": "string",
      "enum": [
        "up",
        "down",
        "both"
      ]
    },
    "controllable_unit_service_provider_history_response": {
      "summary": "Relation between controllable unit and service provider - history",
      "description": "Relation between controllable unit and service provider - history",
      "properties": {
        "id": {
          "description": "Unique surrogate key.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "controllable_unit_id": {
          "description": "Reference to the controllable unit this relation links to a service provider.",
          "format": "bigint",
          "type": "integer"
        },
        "service_provider_id": {
          "description": "Reference to the `party` (service provider) this relation links to a controllable unit.",
          "format": "bigint",
          "type": "integer"
        },
        "end_user_id": {
          "description": "Technical ID of the end user behind the accounting point.",
          "format": "bigint",
          "type": "integer"
        },
        "contract_reference": {
          "description": "The service providers internal reference to the contract with the end user. Typically an internal identifier to a stored document or consent record.",
          "format": "text",
          "type": "string",
          "maxLength": 128,
          "nullable": false
        },
        "valid_from": {
          "description": "The date from which the relation between the controllable unit and the service provider is valid. Midnight aligned on Norwegian timezone.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "valid_to": {
          "description": "The date until which the relation between the controllable unit and the service provider is valid. Midnight aligned on Norwegian timezone.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "recorded_at": {
          "description": "When the resource was recorded (created or updated) in the system.",
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "recorded_by": {
          "description": "The identity that recorded the resource.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "controllable_unit_service_provider_id": {
          "description": "Reference to the resource that was updated.",
          "format": "bigint",
          "type": "integer"
        },
        "replaced_by": {
          "description": "The identity that updated the resource when it was replaced.",
          "format": "bigint",
          "type": [
            "integer",
            "null"
          ]
        },
        "replaced_at": {
          "description": "When the resource was replaced in the system.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "controllable_unit_history": {
          "description": "Embedded controllable_unit_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/controllable_unit_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        },
        "service_provider_history": {
          "description": "Embedded party_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/party_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        },
        "end_user_history": {
          "description": "Embedded party_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/party_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        }
      },
      "required": [
        "id",
        "controllable_unit_id",
        "service_provider_id",
        "end_user_id",
        "contract_reference",
        "recorded_at",
        "recorded_by",
        "controllable_unit_service_provider_id"
      ]
    },
    "controllable_unit_status": {
      "description": "The status of the controllable unit.",
      "format": "text",
      "type": "string",
      "default": "new",
      "enum": [
        "new",
        "active",
        "inactive",
        "terminated"
      ]
    },
    "controllable_unit_suspension_comment_history_response": {
      "summary": "Controllable Unit Suspension Comment - history",
      "description": "Controllable Unit Suspension Comment - history",
      "properties": {
        "id": {
          "description": "Unique surrogate identifier.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "controllable_unit_suspension_id": {
          "description": "Reference to the controllable unit suspension.",
          "format": "bigint",
          "type": "integer"
        },
        "created_by": {
          "description": "Reference to the identity that created the comment.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "created_at": {
          "description": "When the comment was added to the CUS.",
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "visibility": {
          "$ref": "#/$defs/controllable_unit_suspension_comment_visibility",
          "default": "same_party"
        },
        "content": {
          "description": "Free text content of the comment.",
          "format": "text",
          "type": "string",
          "maxLength": 2048
        },
        "recorded_at": {
          "description": "When the resource was recorded (created or updated) in the system.",
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "recorded_by": {
          "description": "The identity that recorded the resource.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "controllable_unit_suspension_comment_id": {
          "description": "Reference to the resource that was updated.",
          "format": "bigint",
          "type": "integer"
        },
        "replaced_by": {
          "description": "The identity that updated the resource when it was replaced.",
          "format": "bigint",
          "type": [
            "integer",
            "null"
          ]
        },
        "replaced_at": {
          "description": "When the resource was replaced in the system.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "controllable_unit_suspension_history": {
          "description": "Embedded controllable_unit_suspension_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/controllable_unit_suspension_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        }
      },
      "required": [
        "id",
        "controllable_unit_suspension_id",
        "created_by",
        "created_at",
        "visibility",
        "content",
        "recorded_at",
        "recorded_by",
        "controllable_unit_suspension_comment_id"
      ]
    },
    "controllable_unit_suspension_comment_visibility": {
      "description": "The level of visibility of the comment.",
      "format": "text",
      "type": "string",
      "default": "same_party",
      "enum": [
        "same_party",
        "any_involved_party"
      ]
    },
    "controllable_unit_suspension_history_response": {
      "summary": "Controllable Unit Suspension - history",
      "description": "Controllable Unit Suspension - history",
      "properties": {
        "id": {
          "description": "Unique surrogate identifier.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "controllable_unit_id": {
          "description": "Reference to the suspended controllable unit.",
          "format": "bigint",
          "type": "integer"
        },
        "impacted_system_operator_id": {
          "description": "Reference to the impacted system operator suspending the controllable unit.",
          "format": "bigint",
          "type": "integer"
        },
        "reason": {
          "$ref": "#/$defs/controllable_unit_suspension_reason"
        },
        "recorded_at": {
          "description": "When the resource was recorded (created or updated) in the system.",
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "recorded_by": {
          "description": "The identity that recorded the resource.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "controllable_unit_suspension_id": {
          "description": "Reference to the resource that was updated.",
          "format": "bigint",
          "type": "integer"
        },
        "replaced_by": {
          "description": "The identity that updated the resource when it was replaced.",
          "format": "bigint",
          "type": [
            "integer",
            "null"
          ]
        },
        "replaced_at": {
          "description": "When the resource was replaced in the system.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "controllable_unit_history": {
          "description": "Embedded controllable_unit_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/controllable_unit_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        },
        "impacted_system_operator_history": {
          "description": "Embedded party_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/party_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        },
        "comment_history": {
          "description": "Embedded controllable_unit_suspension_comment_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/controllable_unit_suspension_comment_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        }
      },
      "required": [
        "id",
        "controllable_unit_id",
        "impacted_system_operator_id",
        "reason",
        "recorded_at",
        "recorded_by",
        "controllable_unit_suspension_id"
      ]
    },
    "controllable_unit_suspension_reason": {
      "description": "The reason for the suspension.",
      "format": "text",
      "type": "string",
      "enum": [
        "compromises_safe_operation",
        "other"
      ]
    },
    "device_type": {
      "description": "Type of device for technical resources.",
      "format": "text",
      "type": "string",
      "enum": [
        "inverter",
        "boiler",
        "water_heater",
        "socket",
        "hvac",
        "ev_charging_device",
        "energy_management_system",
        "other"
      ]
    },
    "party_business_id_type": {
      "description": "The type of the business identifier.",
      "format": "text",
      "type": "string",
      "default": "uuid",
      "enum": [
        "gln",
        "uuid",
        "eic_x",
        "org"
      ]
    },
    "party_history_response": {
      "summary": "Party - history",
      "description": "Party - history",
      "properties": {
        "id": {
          "description": "Unique surrogate identifier.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "business_id": {
          "description": "The business identifier of the party. Format depends on `business_id_type`.",
          "format": "text",
          "type": "string"
        },
        "business_id_type": {
          "$ref": "#/$defs/party_business_id_type",
          "default": "uuid"
        },
        "entity_id": {
          "description": "Reference to the entity that is the parent of the party.",
          "format": "bigint",
          "type": "integer"
        },
        "name": {
          "description": "Name of the party. Maximum 128 characters.",
          "format": "text",
          "type": "string"
        },
        "role": {
          "$ref": "#/$defs/party_role"
        },
        "type": {
          "$ref": "#/$defs/party_type"
        },
        "status": {
          "$ref": "#/$defs/party_status",
          "default": "new"
        },
        "recorded_at": {
          "description": "When the resource was recorded (created or updated) in the system.",
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "recorded_by": {
          "description": "The identity that recorded the resource.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "party_id": {
          "description": "Reference to the resource that was updated.",
          "format": "bigint",
          "type": "integer"
        },
        "replaced_by": {
          "description": "The identity that updated the resource when it was replaced.",
          "format": "bigint",
          "type": [
            "integer",
            "null"
          ]
        },
        "replaced_at": {
          "description": "When the resource was replaced in the system.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "id",
        "business_id",
        "business_id_type",
        "entity_id",
        "name",
        "role",
        "type",
        "status",
        "recorded_at",
        "recorded_by",
        "party_id"
      ]
    },
    "party_role": {
      "description": "The role of the party. Currently maps to 1:1 to `type`. E.g. system_operator, service_provider.",
      "format": "text",
      "type": "string",
      "enum": [
        "flex_balance_responsible_party",
        "flex_end_user",
        "flex_energy_supplier",
        "flex_flexibility_information_system_operator",
        "flex_market_operator",
        "flex_organisation",
        "flex_service_provider",
        "flex_system_operator",
        "flex_third_party"
      ]
    },
    "party_status": {
      "description": "The status of the party.",
      "format": "text",
      "type": "string",
      "default": "new",
      "enum": [
        "new",
        "active",
        "inactive",
        "suspended",
        "terminated"
      ]
    },
    "party_type": {
      "description": "The type of the party, e.g SystemOperator, ServiceProvider",
      "format": "text",
      "type": "string",
      "enum": [
        "balance_responsible_party",
        "end_user",
        "energy_supplier",
        "flexibility_information_system_operator",
        "market_operator",
        "organisation",
        "service_provider",
        "system_operator",
        "third_party"
      ]
    },
    "service_providing_group_bidding_zone": {
      "description": "The bidding zone that restricts which CUs that can be added to the group. Also known as scheduling area or price area for TSO.",
      "format": "text",
      "type": "string",
      "enum": [
        "NO1",
        "NO2",
        "NO3",
        "NO4",
        "NO5"
      ]
    },
    "service_providing_group_grid_prequalification_comment_history_response": {
      "summary": "Grid prequalification for service providing group Comment - history",
      "description": "Grid prequalification for service providing group Comment - history",
      "properties": {
        "id": {
          "description": "Unique surrogate identifier.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "service_providing_group_grid_prequalification_id": {
          "description": "Reference to the service providing group grid prequalification.",
          "format": "bigint",
          "type": "integer"
        },
        "created_by": {
          "description": "Reference to the identity that created the comment.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "created_at": {
          "description": "When the comment was added to the SPGGP.",
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "visibility": {
          "$ref": "#/$defs/service_providing_group_grid_prequalification_comment_visibility",
          "default": "same_party"
        },
        "content": {
          "description": "Free text content of the comment.",
          "format": "text",
          "type": "string",
          "maxLength": 2048
        },
        "recorded_at": {
          "description": "When the resource was recorded (created or updated) in the system.",
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "recorded_by": {
          "description": "The identity that recorded the resource.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "service_providing_group_grid_prequalification_comment_id": {
          "description": "Reference to the resource that was updated.",
          "format": "bigint",
          "type": "integer"
        },
        "replaced_by": {
          "description": "The identity that updated the resource when it was replaced.",
          "format": "bigint",
          "type": [
            "integer",
            "null"
          ]
        },
        "replaced_at": {
          "description": "When the resource was replaced in the system.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "service_providing_group_grid_prequalification_history": {
          "description": "Embedded service_providing_group_grid_prequalification_history",
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/service_providing_group_grid_prequalification_history_response"
              }
            },
            {
              "type": "null"
            }
          ],
          "nullable": true
        }
      },
      "required": [
        "id",
        "service_providing_group_grid_prequalification_id",
        "created_by",
        "created_at",
        "visibility",
        "content",
        "recorded_at",
        "recorded_by",
        "service_providing_group_grid_prequalification_comment_id"
      ]
    },
    "service_providing_group_grid_prequalification_comment_visibility": {
      "description": "The level of visibility of the comment.",
      "format": "text",
      "type": "string",
      "default": "same_party",
      "enum": [
        "same_party",
        "any_involved_party"
      ]
    },
    "service_providing_group_grid_prequalification_history_response": {
      "summary": "Grid prequalification for service providing group - history",
      "description": "Grid prequalification for service providing group - history",
      "properties": {
        "id": {
          "description": "Unique surrogate key.",
          "format": "bigint",
          "type": "integer",
          "readOnly": true
        },
        "service_providing_group_id": {
          "description": "Reference to the service providing group whose grid prequalification is tracked by the current resource.",
          "format": "bigint",
          "type": "integer"
        },
        "impacted_system_operator_id": {
          "description": "Reference to the `party` that is the impacted system operator.",
          "format": "bigint",
          "type": "integer"
        },
        "status": {
          "$ref": "#/$defs/service_providing_group_grid_prequalification_status",
          "default": "requested"
        },
        "prequalified_at": {
          "description": "When the current grid prequalification was last approved.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "recorded_at": {
          "description": "When the resource was recorded (created or updated) in the system.",
          "format": "date-time",
          "type": "string",
          "readOnly": true
        },
        "recorded_by": {
          "description": "The identity that recorded the resource.",
          "format": "bigint",
          "type": "integer",
          

# --- truncated at 32 KB (78 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elhub/refs/heads/main/json-schema/elhub-controllable-unit-history-response-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/elhub-controllable-unit-history-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.