Skip to content

Platform primitives

The same building blocks we use to run Latency, handed to you. Each platform primitive is a small HTTP API that nails one job (resolve a name, locate an IP, size up a host), and they're built to snap together.

Want proof they compose? The host inspector is really just geo + DNS + status catalog stacked into a single answer. Nothing behind the curtain you can't call yourself.

The primitives

PrimitiveWhat it doesAuthStatus
DNSDNS-over-HTTPS resolver (RFC 8484 wire + JSON).PublicLive
GeoGeolocation and network operator (ASN) for an IP.PublicLive
InspectEverything we know about a host, in one call.PublicLive
Status catalogLive status of major providers, reconciled against our probes.PublicLive
IncidentsConfirmed and crowd-reported outages for a target.PublicLive
SearchFind services and popular domains.PublicLive
Key–value storeDurable, workspace-scoped storage for your functions.AccountBeta

Public vs. account

Public primitives need no sign-up and are rate-limited per IP. Point a tool at them and go. Account primitives store data on your behalf and require an API key. See Authentication.

Base URL

All primitives live under a single versioned host:

https://ws.latency.app/v1/

Conventions

  • Format. Responses are JSON unless a primitive documents otherwise (the DNS wire format returns binary).
  • Rate limits. Public primitives are limited per client IP. Exceeding a limit returns 429 with a JSON body; slow down and retry.
  • Errors. Failures return a non-2xx status and a JSON body of the shape { "error": "<code>" }, sometimes with a detail field.
  • No secrets in URLs. For account primitives, send your key in the Authorization header, never in the query string.

Rate limits

Public primitives are metered per client IP so one caller cannot starve the rest. Over a limit you get 429 with { "error": "rate_limited" } and a Retry-After header, slow down and retry.

SurfaceDefault limit (per IP)Notes
Public primitives (geo, inspect, status catalog, incidents, search)~1,200 requests/min (shared budget)Strict on purpose, these are a shared public good, not a scraping backend.
DNS-over-HTTPS resolver600 requests/minFree and unmetered, on the house. Never counted against any plan quota.
Running a published Function120 executions/minStricter, because each call runs code.

Going past the public limits

The public budgets are sized for interactive and light programmatic use. For sustained or high-volume access, authenticate with an API key: account calls are governed by your plan quotas instead of the shared public budget. Heavy anonymous use will see 429s well before an authenticated caller would.

DNS is the exception

The resolver is deliberately generous and free. It is offered as a public utility, so its budget is only there to stop abuse, and its queries never touch your plan quotas. Everything else public is held to the stricter shared limit above.

A note on worker primitives

Internally, Latency's monitoring engine runs its own set of trusted building blocks: the checks that probe your services (check.http, check.tcp, check.tls) and the channels that deliver alerts (send.webhook, send.email, send.sms). These are worker primitives: you don't call them directly. Instead you configure them through monitors and alerts, which is where they're documented. This page is about the platform primitives above, the ones you can call yourself.

© 2026 Latency Labs LLC
latency

© 2026 Latency Labs LLC.