API docs

GetNowDate endpoints

Call the API with your workspace ID in the path. Unknown IDs return HTTP 404. Requests need a known origin/IP, or a valid signature if they come from your backend.

Backend request signing

For backend calls, sign requests with the signing key from your workspace settings.

Signature formula: base64(hmac_sha256(full_path + timestamp_ms))

  • full_path is the path starting with /api, including query
  • timestamp_ms is current Unix time in milliseconds (max 5 min skew)

Send these headers with your request:

  • X-Signature is the result of the formula above
  • X-Signature-Timestamp is timestamp_ms

Unsigned calls must come from your allowed domains or IPs.

GET

Current value

Return the current date/time value for the entity in the requested format.

/api/:tenant/get/:entity.json

Path params

tenantYour Workspace ID in the path.
entityOne of date, time, datetime, timestamp, iso.
formatOptional. Defaults to text. One of json, text, yaml, xml, png*, svg*.

Query params

tzHour offset, e.g. -5 or 2. Defaults to request geolocation.
localeBCP 47 locale, e.g. en-GB or uk-UA. Defaults to request locale.
precisionOne of year, month, day, hour, minute, second (entity-dependent).
customCustom pattern using YYYY, MM, DD, HH, mm, ss. Overrides precision.
cacheoff/none/false/0 to bypass edge cache (still consumes quota).

Response

{
  "date": "2025-02-01",
  "timezoneOffset": 2,
  "locale": "en-GB"
}

* SVG responses available on the Unlimited plan. † PNG responses are planned.

Error codes

  • 400 - Invalid path or precision.
  • 402 - Monthly quota exhausted.
  • 403 - Origin/IP not allowed or signature missing/invalid.
  • 404 - Unknown workspace or route.
  • 405 - Only GET allowed.
  • 429 - Rate limit exceeded.

GET

Convert value

Convert the provided value (e.g. ISO datetime) using the requested precision/format.

/api/:tenant/get/:entity/:value.json

Path params

tenantYour Workspace ID in the path.
entitydate, time, datetime, timestamp, iso.
valueInput value to convert (e.g. ISO datetime).
formatOptional. Defaults to text. json, text, yaml, xml, png*, svg*.

Query params

precisionOne of year, month, day, hour, minute, second.
customCustom pattern (YYYY, MM, DD, HH, mm, ss).
tzHour offset for the output. If input lacks timezone, we fall back to request locale or this override.
cacheoff/none/false/0 to bypass edge cache.

Response

{
  "datetime": "2025-01-01T12:00:00Z",
  "precision": "minute"
}

* SVG responses available on the Unlimited plan. † PNG responses are planned.

Error codes

  • 400 - Invalid input value or precision.
  • 402 - Monthly quota exhausted.
  • 403 - Origin/IP not allowed or signature missing/invalid.
  • 404 - Unknown workspace or route.
  • 405 - Only GET allowed.
  • 429 - Rate limit exceeded.

GET

Timer (Unlimited)

Signed countdown/countup (SVG*, PNG† roadmap) for the target datetime (Unlimited plan, no per-timer cap). Images are fixed-size today. Sizing params will arrive with minimum aspect-ratio guards.

/api/:tenant/timer/:target.json

Path params

tenantYour Workspace ID in the path.
targetISO datetime or epoch (ms/s) to count toward.
formatOptional. Defaults to text. json, text, yaml, xml, png†, svg*.

Query params

labelOptional label above the timer (max 40 chars).
textColorHex or transparent. Default #ffffff.
bgColorHex or transparent. Default #111827.
fontSize16-120 px. Default 48.
countup1/true/yes/on to count up after the target.
tzHour offset to evaluate the target. Defaults to request geolocation.

Response

{
  "timer": "2025-12-31T23:59:00Z",
  "mode": "countdown"
}

* SVG responses available on the Unlimited plan. † PNG responses are planned.

Error codes

  • 400 - Missing target or invalid format.
  • 402 - Monthly quota exhausted.
  • 403 - Origin/IP not allowed or signature missing/invalid.
  • 404 - Unknown workspace or route.
  • 405 - Only GET allowed.
  • 429 - Rate limit exceeded.