API overview

The base URL, request conventions, and endpoint groups of the Voidhash HTTP API.

The Voidhash HTTP API is for server integrations and custom tooling. Use it when you need to read or change project data from your own backend or scripts. Mobile apps should use one of the mobile SDKs instead. The SDKs handle device headers, identity, caching, and store transactions for you.

Base URL

All requests go to the same host:

https://api.voidhash.com

Management endpoints live under /api/v1. Analytics ingestion uses a separate surface under /i/v1.

First request

Create a project secret key in Studio. Then call the session endpoint to confirm the key works and see what it resolves to:

curl https://api.voidhash.com/api/v1/auth/session \
  -H "x-secret-key: $VOIDHASH_SECRET_KEY"

Keep secret keys on the server. See Authentication for every credential type and where each one belongs.

Endpoint groups

The API is organized into the following groups.

GroupUse
API keysCreate and rotate project credentials.
PersonsCreate and look up customer records.
Products and perksRead the project catalog and product-to-perk relationships.
Paywall locationsRead the locations available to clients.
SchemaFetch the consolidated project schema and version.
WebhooksManage endpoints, inspect deliveries, rotate secrets, and retry events.
Paywall deploysUpload and finalize code-authored paywalls.
SDKDevice-facing endpoints used by official SDKs.

The generated endpoint pages contain request schemas, response schemas, and an interactive client for each group.

Errors

Management API errors are JSON objects with a stable _tag field that identifies the error type:

{
  "_tag": "Api/NotAuthenticatedError",
  "message": "You are not authenticated"
}

Use the HTTP status for the broad outcome and _tag for application behavior. Do not parse the human-readable message. It can change without notice.

StatusMeaning
400Invalid request or parameters.
401Missing or invalid credentials.
403Credential does not permit the action.
404Resource not found.
409Request conflicts with current state.
429Rate limited. Retry after the indicated delay.
5xxServer failure. Retry safe requests with backoff.

OpenAPI

Machine-readable specifications are available for both API surfaces. Fetch GET /api/docs/openapi.json for the management and SDK API, and GET /i/docs/openapi.json for event capture.