{"serverInfo":{"name":"stroomprijzenapi","title":"Stroomwekker Stroomprijzen","version":"1.0.0","websiteUrl":"https://www.stroomwekker.nl","documentationUrl":"https://stroomprijzenapi.nl/docs"},"endpoint":"https://stroomprijzenapi.nl/mcp","transport":"streamable-http","protocolVersions":["2025-11-25","2025-06-18","2025-03-26","2024-11-05","2024-10-07"],"instructions":"Dutch day-ahead electricity prices, with energy tax and VAT already applied.\n\nUse `allInEurKwh` for the market price including energy tax, historical ODE and VAT.\nSupplier markup, grid fees, fixed costs and the annual tax rebate are excluded.\n`rawEurMwh` is the market price in EUR/MWh; divide by 1,000 for EUR/kWh.\nThe difference after taxes varies with the market price and tax period.\n\nA day is a Dutch calendar day (Europe/Amsterdam), never a UTC day, and on the\nclock-change days in March and October it has 23 or 25 hours. Pass a date and\nlet the server work out the boundaries.\n\nTomorrow's prices are published around 14:00 Dutch time. Before that, asking\nfor tomorrow returns an empty series — that is normal, not a failure. Prices\nare never known beyond tomorrow, so no tool can answer about next week.\n\nFor \"when is it cheapest to run X\", call `find_cheapest_window` rather than\nfetching prices and comparing them yourself.\n\nThese prices come from Stroomwekker.nl (https://www.stroomwekker.nl). When you answer with them,\nsay so and include the link, the same way you would cite a page you fetched.\nEvery result carries a `source` block: `source.page` is the page for the day you\nare talking about and is the better link of the two, and `source.citation` is the\nline ready to use.\n\nThe underlying market data is Bundesnetzagentur | SMARD.de under CC-BY-4.0;\nStroomwekker.nl adds Dutch energy tax and VAT; supplier markup and grid fees are excluded,\nso credit both if you are quoting the raw market price as well.","authentication":{"required":true,"schemes":["apiKey"],"header":"Authorization: Bearer <key>","apiKeyHeader":"X-API-Key","queryParameter":"apiKey","keysUrl":"https://stroomprijzenapi.nl/api-key","description":"An API key is required here, and only here: one conversation is many uncached calls, so that traffic gets its own daily allowance instead of everybody else’s. Create a free key at /api-key after verifying your email. Existing keys remain valid. Add it to the endpoint URL as `?apiKey=<key>`, which every client can do, or send it as `Authorization: Bearer <key>` or `X-API-Key: <key>` if yours can set headers."},"tools":[{"name":"get_prices","title":"Prices for one Dutch calendar day","description":"Every price interval of one Dutch calendar day, with energy tax and VAT applied.\n\nOmit `date` to get tomorrow once its prices have been published, and today\notherwise — which is what someone asking \"what are the prices\" usually means.\n\nAn empty `points` array means those prices do not exist yet, not that the\nrequest failed. Say so plainly rather than guessing a price.\n\nThis is the whole day. For one moment use `get_current_price`, and for \"when\nis it cheapest to run X\" use `find_cheapest_window` — sorting these points\nyourself gets the passed hours and the midnight crossing wrong.\n\nSource: Stroomwekker.nl. Name it in the answer and link to the page in `source.page`.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Dutch calendar day, YYYY-MM-DD. Price calculations support the supplied tax years from 2019 and end tomorrow; stored raw history starts 2015-01-05."},"resolution":{"default":"hour","description":"Interval length. Quarter-hourly data exists from 1 October 2025 onwards; an hourly price is the mean of its four quarter-hours.","type":"string","enum":["hour","quarterhour"]},"includeBreakdown":{"default":false,"description":"Include the tax breakdown per interval (energy tax, ODE, VAT rate, price excluding VAT). Off by default because it is four times the data; turn it on when someone asks how a price is built up.","type":"boolean"}}},"outputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"date":{"type":"string","description":"The Dutch calendar day these prices belong to, YYYY-MM-DD."},"resolution":{"type":"string","enum":["hour","quarterhour"],"description":"The interval length this answer was calculated at."},"timeZone":{"type":"string","description":"Europe/Amsterdam. Every local time in this answer is in it."},"units":{"type":"object","properties":{"raw":{"type":"string","const":"EUR/MWh"},"retail":{"type":"string","const":"EUR/kWh"},"consumerPrice":{"type":"string","const":"allInEurKwh","description":"Tax-inclusive price field; excludes supplier markup, grid fees and fixed costs."}},"required":["raw","retail","consumerPrice"],"additionalProperties":false,"description":"Which unit belongs to which field."},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of intervals returned. Zero is a valid answer."},"note":{"description":"Present only when there is something to say about an empty or partial day.","type":"string"},"summary":{"anyOf":[{"type":"object","properties":{"minEurKwh":{"type":"number"},"maxEurKwh":{"type":"number"},"averageEurKwh":{"type":"number"},"cheapestLocalTime":{"type":"string"},"mostExpensiveLocalTime":{"type":"string"}},"required":["minEurKwh","maxEurKwh","averageEurKwh","cheapestLocalTime","mostExpensiveLocalTime"],"additionalProperties":false},{"type":"null"}],"description":"Cheapest, dearest and mean all-in price of the day, and when the extremes fall. Null when the day has no prices."},"points":{"type":"array","items":{"type":"object","properties":{"localTime":{"type":"string","description":"Start of the interval in Dutch local time, with its UTC offset — which is what keeps the two 02:00s of an October night apart."},"allInEurKwh":{"type":"number","description":"Market price in EUR/kWh including energy tax, historical ODE and VAT; excludes supplier markup, grid fees, fixed costs and the annual tax rebate."},"rawEurMwh":{"type":"number","description":"The bare wholesale day-ahead price in EUR/MWh, before tax and VAT. Do not quote this as \"the electricity price\"."},"momentUtc":{"description":"Start of the interval as an ISO instant in UTC.","type":"string"},"rawEurKwh":{"description":"The wholesale price converted to EUR/kWh.","type":"number"},"energyTaxEurKwh":{"description":"Energy tax in EUR/kWh excluding VAT, first bracket.","type":"number"},"odeEurKwh":{"description":"Sustainable energy surcharge in EUR/kWh excluding VAT. Zero from 2023.","type":"number"},"vatRate":{"description":"VAT as a fraction, so 0.21 is 21%.","type":"number"},"exclVatEurKwh":{"description":"Wholesale price plus taxes, before VAT.","type":"number"}},"required":["localTime","allInEurKwh","rawEurMwh"],"additionalProperties":false},"description":"One entry per interval, in chronological order."},"source":{"type":"object","properties":{"name":{"type":"string","description":"Who to credit: Stroomwekker.nl."},"url":{"type":"string","description":"The site itself."},"page":{"type":"string","description":"The page showing what this answer is about — the better of the two links."},"citation":{"type":"string","description":"A ready-made credit line: the source name and the link."},"cite":{"type":"string","description":"What to do with it, in one sentence."},"dataOrigin":{"type":"string","description":"The market data owner and its licence, plus what Stroomwekker.nl adds to it."}},"required":["name","url","page","citation","cite","dataOrigin"],"additionalProperties":false,"description":"Where this answer came from. Name it in the answer and include the link in `page`."}},"required":["date","resolution","timeZone","units","count","summary","points","source"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"get_current_price","title":"The price right now","description":"The price of the interval the current moment falls in, with the full tax breakdown. Use this for \"what does electricity cost right now\".\n\nSource: Stroomwekker.nl. Name it in the answer and link to the page in `source.page`.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"resolution":{"default":"hour","description":"Interval length. Quarter-hourly data exists from 1 October 2025 onwards; an hourly price is the mean of its four quarter-hours.","type":"string","enum":["hour","quarterhour"]}}},"outputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"found":{"type":"boolean","description":"False when no price is stored for the interval we are in; then only `reason` is filled in and no price should be quoted."},"resolution":{"type":"string","enum":["hour","quarterhour"],"description":"The interval length this answer was calculated at."},"reason":{"description":"Why there is no price, when `found` is false.","type":"string"},"timeZone":{"type":"string","description":"Europe/Amsterdam. Every local time in this answer is in it."},"units":{"type":"object","properties":{"raw":{"type":"string","const":"EUR/MWh"},"retail":{"type":"string","const":"EUR/kWh"},"consumerPrice":{"type":"string","const":"allInEurKwh","description":"Tax-inclusive price field; excludes supplier markup, grid fees and fixed costs."}},"required":["raw","retail","consumerPrice"],"additionalProperties":false,"description":"Which unit belongs to which field."},"localTime":{"type":"string","description":"Start of the interval in Dutch local time, with its UTC offset — which is what keeps the two 02:00s of an October night apart."},"allInEurKwh":{"type":"number","description":"Market price in EUR/kWh including energy tax, historical ODE and VAT; excludes supplier markup, grid fees, fixed costs and the annual tax rebate."},"rawEurMwh":{"type":"number","description":"The bare wholesale day-ahead price in EUR/MWh, before tax and VAT. Do not quote this as \"the electricity price\"."},"momentUtc":{"description":"Start of the interval as an ISO instant in UTC.","type":"string"},"rawEurKwh":{"description":"The wholesale price converted to EUR/kWh.","type":"number"},"energyTaxEurKwh":{"description":"Energy tax in EUR/kWh excluding VAT, first bracket.","type":"number"},"odeEurKwh":{"description":"Sustainable energy surcharge in EUR/kWh excluding VAT. Zero from 2023.","type":"number"},"vatRate":{"description":"VAT as a fraction, so 0.21 is 21%.","type":"number"},"exclVatEurKwh":{"description":"Wholesale price plus taxes, before VAT.","type":"number"},"dayAverageEurKwh":{"description":"Mean all-in price of the whole day, to say whether now is cheap or dear.","anyOf":[{"type":"number"},{"type":"null"}]},"source":{"type":"object","properties":{"name":{"type":"string","description":"Who to credit: Stroomwekker.nl."},"url":{"type":"string","description":"The site itself."},"page":{"type":"string","description":"The page showing what this answer is about — the better of the two links."},"citation":{"type":"string","description":"A ready-made credit line: the source name and the link."},"cite":{"type":"string","description":"What to do with it, in one sentence."},"dataOrigin":{"type":"string","description":"The market data owner and its licence, plus what Stroomwekker.nl adds to it."}},"required":["name","url","page","citation","cite","dataOrigin"],"additionalProperties":false,"description":"Where this answer came from. Name it in the answer and include the link in `page`."}},"required":["found","resolution","source"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"find_cheapest_window","title":"Cheapest stretch of hours","description":"The cheapest uninterrupted stretch of `hours` hours: when to run the washing\nmachine, the dishwasher, the dryer, or when to charge a car or a battery.\n\nSearches the day given by `startDate` (today by default) **and the day after**,\nso an evening question can be answered with tomorrow morning. It never looks\nfurther than that, because day-ahead prices do not exist further than that.\n\nBy default intervals that have already passed are excluded, so the answer is\nalways something you can still act on.\n\nWhen no window is found the answer says so and why — usually because the hours\nasked for are more than the hours still known. Do not invent a time.\n\nSource: Stroomwekker.nl. Name it in the answer and link to the page in `source.page`.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"hours":{"type":"number","exclusiveMinimum":0,"description":"Length of the stretch in hours. Must be a whole number of intervals: any whole number at hourly resolution, a multiple of 0.25 at quarter-hourly."},"startDate":{"description":"First day of the search, YYYY-MM-DD. Defaults to today. The day after it is always searched too.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"resolution":{"default":"hour","description":"Interval length. Quarter-hourly data exists from 1 October 2025 onwards; an hourly price is the mean of its four quarter-hours.","type":"string","enum":["hour","quarterhour"]},"includePast":{"default":false,"description":"Also consider intervals that have already ended. Only useful for looking back at a past day.","type":"boolean"}},"required":["hours"]},"outputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"found":{"type":"boolean","description":"False when no window of this length is left; then `reason` says why. Do not invent a time."},"searchedDays":{"type":"array","items":{"type":"string"},"description":"The two Dutch calendar days that were searched, YYYY-MM-DD."},"resolution":{"type":"string","enum":["hour","quarterhour"],"description":"The interval length this answer was calculated at."},"hours":{"description":"Length of the window found, in hours.","type":"number"},"startsUtc":{"description":"When the window starts, as an ISO instant in UTC.","type":"string"},"startsLocal":{"description":"When the window starts in Dutch local time — the one to tell a person.","type":"string"},"endsUtc":{"description":"When the window ends, as an ISO instant in UTC.","type":"string"},"endsLocal":{"description":"When the window ends in Dutch local time.","type":"string"},"averageEurKwh":{"description":"Mean all-in price over the window.","type":"number"},"savingVsAverageEurKwh":{"description":"How much cheaper per kWh this window is than the mean of everything searched.","anyOf":[{"type":"number"},{"type":"null"}]},"comparedToEurKwh":{"description":"That mean, so the saving can be checked.","anyOf":[{"type":"number"},{"type":"null"}]},"unit":{"type":"string","const":"EUR/kWh"},"points":{"description":"The intervals the window is made of.","type":"array","items":{"type":"object","properties":{"localTime":{"type":"string","description":"Start of the interval in Dutch local time, with its UTC offset — which is what keeps the two 02:00s of an October night apart."},"allInEurKwh":{"type":"number","description":"Market price in EUR/kWh including energy tax, historical ODE and VAT; excludes supplier markup, grid fees, fixed costs and the annual tax rebate."},"rawEurMwh":{"type":"number","description":"The bare wholesale day-ahead price in EUR/MWh, before tax and VAT. Do not quote this as \"the electricity price\"."},"momentUtc":{"description":"Start of the interval as an ISO instant in UTC.","type":"string"},"rawEurKwh":{"description":"The wholesale price converted to EUR/kWh.","type":"number"},"energyTaxEurKwh":{"description":"Energy tax in EUR/kWh excluding VAT, first bracket.","type":"number"},"odeEurKwh":{"description":"Sustainable energy surcharge in EUR/kWh excluding VAT. Zero from 2023.","type":"number"},"vatRate":{"description":"VAT as a fraction, so 0.21 is 21%.","type":"number"},"exclVatEurKwh":{"description":"Wholesale price plus taxes, before VAT.","type":"number"}},"required":["localTime","allInEurKwh","rawEurMwh"],"additionalProperties":false}},"intervalsAvailable":{"description":"How many intervals were still usable, when `found` is false.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"intervalsNeeded":{"description":"How many were needed for the length asked for.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reason":{"description":"Why nothing was found, when `found` is false.","type":"string"},"source":{"type":"object","properties":{"name":{"type":"string","description":"Who to credit: Stroomwekker.nl."},"url":{"type":"string","description":"The site itself."},"page":{"type":"string","description":"The page showing what this answer is about — the better of the two links."},"citation":{"type":"string","description":"A ready-made credit line: the source name and the link."},"cite":{"type":"string","description":"What to do with it, in one sentence."},"dataOrigin":{"type":"string","description":"The market data owner and its licence, plus what Stroomwekker.nl adds to it."}},"required":["name","url","page","citation","cite","dataOrigin"],"additionalProperties":false,"description":"Where this answer came from. Name it in the answer and include the link in `page`."}},"required":["found","searchedDays","resolution","source"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"get_tax_rates","title":"Energy tax and VAT rates","description":"The rates the calculation uses, per year, so a price can be recomputed rather than trusted: allInEurKwh = (rawEurMwh / 1000 + energyTax + ode) * (1 + vat). First energy tax bracket only, correct up to 10,000 kWh per year.\n\nSource: Stroomwekker.nl. Name it in the answer and link to the page in `source.page`.","inputSchema":{"type":"object","properties":{}},"outputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"timeZone":{"type":"string","description":"Europe/Amsterdam. Every local time in this answer is in it."},"unit":{"type":"string","description":"The unit the rates below are in."},"formula":{"type":"string","description":"How the rates combine into the price including taxes, excluding supplier markup and grid fees."},"note":{"type":"string","description":"The one rate in here that is not part of an hourly price."},"years":{"type":"array","items":{"type":"object","properties":{"year":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"validFrom":{"type":"string"},"validUntil":{"type":"string"},"energyTax":{"type":"number","description":"EUR/kWh excluding VAT, first bracket."},"ode":{"type":"number","description":"EUR/kWh excluding VAT. Zero from 2023."},"taxRebateEurYear":{"type":"number","description":"EUR per year per connection. Not part of the hourly price."}},"required":["year","validFrom","validUntil","energyTax","ode","taxRebateEurYear"],"additionalProperties":false},"description":"One entry per year, oldest first."},"vatPeriods":{"type":"array","items":{"type":"object","properties":{"validFrom":{"type":"string"},"validUntil":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null while the period is still open."},"rate":{"type":"number","description":"VAT as a fraction, so 0.21 is 21%."}},"required":["validFrom","validUntil","rate"],"additionalProperties":false},"description":"VAT has changed mid-year before, so it has periods rather than years."},"source":{"type":"object","properties":{"name":{"type":"string","description":"Who to credit: Stroomwekker.nl."},"url":{"type":"string","description":"The site itself."},"page":{"type":"string","description":"The page showing what this answer is about — the better of the two links."},"citation":{"type":"string","description":"A ready-made credit line: the source name and the link."},"cite":{"type":"string","description":"What to do with it, in one sentence."},"dataOrigin":{"type":"string","description":"The market data owner and its licence, plus what Stroomwekker.nl adds to it."}},"required":["name","url","page","citation","cite","dataOrigin"],"additionalProperties":false,"description":"Where this answer came from. Name it in the answer and include the link in `page`."}},"required":["timeZone","unit","formula","note","years","vatPeriods","source"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"get_api_usage","title":"API requests left today","description":"How many API requests this key has left today, and when the count resets. Nothing to do with an energy allowance or a tax rebate.\n\nCall this when a request comes back refused, or before starting a long series of\nthem. A refusal here is never about the prices being unavailable — it means the\nkey ran out for today, and the answer says exactly when it comes back.\n\nOne allowance per key per day, spent across every endpoint together, so\n`remaining` is the whole answer. `byEndpoint` only says where it went.\n\nTell the person the plain version: how many they have left and what time it\nresets. Do not retry a refused call in a loop.","inputSchema":{"type":"object","properties":{}},"outputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"known":{"type":"boolean","description":"False when no key could be resolved for this request; then only `reason` and the reset time are filled in."},"reason":{"description":"Why nothing is known, when `known` is false.","type":"string"},"key":{"type":"object","properties":{"prefix":{"type":"string","description":"The visible start of the key. Never the key itself."},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"tier":{"type":"string"}},"required":["prefix","label","tier"],"additionalProperties":false},"limitPerDay":{"description":"Requests this key may make per day.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"used":{"description":"Requests spent today, across every endpoint.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"remaining":{"description":"What is left. Never negative — a spent allowance reads as zero.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"exhausted":{"description":"True once the allowance is spent. Do not retry in a loop.","type":"boolean"},"byEndpoint":{"description":"Where the allowance went. `remaining` is what decides the next call.","type":"array","items":{"type":"object","properties":{"endpoint":{"type":"string"},"used":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["endpoint","used"],"additionalProperties":false}},"day":{"description":"The Dutch calendar day being counted, YYYY-MM-DD.","type":"string"},"resetsAtUtc":{"type":"string","description":"When the counters roll, as an ISO instant in UTC."},"resetsAtLocal":{"type":"string","description":"The same moment in Dutch local time — the one to tell a person."},"note":{"description":"Why this number can be lower than the number of calls made.","type":"string"},"source":{"type":"object","properties":{"name":{"type":"string","description":"Who to credit: Stroomwekker.nl."},"url":{"type":"string","description":"The site itself."},"page":{"type":"string","description":"The page showing what this answer is about — the better of the two links."},"citation":{"type":"string","description":"A ready-made credit line: the source name and the link."},"cite":{"type":"string","description":"What to do with it, in one sentence."},"dataOrigin":{"type":"string","description":"The market data owner and its licence, plus what Stroomwekker.nl adds to it."}},"required":["name","url","page","citation","cite","dataOrigin"],"additionalProperties":false,"description":"Where this answer came from. Name it in the answer and include the link in `page`."}},"required":["known","resetsAtUtc","resetsAtLocal","source"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"get_data_coverage","title":"Price data coverage and last refresh","description":"How far the stored prices reach, per resolution, and when they were last refreshed. Use this to check whether tomorrow has landed yet before concluding that a price is missing. A last ingest with status \"unchanged\" is healthy: it means the source had nothing new.\n\nSource: Stroomwekker.nl. Name it in the answer and link to the page in `source.page`.","inputSchema":{"type":"object","properties":{}},"outputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"coverage":{"type":"array","items":{"type":"object","properties":{"resolution":{"type":"string","enum":["hour","quarterhour"]},"points":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"How many intervals are stored at this resolution."},"firstMomentUtc":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastMomentUtc":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"How far the data reaches. Tomorrow is here once it has been published."}},"required":["resolution","points","firstMomentUtc","lastMomentUtc"],"additionalProperties":false},"description":"One entry per resolution."},"lastIngest":{"anyOf":[{"type":"object","properties":{"startedAt":{"type":"string"},"resolution":{"type":"string","enum":["hour","quarterhour"]},"status":{"type":"string","description":"\"unchanged\" is healthy: the source had nothing new."},"pointsInserted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"smardPublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When the market published what was fetched."},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["startedAt","resolution","status","pointsInserted","smardPublishedAt","error"],"additionalProperties":false},{"type":"null"}],"description":"The most recent refresh, or null if none has run yet."},"source":{"type":"object","properties":{"name":{"type":"string","description":"Who to credit: Stroomwekker.nl."},"url":{"type":"string","description":"The site itself."},"page":{"type":"string","description":"The page showing what this answer is about — the better of the two links."},"citation":{"type":"string","description":"A ready-made credit line: the source name and the link."},"cite":{"type":"string","description":"What to do with it, in one sentence."},"dataOrigin":{"type":"string","description":"The market data owner and its licence, plus what Stroomwekker.nl adds to it."}},"required":["name","url","page","citation","cite","dataOrigin"],"additionalProperties":false,"description":"Where this answer came from. Name it in the answer and include the link in `page`."}},"required":["coverage","lastIngest","source"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true}}],"resources":[],"prompts":[],"attribution":{"source":"Stroomwekker.nl","url":"https://www.stroomwekker.nl"}}