Netzhandwerker Energy Research Hub

Live electricity prices, carbon intensity, grid load, renewable share, flexibility windows, battery arbitrage, trading signals and ESG reporting for autonomous agents.

74 endpoints37 payment-required37 freiBase Mainnet USDC

Why pay?

Raw data endpoints answer what is happening. Decision endpoints answer what an agent should do next. Use /energy/decision if you want one paid answer instead of combining multiple signals. Use /demo/paid-sample to test x402 payment for 0.001 USD.

Products

Live Energy Data

Raw data endpoints answer what is happening: prices, forecast, carbon intensity, grid load and renewable share.

EndpointPriceUse
POST /price/spot0.01 USDCAktueller EPEX Spot-Strompreis fuer Deutschland.
POST /price/forecast0.02 USDCEPEX Day-Ahead Preise mit Min/Max/Spread.
POST /carbon/now0.01 USDCAktuelle CO2-Intensitaet des deutschen Strommix.
POST /grid/load0.02 USDCAktuelle Netzlast aus SMARD.
POST /renewable/share0.02 USDCLive-Anteil erneuerbarer Energien am deutschen Strommix.

Optimization Signals

Decision endpoints answer what an agent should do next: EV charging, heat pump control, flexibility windows, battery arbitrage and trading signals.

EndpointPriceUse
GET /demo/paid-sample0.001 USDCMachine-readable discovery for the x402 sample endpoint. The actual access flow is gated by x402 payment.
POST /energy/decision0.25 USDCCentral premium decision endpoint. Use it if you want one paid answer instead of combining multiple raw data and signal endpoints.
POST /flexibility/window0.03 USDCGuensigste Zeitfenster fuer flexible Verbraucher.
POST /arbitrage/battery0.10 USDCStrategie fuer Batteriespeicher-Arbitrage mit ROI-Betrachtung.
POST /signals/buy-sell0.20 USDCTrading-Signal aus Preis, RSI, Trend, EE-Druck und Fossil-Anteil.
POST /bundle/ev-charging0.05 USDCPreis, CO2 und Ladefenster fuer Elektroauto-Ladung.
POST /bundle/heating0.05 USDCPreis, Wetter und EE-Anteil fuer Waermepumpen-Optimierung.
POST /solar/forecast0.05 USDCSolarstrahlung und Bewoelkung fuer Region oder PLZ.
POST /wind/forecast0.03 USDCWinddaten fuer Region oder PLZ.
POST /optimizer/cheapest-window0.10 USDCBilligstes zusammenhaengendes Zeitfenster fuer EV, Batterie oder Waermepumpe.
POST /price/negative-forecast0.05 USDCStunden mit negativen Strompreisen in den naechsten 24 Stunden.
POST /summary/today0.10 USDCToken-effiziente Tageszusammenfassung mit konkreter Handlungsempfehlung.
POST /grid/congestion0.15 USDCNetzengpass- und Redispatch-Risiko.
POST /region0.05 USDCPreis, CO2, Gruenstrom und Wetter fuer eine PLZ-Region.
POST /mining/profitability0.10 USDCProfitabilitaet fuer ASIC-Mining mit aktuellem Strompreis.
POST /portfolio/optimize0.50 USDC24h Fahrplan fuer Batterie, PV und Verbrauch.
POST /score/grid-health0.05 USDCScore 0-100 fuer Netzgesundheit aus EE-Anteil, Preis, Wetter und Nachfrage.
POST /events/grid0.05 USDCEreignisfeed fuer Dunkelflaute, Sturm, negative Preise und Rekorde.

Research & Intelligence

Research and intelligence endpoints produce market summaries, ESG reporting, track records and deeper energy research.

