Skip to main content
The Engrate Schedule Management API provides a unified, modern RESTful interface for submitting energy schedules to Transmission System Operators (TSOs) across Germany and the Netherlands. We handle all the complex, market-specific integration requirements behind the scenes, allowing you to work with a single, consistent API regardless of whether they’re submitting schedules to German TSOs (Amprion, 50Hertz, TenneT, and TransnetBW) or the Dutch operator TenneT. Our platform automatically manages the different protocol requirements, data formats, and validation rules for each market - from EIC codes in Germany to participant IDs in the Netherlands. Built with developer experience in mind, the API includes comprehensive versioning, real-time status tracking, and complete audit trails. This means you can focus on building your energy management applications while we ensure reliable, compliant schedule delivery to TSOs.

Key Features:

  • Multi-Market Support: Single API endpoint automatically handles both German and Dutch market requirements, with built-in validation and format creation for each TSO’s specific protocols.
  • Intelligent Version Management: Full version control system with automatic tracking of schedule modifications, allowing retrieval of historical versions and complete change history for regulatory compliance.
  • Real-Time Status Tracking: Monitor schedule acceptance status in real-time with detailed feedback from TSOs, including preliminary, final, and settled acceptance levels, according to each TSO’s ruleset.
  • Time Series Flexibility: Support for multiple aggregation types and resolutions (15-minute, hourly, daily intervals) with automatic handling of timezone conversions and daylight saving time transitions.
  • Enterprise-Ready Security: Engrate APIs use industry-standard OAuth 2.0 for secure authentication and authorization and comprehensive audit logging.

Developer & Operations Tools

Beyond the API, Engrate provides a comprehensive suite of tools to streamline development and operations. Our debugging tools allow you to trace and troubleshoot schedule submissions in real-time, identifying any validation issues or TSO responses before they impact production. The Schedule Management Dashboard gives you a visual overview of all your schedules across both markets, with filtering, search, and detailed status tracking capabilities. Additionally, our Audit Tools provide complete transparency with searchable logs of all API interactions, schedule modifications, and system events, ensuring you maintain full compliance and can quickly investigate any issues. Full access to the raw schedule data makes the tool complete. Schedule tool
Schedule management overview

Detailed schedule view
Expanding CoverageWe’re continuously adding support for more countries and TSOs across Europe to provide comprehensive coverage for the energy market. Our roadmap is driven by customer needs, so please reach out to let us know which markets and TSO integrations would be valuable for your business - we prioritize development based on customer demand.

Germany (DE) scheduling

Use this section as the DE-specific companion to the API reference endpoint POST /schedule-management/v1/schedules.

Scope

This applies to schedule submissions for the German market (market=DE or market=germany), including:
  • Day-ahead and intraday submissions
  • Internal, external, and foreign schedule series
  • Gate closure checks and correction windows

Core identifiers

For DE payloads, ensure identifiers are market-valid:
  • TSO identifiers: 50HERTZ_DE_TSO, DE-AMPRION-TSO, TTG_DE, DE-TRANSNETBWTSO
  • Receiver ID: EIC X code for the target TSO
  • Area IDs (in_area, out_area): EIC Y codes
  • Party IDs (in_party, out_party): EIC X codes
  • Market agreement ID: required for external and foreign series

Gate closure overview (DE)

  • Day-ahead: open until D-1 14:30 CET
  • DA matching window (D-1 14:30-16:00 CET): internal accepted, external/foreign corrections only
  • Intraday: D-1 16:00 CET until GCT (15-minute lead time for external/foreign)
Set test=true only for development/testing scenarios where gate-closure checks should be skipped.

Example request (DE)

{
  "market": "DE",
  "tso": "50HERTZ_DE_TSO",
  "receiver_id": "10XDE-VE-TRANSMK",
  "series": [
    {
      "type": "internal",
      "ids": {
        "in_area": "10YDE-VE-------2",
        "out_area": "10YDE-VE-------2",
        "in_party": "11XDE-EXAMPLE--A",
        "out_party": "11XDE-EXAMPLE--B"
      },
      "data": [
        {
          "ts": "2026-01-23T23:00:00Z",
          "amount": 10.5
        }
      ]
    }
  ]
}

Common DE validation pitfalls

  • series.data count does not match expected DST-aware interval count
  • market_agreement_id omitted for external / foreign
  • TSO and EIC identifiers mixed across different control areas
  • Submissions sent after gate closure without test=true

Netherlands (NL) scheduling

Use this section as the NL-specific companion to the API reference endpoint POST /schedule-management/v1/schedules.

Scope

This applies to schedule submissions for the Dutch market (market=NL or market=netherlands), including:
  • Day-ahead submissions to TenneT NL
  • CIM XML generation and AS4 delivery flow
  • Zero-schedule and cancellation patterns

Core identifiers

For NL payloads, ensure identifiers are market-valid:
  • TSO identifier: TENNET_TSO
  • Receiver ID: TenneT NL EAN-13 code (for example 8716867111163)
  • Area IDs (in_area, out_area): typically 10YNL----------L
  • Party IDs (in_party, out_party): EIC X organization codes

Gate closure overview (NL)

  • Day-ahead window: D-2 10:00 CET to D-1 15:00 CET
Unlike DE, NL submissions are often centered around this day-ahead window and market communication via the MMC Hub process.

Example request (NL)

{
  "market": "NL",
  "tso": "TENNET_TSO",
  "receiver_id": "8716867111163",
  "series": [
    {
      "type": "consumption",
      "ids": {
        "in_area": "10YNL----------L",
        "out_area": "10YNL----------L",
        "in_party": "11XNL-EXAMPLE--A",
        "out_party": "11XNL-EXAMPLE--B"
      },
      "data": [
        {
          "ts": "2026-01-24T00:00:00Z",
          "amount": 8.25
        }
      ]
    }
  ]
}

Common NL validation pitfalls

  • Mixing DE-style TSO values with market=NL
  • Invalid receiver format (EAN-13 expected for TenneT NL)
  • Incorrect timestamp interpretation around delivery date boundaries
  • Assuming DE gate windows apply to NL workflows

API reference

Explore how to interact with the Schedule Management API