78trust / 100
Time Dst
by Duo Data Utilities in Weather & location
x402 APIPassing, checked 11 min ago
List the daylight-saving transitions for an IANA time zone over a date range: the exact instant of each shift, the offset before and after, and whether local clocks jump forward or back. Returns the current offset and DST state, and the next transition from a given instant. Zones without DST return an empty transition list rather than an error.
GET https://api.duoleads.com/v1/time/dst
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 133 ms typical, 512 ms slowest 5%
- Last check
- 11 min ago
- Next check
- in 20 min
How to call it
# See the payment challenge (nothing is charged)
curl -i -X GET "https://api.duoleads.com/v1/time/dst?from=2026-01-01&years=1&zone=Europe%2FAmsterdam"import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.duoleads.com%2Fv1%2Ftime%2Fdst
const res = await pay("https://api.duoleads.com/v1/time/dst?from=2026-01-01&years=1&zone=Europe%2FAmsterdam");
console.log(await res.json());Example input
{
"from": "2026-01-01",
"years": "1",
"zone": "Europe/Amsterdam"
}Example output
{
"data": {
"current": {
"abbreviation": "GMT+1",
"dst": false,
"offset": "+01:00",
"offset_seconds": 3600
},
"next": {
"abbreviation_after": "GMT+2",
"abbreviation_before": "GMT+1",
"at": "2026-03-29T01:00:00.000Z",
"delta_seconds": 3600,
"direction": "forward",
"local_after": "2026-03-29T03:00:00",
"local_before": "2026-03-29T01:59:59",
"offset_after": "+02:00",
"offset_before": "+01:00"
},
"observes_dst": true,
"transitions": [
{
"abbreviation_after": "GMT+2",
"abbreviation_before": "GMT+1",
"at": "2026-03-29T01:00:00.000Z",
"delta_seconds": 3600,
"direction": "forward",
"local_after": "2026-03-29T03:00:00",
"local_before": "2026-03-29T01:59:59",
"offset_after": "+02:00",
"offset_before": "+01:00"
},
{
"abbreviation_after": "GMT+1",
"abbreviation_before": "GMT+2",
"at": "2026-10-25T01:00:00.000Z",
"delta_seconds": -3600,
"direction": "back",
"local_after": "2026-10-25T02:00:00",
"local_before": "2026-10-25T02:59:59",
"offset_after": "+01:00",
"offset_before": "+02:00"
}
],
"zone": "Europe/Amsterdam"
},
"meta": {
"computed_at": "2026-09-28T12:00:00.000Z",
"deterministic": true,
"disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
"price_usd": "0.05",
"request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D"
},
"ok": true,
"route": "/v1/time/dst",
"version": "1.0.0"
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 11 min ago | Passed | 402 | 512 ms | $0.05 |
| 4 h ago | Passed | 402 | 417 ms | $0.05 |
| 7 h ago | Passed | 402 | 133 ms | $0.05 |
| 11 h ago | Passed | 402 | 111 ms | $0.05 |
| 15 h ago | Passed | 402 | 109 ms | $0.05 |
| 18 h ago | Passed | 402 | 482 ms | $0.05 |
| 22 h ago | Passed | 402 | 707 ms | $0.05 |
| 25 h ago | Passed | 402 | 507 ms | $0.05 |
| 29 h ago | Passed | 402 | 43 ms | $0.05 |
| 33 h ago | Passed | 402 | 134 ms | $0.05 |
| 36 h ago | Passed | 402 | 49 ms | $0.05 |
| 41 h ago | Passed | 402 | 45 ms | $0.05 |