QEHSQEHS

Developer portal

Authentication

Three modes cover every integration pattern: API keys for server-to-server, OAuth 2.0 for user-authorised third-party apps, and SCIM 2.0 service tokens for provisioning.

API keys (bearer tokens)

The primary authentication method for server-to-server integrations. Generate in the app at /settings/api-keys.

  • Scoped per API key, full tenant, module-scoped, or read-only.
  • Shown once on creation; SHA-256 stored, never recoverable.
  • Rotate keys without downtime, two keys can be active at once.
  • Audit log captures every call with key-id, route, status, timestamp.
curl https://app.qehsethos.com/api/v1/records \
  -H "Authorization: Bearer qehs_live_sk_1A2B3C4D..."

OAuth 2.0 & OIDC

For third-party apps acting on behalf of a user, use the authorization code flow with PKCE. Refresh tokens rotate; the old refresh token is revoked immediately on use.

Authorize URL: https://app.qehsethos.com/oauth/authorize

Token URL: https://app.qehsethos.com/oauth/token

Scopes: records.read, records.write, modules.read, attachments.read, exports.create, admin.users

To register an OAuth app, contact partner-sales or your Customer Success Manager. Self-service app registration is on the Q3 roadmap.

SCIM 2.0 tokens

For Identity Provider integrations (Okta, Entra ID, Google, JumpCloud, OneLogin, Ping, etc.). Generate a SCIM token from /settings/scim and paste into your IdP.

  • Endpoints: /api/scim/v2/Users and /api/scim/v2/Groups
  • Full CRUD including PATCH operations for incremental sync.
  • Group memberships map to QEHS role assignments (owner-configurable).
  • Rotate the token at any time, the old token is immediately invalidated.

Session cookies

The web UI uses signed session cookies. These are not intended for programmatic useprefer an API key or OAuth token for integrations. Session cookies are HttpOnly, Secure, SameSite=Lax, and rotate on sensitive operations.