Developer portal
API reference
All public endpoints follow the same patterns: bearer authentication, JSON bodies, cursor pagination, idempotency keys, and rate-limit headers.
Live OpenAPI spec
The full OpenAPI 3.1 document is served from your QEHS tenant, it includes your modules and is always current.
GET https://app.qehsethos.com/api/docs/spec.json · authenticate with your API key to see tenant-specific endpoints.
Endpoints
16 endpoints across records, attachments, exports, modules, and SCIM. Click any path for code samples in 5 languages.
| Method | Path | Summary | Tags |
|---|---|---|---|
| GET | /api/v1/records | List records | records |
| POST | /api/v1/records | Create record | records |
| GET | /api/v1/records/{id} | Get record | records |
| PATCH | /api/v1/records/{id} | Update record | records |
| POST | /api/v1/records/{id}:transition | Transition record | recordsworkflow |
| DELETE | /api/v1/records/{id} | Delete record | records |
| POST | /api/modules/{moduleKey}/bulk | Bulk load records | recordsbulk |
| POST | /api/v1/attachments | Request upload URL | attachments |
| GET | /api/v1/attachments/{id} | Get attachment URL | attachments |
| POST | /api/v1/exports | Start export job | exports |
| GET | /api/v1/exports/{jobId} | Poll export job | exports |
| GET | /api/v1/modules | List modules | modules |
| GET | /api/v1/modules/{moduleKey} | Get module schema | modules |
| POST | /api/scim/v2/Users | SCIM: create user | scimauth |
| PATCH | /api/scim/v2/Users/{id} | SCIM: patch user | scimauth |
| POST | /api/scim/v2/Groups | SCIM: create group | scimauth |
Conventions
- All requests authenticate with
Authorization: Bearer $QEHS_API_KEY. - Pagination uses cursor (
nextCursor), not page/offset. - Timestamps are always ISO 8601 with timezone (
Zfor UTC). - Errors follow RFC 7807 problem+json with
type,title,detail,code, andtraceId. - Supply
Idempotency-Keyon unsafe methods to make retries safe. - GraphQL is available at
/api/graphqlwith the same auth model.