EndpointPriceUse
GET /research0.05 USDCGET-Fallback mit maschinenlesbarer 402-Antwort fuer POST /research.
GET /articles/{id}0.02 USDCGET-Fallback mit maschinenlesbarer 402-Antwort fuer POST /articles/{id}.
GET /tasksab 1.00 USDCGET-Fallback mit maschinenlesbarer 402-Antwort fuer POST /tasks.
POST /research0.05 USDCAggregierte Energie-Recherche fuer DE/EU aus Live-Datenquellen.
POST /research/quick0.01 USDCKompakte Research-Antwort mit Live-Kennzahlen.
POST /research/deep0.50 USDCTiefe Research-Antwort mit Premium-Quellen und LLM-Synthese.
POST /articles/{id}0.02 USDCVolltext eines Energie-Fachartikels.
POST /tasksab 1.00 USDCAsynchroner Deep-Dive Task mit Mindest-Bounty.
POST /bundle/trading0.30 USDCKombinierte Markt- und Trading-Daten.
POST /bundle/esg-reporting0.40 USDCCO2, EE-Anteil und Quellenhinweise fuer ESG-Reporting.
POST /history/prices0.50 USDCStundendaten fuer EPEX-Preise nach Periode.
POST /history/prices/stats0.20 USDCStatistik fuer eine historische Preisperiode.

x402 Payment

Production uses Base Mainnet, chain 8453, asset USDC, recipient 0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E.

curl -i -X POST https://energy.netzhandwerker.de/price/spot \
  -H "Content-Type: application/json" \
  -H "PAYMENT: <x402-payload>" \
  -d '{}'

MCP / Agent Access

MCP discovery: https://energy.netzhandwerker.de/mcp. Paid data tools return payment instructions; call the REST endpoint after x402 payment.

{ "mcpServers": { "energy-hub": { "url": "https://energy.netzhandwerker.de/mcp" } } }

Endpoints

