Documentation menuHTTP API

HTTP API

The public endpoints of the BlockAlt API, who calls them and how they answer.

On this page

Endpoints #

Method and pathCalled byPurpose
POST /v1/siteverifyYour serverVerify a token; see server verification
GET /v1/keysYou, at install timeConfiguration public keys to pin (current Ed25519 and P-256, then standby)
GET /v1/script-manifestYou, at install timeCurrent script path, size and integrity hash
GET /v1/assets/blockalt.<sha256>.jsBrowsersImmutable, content-addressed script, cached for a year
GET /v1/blockalt.jsBrowsersAlias of the newest script, cached for five minutes
GET /v1/browser/config/{siteKey}The scriptSigned site configuration for the page's origin
POST /v1/browser/challengeThe scriptA proof-of-work challenge for an action
POST /v1/browser/tokenThe scriptExchanges a solved challenge for a token
GET /healthz, GET /readyzMonitoringLiveness and readiness

The /v1/browser/* endpoints check the page's Origin against the site's origins and are meant for the script only; their request format may change within the compatibility promise of the script.

The machine-readable description is the OpenAPI document (OpenAPI 3.0): the public endpoints with their request and response schemas and every status, and the console and management routes with their summaries and the API key scope each one needs.

Errors #

API errors are JSON with success: false, a reason and an id:

JSON
{ "success": false, "reason": "rate_limited", "id": "e3b9a1d4-2c7f-4a0b-9d6e-8f1a2b3c4d5e" }
StatusWhen
400Invalid JSON, missing or unknown fields
401Missing or invalid secret key on /v1/siteverify
403Browser endpoints: origin, hostname, action or rule refused
413Body larger than 8 KiB
415Body not sent as JSON (application/json; the browser endpoints also take text/plain)
429Rate limited
503Temporary failure

Versioning #

The /v1 contract is stable: fields and reasons may be added, never removed or changed in meaning without a new version and a migration window announced on the changelog. Write clients that ignore unknown fields and treat unknown refusal reasons as refusals.

Base URL: https://blockalt.click.

Something unclear or missing on this page? Write to support@blockalt.click.