GeoVerdictDocs
Documentation menu
Getting started

Authentication

Two credential types, two jobs: secret API keys authenticate your servers, publishable tokens authenticate the browser widget. They are not interchangeable.

Secret API keys

All server-side endpoints (/v1/validate, /v1/autocomplete, /v1/usage) authenticate with a bearer token in the Authorization header:

Authorization: Bearer ak_live_nZ3f…

Keys are formatted ak_live_… or ak_test_…. They are created in the console (or during sign-up on the homepage), belong to one project, and can be named, revoked, and re-revealed:

Never use secret keys in a browser.

The /v1 endpoints send permissive CORS headers, so a browser call with a secret key will technically work. Do not do it: anyone can read the key from your page source or network tab and spend your credits. Browser integrations must use publishable tokens.

Live vs test keys

Test traffic has its own allowance.

An ak_test_ key calls the same real providers, returns the same real results, and bills from the same credit balance as a live key. It is an environment rather than a discount: it keeps development traffic out of your live logs, can be revoked on its own, and carries a tighter best-effort 60-request/minute limit per credential.

Test mode is not a canned sandbox: submitted addresses still go to the configured providers. Use test credentials for development and automated checks, then switch to ak_live_ for production traffic.

Publishable widget tokens

The browser autocomplete endpoint (/v1/widget/autocomplete) authenticates with a publishable token, formatted gv_pk_live_… or gv_pk_test_…. Publishable tokens are designed to be visible in page source:

Conversely, the widget endpoint rejects ak_… keys and console sessions. See the widget guide for setup.

Unauthenticated endpoints

EndpointPurpose
GET /healthzService status and active provider ids. Free.
POST /demo/validateThe homepage demo. Netherlands-only, strictly rate limited per visitor IP. Not for production use.