MethodPathDescriptionPriceResponse exampleError cases
GET / Startseite mit serverseitigen Live-Werten
Bot-taugliche HTML-Uebersicht mit Live-Kennzahlen, Preisen, Payment und Agent-Zugriff.
frei
"<html>Energy Research Hub overview</html>"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /health Health Check
Status, Version, Uptime, Port, x402-Konfiguration und relevante Links ohne Secrets.
frei
{
  "status": "ok",
  "service": "energy-research-hub",
  "version": "1.6.0",
  "network": "Base Mainnet"
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /docs Dokumentation
HTML-Dokumentation aus derselben Endpunktliste wie OpenAPI und MCP.
frei
"<html>API docs</html>"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /openapi.json OpenAPI 3.1 Spezifikation
Maschinenlesbare OpenAPI-Spezifikation fuer alle dokumentierten Public Routes.
frei
{
  "openapi": "3.1.0",
  "info": {
    "title": "Netzhandwerker Energy Research Hub"
  }
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /llms.txt LLM Kurzkontext
Kompakte Textdatei fuer Bots, Crawler und Agenten.
frei
"Name: Netzhandwerker Energy Research Hub"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /llms-full.txt LLM Vollkontext
Ausfuehrliche Textdatei mit Zweck, Endpunkten, Preisen und Payment-Hinweisen.
frei
"Endpoints: ..."
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /robots.txt Robots Datei
Crawler-Hinweise mit Sitemap- und LLM-Dateiverweisen.
frei
"User-agent: *"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /sitemap.xml Sitemap
XML-Sitemap fuer frei erreichbare GET-Routen.
frei
"<urlset>...</urlset>"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /.well-known/ai-plugin.json AI Plugin Manifest
Manifest fuer Plugin-Scanner mit OpenAPI-Link.
frei
{
  "schema_version": "v1",
  "name_for_model": "netzhandwerker_energy_research_hub"
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /.well-known/mcp.json MCP Discovery
Discovery-Dokument mit MCP-Endpoint und Tool-Liste.
frei
{
  "endpoint": "https://energy.netzhandwerker.de/mcp",
  "tools": []
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /.well-known/agent.json Agent Manifest
Agenten-Manifest mit Zweck, Links, Preisen und Payment-Konfiguration.
frei
{
  "name": "Netzhandwerker Energy Research Hub",
  "payment": "x402"
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /.well-known/x402.json x402 Manifest
Payment-Manifest fuer x402-Scanner.
frei
{
  "payment_target": {
    "network": "eip155:8453",
    "currency": "USDC"
  }
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /articles Artikel-Katalog
Frei verfuegbarer Katalog der Premium-Artikel.
frei
{
  "articles": [
    {
      "id": "001",
      "title": "Mieterstrom",
      "price_usdc": "0.02"
    }
  ]
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /capabilities Capabilities
Kurzuebersicht fuer API-Scanner mit Links und Kategorien.
frei
{
  "service": "Netzhandwerker Energy Research Hub",
  "capabilities": [
    "live_energy_data",
    "x402_payment",
    "mcp"
  ]
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /agent Agent Discovery
Short machine-readable product, pricing and payment discovery for AI agents, MCP clients and x402 bots.
frei
{
  "name": "Netzhandwerker Energy Research Hub",
  "best_for": [
    "German electricity prices",
    "EV charging decisions"
  ],
  "products": [
    "Live Energy Data",
    "Optimization Signals",
    "Research & Intelligence"
  ]
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /pricing Pricing
Machine-readable price list grouped by Live Energy Data, Optimization Signals and Research & Intelligence.
frei
{
  "currency": "USD",
  "payment_protocol": "x402",
  "settlement_asset": "USDC",
  "products": []
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /trust Trust Page
Operator, payment network, uptime links, API version and risk notes as HTML or JSON via Accept header.
frei
{
  "operator": "Die Netzhandwerker",
  "chain_id": 8453,
  "asset": "USDC"
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /status Status
Machine-readable service status with version, uptime, endpoint count, MCP tool count and x402 state.
frei
{
  "status": "ok",
  "version": "1.6.0",
  "endpoint_count": 0
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /sources Sources
Transparent list of data sources used by the service, including freshness and limitations.
frei
{
  "sources": [
    {
      "name": "aWATTar EPEX DE/AT",
      "type": "live",
      "used_for": [
        "spot prices",
        "price forecast",
        "optimization windows"
      ],
      "freshness": "Usually hourly/day-ahead; cached by endpoint",
      "limitations": [
        "External API availability",
        "Market data may lag provider updates"
      ]
    },
    {
      "name": "Fraunhofer ISE energy-charts",
      "type": "live/cached",
      "used_for": [
        "renewable share",
        "generation mix",
        "CO2 fallback model"
      ],
      "freshness": "Cached by endpoint, usually minutes to hours",
      "limitations": [
        "Provider schema changes possible",
        "Some values are modelled from generation mix"
      ]
    },
    {
      "name": "SMARD Bundesnetzagentur",
      "type": "live/cached",
      "used_for": [
        "grid load"
      ],
      "freshness": "Cached by endpoint",
      "limitations": [
        "Quarter-hour data availability depends on SMARD publication"
      ]
    },
    {
      "name": "Corrently GruenstromIndex",
      "type": "forecast/cached",
      "used_for": [
        "regional green power index",
        "regional CO2 estimate"
      ],
      "freshness": "Forecast data, cached by endpoint",
      "limitations": [
        "Regional approximation by ZIP"
      ]
    },
    {
      "name": "Open-Meteo",
      "type": "forecast/cached",
      "used_for": [
        "solar forecast",
        "wind forecast",
        "weather-driven optimization"
      ],
      "freshness": "Forecast data, cached by endpoint",
      "limitations": [
        "Weather forecast uncertainty"
      ]
    },
    {
      "name": "Electricity Maps",
      "type": "live",
      "used_for": [
        "carbon intensity when API key is available"
      ],
      "freshness": "Provider latest value",
      "limitations": [
        "Requires configured provider key; fallback uses internal CO2 model"
      ]
    },
    {
      "name": "ENTSO-E Transparency",
      "type": "live/forecast",
      "used_for": [
        "day-ahead prices and selected premium research"
      ],
      "freshness": "Provider publication schedule",
      "limitations": [
        "Requires configured ENTSO-E key"
      ]
    },
    {
      "name": "Internal model",
      "type": "model",
      "used_for": [
        "energy decisions",
        "battery arbitrage",
        "trading signal scoring"
      ],
      "freshness": "Generated per request from cached/live inputs",
      "limitations": [
        "Decision outputs are estimates, not guarantees"
      ]
    }
  ]
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /wallet-bot/needs-info Wallet Bot Needs Info
Free discovery endpoint that invites wallet-enabled agents to declare what they want to buy.
frei
{
  "ok": true,
  "purpose": "Tell us what your wallet-enabled agent wants to buy.",
  "submit_need": {
    "method": "POST",
    "endpoint": "/wallet-bot/needs",
    "content_type": "application/json",
    "schema": {
      "type": "object",
      "properties": {
        "agent_name": {
          "type": "string"
        },
        "wallet_type": {
          "type": "string",
          "enum": [
            "x402",
            "evm",
            "base",
            "solana",
            "lightning",
            "other",
            "unknown"
          ]
        },
        "payment_network": {
          "type": "string"
        },
        "payment_asset": {
          "type": "string"
        },
        "need": {
          "type": "string",
          "description": "What does your wallet-enabled agent want to buy?"
        },
        "requested_endpoint": {
          "type": "string"
        },
        "missing_endpoint": {
          "type": "string"
        },
        "desired_output_format": {
          "type": "string",
          "enum": [
            "json",
            "mcp",
            "openapi",
            "webhook",
            "csv",
            "other"
          ]
        },
        "desired_freshness": {
          "type": "string",
          "enum": [
            "live",
            "hourly",
            "daily",
            "historical",
            "unknown"
          ]
        },
        "max_budget_usdc": {
          "type": "number",
          "minimum": 0
        },
        "recurring_need": {
          "type": "boolean"
        },
        "urgency": {
          "type": "string",
          "enum": [
            "low",
            "normal",
            "high"
          ]
        },
        "callback_url": {
          "type": "string",
          "description": "Stored as present/host only; never called automatically."
        },
        "notes": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  },
  "wallet_bot_need_request": {
    "question": "What does your wallet-enabled agent need from this energy API?",
    "submit": {
      "method": "POST",
      "endpoint": "/wallet-bot/needs",
      "content_type": "application/json"
    },
    "examples": [
      "I need live EPEX prices for Germany every hour.",
      "I need a battery arbitrage schedule.",
      "I need CO2-low charging windows.",
      "I need Redispatch risk by region.",
      "I need webhook alerts for negative prices."
    ],
    "optional_fields": [
      "wallet_type",
      "payment_network",
      "max_budget_usdc",
      "desired_output_format",
      "recurring_need"
    ]
  },
  "why": [
    "We use wallet-bot needs to create better paid energy endpoints.",
    "Tell us what data, decision, format or price your agent needs."
  ],
  "examples": [
    {
      "need": "I need a 15-minute EV charging schedule for Germany before 07:00.",
      "recommended_endpoint": "/energy/decision"
    },
    {
      "need": "I need Redispatch risk for NRW in the next 24h.",
      "recommended_endpoint": "/grid/congestion"
    },
    {
      "need": "I need a cheaper payment test endpoint.",
      "recommended_endpoint": "/demo/paid-sample"
    }
  ]
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /wallet-bot/needs Submit Wallet Bot Need
Free endpoint where wallet-enabled agents can declare needed data, formats, missing endpoints and budget.
frei
{
  "ok": true,
  "need_id": "need_123",
  "recommended_existing_offer": {
    "endpoint": "/energy/decision",
    "price_usdc": 0.25
  }
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /for-ai-agents For AI Agents
Server-rendered landing page for AI agents with endpoints, prices and example responses.
frei
"<html>For AI agents</html>"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /for-mcp-clients For MCP Clients
Server-rendered landing page for MCP clients with setup and available tools.
frei
"<html>For MCP clients</html>"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /for-x402-bots For x402 Bots
Server-rendered landing page for x402 bots with payment test and paid endpoints.
frei
"<html>For x402 bots</html>"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /for-ev-charging-agents For EV Charging Agents
Server-rendered landing page for EV charging optimization agents.
frei
"<html>For EV charging agents</html>"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /for-esg-reporting-agents For ESG Reporting Agents
Server-rendered landing page for ESG reporting agents.
frei
"<html>For ESG reporting agents</html>"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /for-energy-trading-agents For Energy Trading Agents
Server-rendered landing page for energy trading agents.
frei
"<html>For energy trading agents</html>"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /sample/research Research Sample
Frei verfuegbares Beispiel fuer Research-Ausgaben.
frei
{
  "note": "Frei verfuegbares Beispiel",
  "full_endpoint": "POST /research"
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /sample/articles Artikel-Snippet
Frei verfuegbares Artikel-Snippet mit Link auf den bezahlten Volltext.
frei
{
  "preview": {
    "id": "001",
    "title": "Mieterstrom"
  },
  "full_endpoint": "POST /articles/{id}"
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /mcp MCP Discovery
JSON-Discovery fuer MCP-Clients mit Tool-Namen, Input-Schemas, Endpoints, Preisen und Payment-Status.
frei
{
  "protocol": "Model Context Protocol",
  "tools_count": 32
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /mcp MCP JSON-RPC Endpoint
JSON-RPC Endpoint fuer initialize, tools/list und tools/call. Paid Data Tools liefern Payment-Anweisungen.
frei
{
  "jsonrpc": "2.0",
  "result": {
    "tools": []
  }
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /agent-manifest Agent Manifest
Frei verfuegbares Agenten-Manifest fuer Bots und x402-Scanner.
frei
{
  "name": "Netzhandwerker Energy Research Hub",
  "openapi": "https://energy.netzhandwerker.de/openapi.json"
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /metrics Prometheus Metrics
Prometheus-kompatible Metriken fuer Requests, Revenue und x402-Probes.
frei
"energy_hub_requests_total 123"
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /signals/track-record Track Record
Transparenzdaten zu Historie, Quellen, Reliability und Methodik.
frei
{
  "reliability": {
    "success_rate_24h": "99.2%",
    "network": "Base Mainnet"
  }
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /tasks/{id}/result Task Ergebnis
Ergebnisabruf fuer zuvor bezahlte Async-Tasks.
frei
{
  "id": "task_123",
  "status": "completed",
  "result": {}
}
400: Invalid request
404: Task not found
429: Rate limit exceeded
500: Internal server error
GET /netzhandwerker-radar Bot-Radar Dashboard
Internes Radar-Dashboard. Zugriff nur mit ENV-Passwort per Header, Basic Auth oder Query-Fallback.
frei
"<html>Bot-Radar</html>"
400: Invalid request
401: Authentication required
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /research Research Payment Requirements
GET-Fallback mit maschinenlesbarer 402-Antwort fuer POST /research.
0.05 USDC
{
  "error": "payment_required",
  "endpoint": "POST /research"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /articles/{id} Article Payment Requirements
GET-Fallback mit maschinenlesbarer 402-Antwort fuer POST /articles/{id}.
0.02 USDC
{
  "error": "payment_required",
  "endpoint": "POST /articles/{id}"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /tasks Task Payment Requirements
GET-Fallback mit maschinenlesbarer 402-Antwort fuer POST /tasks.
ab 1.00 USDC
{
  "error": "payment_required",
  "endpoint": "POST /tasks"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /research Energy Research
Aggregierte Energie-Recherche fuer DE/EU aus Live-Datenquellen.
0.05 USDC
{
  "success": true,
  "summary": "...",
  "key_metrics": [],
  "confidence_score": 0.9
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /demo/paid-sample x402 Paid Sample
Machine-readable discovery for the x402 sample endpoint. The actual access flow is gated by x402 payment.
0.001 USDC
{
  "ok": true,
  "endpoint": "/demo/paid-sample",
  "payment_required": true,
  "price_usd": 0.001,
  "asset": "USDC",
  "network": "Base Mainnet",
  "chain_id": 8453
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
GET /energy/decision Energy Decision Discovery
GET discovery for the paid decision endpoint. Returns machine-readable endpoint metadata or method guidance.
frei
{
  "ok": true,
  "endpoint": "/energy/decision",
  "method": "POST",
  "payment_required": true,
  "price_usd": 0.25,
  "asset": "USDC",
  "network": "Base Mainnet",
  "chain_id": 8453
}
400: Invalid request
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /energy/decision Energy Decision
Central premium decision endpoint. Use it if you want one paid answer instead of combining multiple raw data and signal endpoints.
0.25 USDC
{
  "ok": true,
  "product": "Optimization Signals",
  "endpoint": "/energy/decision",
  "result": {
    "decision": "charge_later",
    "recommended_window": {
      "start": "2026-06-18T01:00:00.000Z",
      "end": "2026-06-18T05:00:00.000Z"
    },
    "reason": "Estimated cheapest low-carbon window in the requested period.",
    "expected_saving_eur": 0,
    "carbon_reduction_percent": 0,
    "confidence": 0.74,
    "alternatives": []
  }
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /research/quick Quick Research
Kompakte Research-Antwort mit Live-Kennzahlen.
0.01 USDC
{
  "success": true,
  "mode": "quick",
  "summary": "..."
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /research/deep Deep Research
Tiefe Research-Antwort mit Premium-Quellen und LLM-Synthese.
0.50 USDC
{
  "success": true,
  "mode": "deep",
  "synthesis": "..."
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /articles/{id} Premium Artikel
Volltext eines Energie-Fachartikels.
0.02 USDC
{
  "success": true,
  "type": "premium_article",
  "article": {}
}
400: Invalid request
402: Payment Required
404: Article not found
429: Rate limit exceeded
500: Internal server error
POST /tasks Async Bounty Task
Asynchroner Deep-Dive Task mit Mindest-Bounty.
ab 1.00 USDC
{
  "success": true,
  "task_id": "task_123",
  "status": "queued"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /price/spot Spotpreis jetzt
Aktueller EPEX Spot-Strompreis fuer Deutschland.
0.01 USDC
{
  "current_price_ct_kwh": "8.40",
  "source": "EPEX DE/AT (aWATTar)"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /price/forecast 24h Preis-Forecast
EPEX Day-Ahead Preise mit Min/Max/Spread.
0.02 USDC
{
  "hours": 24,
  "stats_eur_mwh": {
    "avg": "92.10",
    "min": "40.20",
    "max": "160.00"
  }
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /carbon/now CO2-Intensitaet jetzt
Aktuelle CO2-Intensitaet des deutschen Strommix.
0.01 USDC
{
  "carbon_intensity_g_co2_kwh": 310,
  "classification": "medium"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /grid/load Netzlast
Aktuelle Netzlast aus SMARD.
0.02 USDC
{
  "latest_consumption_mwh": 57120,
  "source": "SMARD Bundesnetzagentur"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /renewable/share Erneuerbare Anteil
Live-Anteil erneuerbarer Energien am deutschen Strommix.
0.02 USDC
{
  "renewable_share_pct": "48.6",
  "source": "Fraunhofer ISE"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /flexibility/window Flexibility Window
Guensigste Zeitfenster fuer flexible Verbraucher.
0.03 USDC
{
  "best_hours": []
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /arbitrage/battery Battery Arbitrage
Strategie fuer Batteriespeicher-Arbitrage mit ROI-Betrachtung.
0.10 USDC
{
  "strategy": "charge_low_discharge_high",
  "estimated_profit_eur": 1.42
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /signals/buy-sell Buy/Sell Signal
Trading-Signal aus Preis, RSI, Trend, EE-Druck und Fossil-Anteil.
0.20 USDC
{
  "signal": "buy",
  "confidence": 0.72
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /bundle/ev-charging EV Charging Bundle
Preis, CO2 und Ladefenster fuer Elektroauto-Ladung.
0.05 USDC
{
  "recommendation": "charge_between_02_00_and_04_00"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /bundle/heating Heating Bundle
Preis, Wetter und EE-Anteil fuer Waermepumpen-Optimierung.
0.05 USDC
{
  "recommendation": "preheat_during_low_price_window"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /bundle/trading Trading Bundle
Kombinierte Markt- und Trading-Daten.
0.30 USDC
{
  "signal": "hold",
  "components": {}
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /bundle/esg-reporting ESG Reporting Bundle
CO2, EE-Anteil und Quellenhinweise fuer ESG-Reporting.
0.40 USDC
{
  "carbon_intensity_g_co2_kwh": 310,
  "renewable_share_pct": 48.6
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /history/prices Historische Preise
Stundendaten fuer EPEX-Preise nach Periode.
0.50 USDC
{
  "period": "last-7d",
  "rows": []
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /history/prices/stats Preisstatistik
Statistik fuer eine historische Preisperiode.
0.20 USDC
{
  "avg_eur_mwh": 92.1,
  "min_eur_mwh": 40.2,
  "max_eur_mwh": 160
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /solar/forecast Solar Forecast
Solarstrahlung und Bewoelkung fuer Region oder PLZ.
0.05 USDC
{
  "avg_solar_radiation": 220,
  "avg_cloudcover_pct": 54
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /wind/forecast Wind Forecast
Winddaten fuer Region oder PLZ.
0.03 USDC
{
  "avg_windspeed_ms": "5.7"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /subscribe/price-alert Price Alert Subscription
Webhook-Subscription fuer Strompreis-Thresholds.
5.00 USDC
{
  "success": true,
  "subscription": "price-alert"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /subscribe/co2-low CO2 Low Subscription
Webhook-Subscription fuer niedrige CO2-Intensitaet.
3.00 USDC
{
  "success": true,
  "subscription": "co2-low"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /optimizer/cheapest-window Cheapest Window
Billigstes zusammenhaengendes Zeitfenster fuer EV, Batterie oder Waermepumpe.
0.10 USDC
{
  "best_start": "2026-06-17T02:00:00.000Z",
  "best_end": "2026-06-17T04:00:00.000Z",
  "avg_price_ct_kwh": 4.8
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /price/negative-forecast Negative Price Forecast
Stunden mit negativen Strompreisen in den naechsten 24 Stunden.
0.05 USDC
{
  "negative_hours": [],
  "count": 0
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /summary/today Daily Summary
Token-effiziente Tageszusammenfassung mit konkreter Handlungsempfehlung.
0.10 USDC
{
  "market_sentiment": "neutral",
  "recommendation": "shift flexible load to cheapest window"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /grid/congestion Grid Congestion
Netzengpass- und Redispatch-Risiko.
0.15 USDC
{
  "risk_level": "medium",
  "affected_regions": []
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /region Regionale Energiedaten
Preis, CO2, Gruenstrom und Wetter fuer eine PLZ-Region.
0.05 USDC
{
  "plz": "48599",
  "region": "Gronau",
  "data": {}
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /mining/profitability BTC Mining Profitability
Profitabilitaet fuer ASIC-Mining mit aktuellem Strompreis.
0.10 USDC
{
  "profitable": false,
  "daily_profit_eur": -2.4
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /portfolio/optimize Portfolio Optimize
24h Fahrplan fuer Batterie, PV und Verbrauch.
0.50 USDC
{
  "plan": [
    {
      "hour": 0,
      "action": "charge"
    }
  ],
  "estimated_savings_eur": 3.2
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /score/grid-health Grid Health Score
Score 0-100 fuer Netzgesundheit aus EE-Anteil, Preis, Wetter und Nachfrage.
0.05 USDC
{
  "score": 74,
  "status": "good"
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error
POST /events/grid Grid Events
Ereignisfeed fuer Dunkelflaute, Sturm, negative Preise und Rekorde.
0.05 USDC
{
  "events": [
    {
      "type": "negative_price",
      "severity": "low"
    }
  ]
}
400: Invalid request
402: Payment Required
404: Not found
429: Rate limit exceeded
500: Internal server error

Discovery

OpenAPI · llms.txt · llms-full.txt · MCP well-known · Agent manifest

Contact / Operator

Operator: Die Netzhandwerker, Daniel Wesseling. Contact: [email protected].