Skip to content

Platform primitives

The same building blocks we use to run our platform, 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 + 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
CatalogCollection of major providers and their status, reconciled against our probes.PublicBeta
IncidentsConfirmed and crowd-reported outages for a target.PublicBeta
SearchFind services and popular domains.PublicBeta
Key–value storeDurable, workspace-scoped storage for your functions.AccountBeta

Public vs. account

Public primitives need no sign-up and are rate-limited. You can curl those now. 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, and geo is additionally metered per Referrer for keyless callers. Over a limit you get 429 with { "error": "rate_limited" } and a Retry-After header.

DNS has its own budget

The resolver is free and carries its own dedicated per-IP budget, separate from the shared public one, so DoH clients are never squeezed by other traffic. Its queries never touch your plan quotas.

SurfaceDefault limitNotes
DNS-over-HTTPS resolver600 requests/min per IP (its own budget)Free and unmetered, on the house. Never counted against any plan quota.
Public primitives (inspect, catalog, incidents, search)600 requests/min per IP (shared budget)The shared budget for light public use; authenticate for sustained use.
Geo without an api key10 requests/min per ReferrerStringent on purpose. Authenticated calls use the shared budget instead.
Running a published Function120 executions/minLimits are in Beta and subject to change

WARNING

Functions run through your monitors are fetched interally from our infrastructure and not included in the public quota

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.

© 2026 Latency Labs LLC