Developer documentation

Authentication and API keys

Store, rotate, and revoke personal or organization keys without exposing credentials to a browser.

Audience
Developers and organization administrators
Before you start
Access to the developer portal and a server-side secret store

Send the key

Every v1 operation, including the free catalog, requires exactly one bearer key. Current keys begin with otmw_live_.

Authorization: Bearer otmw_live_...

Send requests over HTTPS. Do not place the key in a query parameter or log it in full.

Personal and organization ownership

Key ownership and permissions
ContextWho manages itBudget used
PersonalThe account developerPersonal credits
OrganizationAn administrator or developer roleThe organization’s shared credits or quota

Select the correct context before creating a key. An organization educator cannot create or revoke keys. An organization developer can manage API access without holding a worksheet-app seat.

Storage and scope

  • Store the secret in your platform’s secret manager or a server environment variable. The service stores only a hash and cannot reveal the value again.
  • Keys do not have granular scopes: an active key can call every public v1 operation and uses its owner’s budget. Use separate keys per environment or integration so they can be revoked independently.
  • There is no browser-direct integration contract or public CORS guarantee. The browser should call your backend; your backend calls this API.
  • Never send student names, emails, or other personal data: the API fields do not require them.

Rotate without downtime

  1. Create a new key with a label that identifies the system or environment.
  2. Update the secret in your backend and deploy the change.
  3. Test the new key with GET /catalog; the check is free.
  4. Revoke the previous key in the portal and confirm it is no longer active.