GlemoDocs

API essentials

Authentication, environments, errors and rate limits.

Everything in Glemo is one HTTPS API described by an OpenAPI spec. This page covers what every integration needs; the interactive reference documents every endpoint.

Authentication

Send your API key as a Bearer token:

curl https://api.glemo.io/verify \
  -H "Authorization: Bearer glemo_live_…"

Keys belong to a relying party and carry scopes (e.g. verify:read). Manage them — create, rotate, revoke — from your dashboard or the /relying-parties/{id}/keys endpoints.

Secrets are shown once

A key's secret is returned only at creation or rotation. Store it in a secret manager; if you lose it, rotate.

Test vs live

PrefixEnvironmentUse
glemo_test_…SandboxDevelopment, CI, the docs try-it
glemo_live_…ProductionReal verifications

Sandbox keys come from the self-serve provisioner (POST /sandbox/keys — see the quickstart) and only carry verify:read.

Publishable keys

For browser surfaces (the <glemo-verify> widget), use a key whose only scope is verify:read. It can read verdicts and nothing else, so it's safe to ship in client code. Never embed a key with management scopes.

Errors

Errors are JSON with a stable error code. The SDK maps them to typed exceptions:

HTTPerrorSDK errorWhat to do
401unauthorizedAuthenticationErrorCheck the key / rotate
403forbiddenPermissionErrorKey lacks the scope
422validationValidationErrorFix the request body
429rate_limitedRateLimitError (retryAfter)Back off, then retry
5xxApiErrorRetry with backoff
{ "error": "rate_limited", "message": "Too many requests" }

Rate limits

Limits are per key (or per IP on public endpoints). When throttled you get a 429 with a Retry-After header in seconds. The SDK retries network and 5xx failures once by default; it never retries 4xx.

Idempotency & latency

Verification is a read: calling /verify twice is safe by design. Verdict computation takes tens of milliseconds server-side (p50 ~40ms in our load test); the rest of what you observe is network. Every response carries its measured latencyMs, and every verification is logged to your dashboard with its verdict and latency.

On this page

API essentials