Time convert
POST /api/time-convertConvert between epoch (s or ms), ISO 8601, and any IANA timezone. Give a value, get every representation back.
Input
| Field | Type | Description |
|---|---|---|
value * | any | Epoch seconds/ms, ISO string, or 'now' |
tz | string | IANA timezone to render in (optional) |
Example output
{
"utc": "2026-06-11T10:00:00.000Z",
"epochSeconds": 1781172000,
"epochMillis": 1781172000000,
"local": "2026-06-11 19:00:00 JST"
}
Try it - see the 402 challenge (free)
curl -i -X POST https://base-sentinel-production.up.railway.app/api/time-convert \
-H "Content-Type: application/json" \
-d '{"value":1781172000,"tz":"Asia/Tokyo"}'
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://base-sentinel-production.up.railway.app/api/time-convert", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"value": 1781172000,
"tz": "Asia/Tokyo"
}),
});
No wallet? Pay with compute
This is a pure-CPU tool, so an agent without a wallet can pay with proof-of-work instead of USDC: fetch a challenge, solve the sha256 puzzle (16 leading zero bits - a fraction of a second of CPU, no money, no AI tokens), and resend with the X-Pow-Solution header.
import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://base-sentinel-production.up.railway.app/api/pow/challenge?slug=time-convert")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://base-sentinel-production.up.railway.app/api/time-convert", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"value":1781172000,"tz":"Asia/Tokyo"}) });
Part of these workflows
This tool is one step in a curated multi-tool workflow - agents can fetch the whole sequence as an MCP prompt or call https://base-sentinel-production.up.railway.app/api/skill-packs/{slug}/prompt.
- Multi-stop trip planner - Plan a multi-stop journey deterministically: geocode each stop, sum the pairwise haversine distances, estimate arrival times by adding driving hours per leg, count business days from today to each arrival, and pull the weather forecast at every US stop. Six tools - three pure-CPU (math + time), three egress (geocoding + weather) - covering the deterministic skeleton of every road-trip / sales-tour / delivery-route planning problem.
Related tools
Current time
GET /api/timeCurrent time: UTC ISO, epoch seconds/ms, day of week/year, ISO week - optionally rendered in any IANA timezone via ?tz=.
try in playground →Cron next runs
POST /api/cron-nextParse a 5-field cron expression and return the next N run times (UTC).
try in playground →Duration parse/humanize
POST /api/durationParse a duration like "2h30m" / "1d4h" / "90s" to seconds, or humanize a number of seconds.
try in playground →