Production API · Version 2026-08-14 · Scoped context, read, and activation access
Create a scoped key
Sign in with ChatGPT, open My Sanctuary, and create an API key. The full secret is shown once. KJV Visualized stores only its one-way hash. Keep the secret in a server-side environment variable, never in public browser code, a repository, a PDF, or a shared message.
Ask only for the scope you need
catalog:read permits canonical product metadata. library:read permits fulfilled entitlement metadata owned by the key's account. aida:context:read permits bounded public product, room, and Help Center context for an approved assistant. license:activate permits only the owned-license activation lifecycle. Sensitive scopes are not granted by default. No scope exposes private Bible notes, protected PDF bytes, decrypted license keys, checkout mutation, credits, profiles, or payment details.
Send a traceable request
Pass the key as a Bearer token. You may supply an X-Request-Id containing 8 to 80 letters, numbers, periods, colons, underscores, or hyphens. Every response returns an X-Request-Id and rate-limit headers so your integration and CrownThrive support can trace the same event without exposing the secret.
Respect license and access boundaries
API access does not expand a resource license, transfer copyright, authorize redistribution, or create access to other customers. Keys are revocable, usage is auditable, and the current read surfaces cost zero Sanctuary Credits. Commercial redistribution and ecosystem partnerships still go through CrownThrive's official licensing channels.
Count real installations
The activation endpoint supports activate, verify, and deactivate actions. The API key and license key must belong to the same My Sanctuary account. Maximum activations are enforced against active installation records. Repeating the same action is safe and idempotent. installationId should be a random stable token created by your application, never a hardware fingerprint, email address, device serial number, or other personal identifier. Only a namespaced SHA-256 hash is stored.
Quick start
Catalog metadata requires catalog:read. Your licensed library requires library:read. AIDA context discovery requires aida:context:read. Installation lifecycle requests require a dedicated key with license:activate.
curl https://kjvsermontoolkit.crownthrive.com/api/v1/catalog -H "Authorization: Bearer kjv_live_..."Server-side request · never publish the complete keycurl "https://kjvsermontoolkit.crownthrive.com/api/v1/aida/context?q=sermon&kind=rooms" -H "Authorization: Bearer kjv_live_..."Structured public context only · returned records include their canonical website hrefcurl -X POST https://kjvsermontoolkit.crownthrive.com/api/v1/licenses/activations -H "Authorization: Bearer kjv_live_..." -H "Content-Type: application/json" --data '{"action":"activate","licenseKey":"KJVS-XXXX-XXXX-XXXX-XXXX","installationId":"app-install-uuid"}'Dedicated license:activate key · app-generated installation tokenDownload the OpenAPI 3.1 JSON contract for endpoint schemas, error responses, required scopes, and rate-limit behavior.
Building a CrownThrive integration?
For licensing, approved redistribution, platform partnerships, or higher-volume use, contact contact@crownthrive.com.