GAL-2™ — Quickstart

The world’s first drift-corrected time API.
Five-Minute Quickstart
Purchase → key by email → call API → see drift instantly.
Start Now →

Step 1 — Interactive test

Your key arrives automatically after checkout (no-reply@gal-2.com). Never put keys in URLs; use the x-api-key header.
Response will appear here…

Quick tests

HTTP 200 means your key works.
curl -i https://api-v2.gal-2.com/status
curl -i -H "x-api-key: YOUR_KEY" https://api-v2.gal-2.com/time

Response format

{
  "gal2_time": "2025-09-17T18:02:47.473461Z",
  "utc_time":  "2025-09-17T18:02:47.484000Z",
  "drift_ms":  -7.83,
  "base_ms":   -7.83,
  "wobble_ms": -2.836,
  "live_ms":   -10.539,
  "fractal_factor": 3.761473,
  "source": "fractal+secret(hmac)+emma"
}
  • gal2_time — use for logs, billing, and triggers.
  • drift_ms — local clock deviation (monitor & alert).
  • wobble_ms / live_ms — network jitter / live conditions.
  • fractal_factor — authenticity fingerprint.

cURL

curl -s -H "x-api-key: YOUR_KEY" https://api-v2.gal-2.com/time | jq
Add --max-time 3; retry with exponential backoff on 429/5xx.

Node.js

import fetch from "node-fetch";
const res = await fetch("https://api-v2.gal-2.com/time",{ headers:{"x-api-key":process.env.GAL2_KEY}, timeout:3000 });
if (!res.ok) throw new Error(\`HTTP \${res.status}\`);
console.log(await res.json());

Python

import os, requests
r = requests.get("https://api-v2.gal-2.com/time", headers={"x-api-key": os.environ["GAL2_KEY"]}, timeout=3)
r.raise_for_status()
print(r.json())

Go

package main
import ("os";"net/http";"time";"io";"encoding/json";"fmt")
func main(){
  req,_ := http.NewRequest("GET","https://api-v2.gal-2.com/time", nil)
  req.Header.Set("x-api-key", os.Getenv("GAL2_KEY"))
  c := &http.Client{ Timeout: 3 * time.Second }
  resp,err := c.Do(req); if err!=nil || resp.StatusCode!=200 { panic("request failed") }
  defer resp.Body.Close(); b,_ := io.ReadAll(resp.Body)
  var v map[string]any; json.Unmarshal(b,&v)
  fmt.Println("gal2_time:", v["gal2_time"], "drift_ms:", v["drift_ms"])
}

Real-world use cases

// Example: record drift for auditing (Node)
const res = await fetch("https://api-v2.gal-2.com/time",{ headers:{ "x-api-key": process.env.GAL2_KEY }});
const t = await res.json();
await db.insert("time_logs",{ ts: t.gal2_time, drift: t.drift_ms });

Why GAL-2™ over NTP/PTP?

CapabilityNTP/PTPGAL-2™
Drift correctionManual / externalBuilt-in: drift_ms + jitter metrics
Global consistencyRegion jitter variesAPI-first, cloud-native, consistent surface
Audit trailDIY loggingFirst-class: log gal2_time + drift_ms
HardwareOften specializedZero hardware; works anywhere

Error handling

  • 401 Unauthorized → check your key / subscription.
  • 429 Too Many Requests → reduce QPS or upgrade; use exponential backoff.
  • 5xx → retry (1–3) with backoff; contact support if it persists.

Best practices

  • ISO-8601 UTC (“Z”).
  • Cache 100–500 ms as needed.
  • Retries with exponential backoff.
  • Never put keys in URLs; use headers.
  • Log gal2_time + drift_ms with your events.

Resources

Ready to build drift-free?

GAL-2™ isn’t another API — it’s the reliability layer your time-critical systems were missing.
Check API Status Talk to us