crewQI Developer API crewQI website ↗

Product map · v1.0.0

Use the same entity names as the crewQI app.

This catalog helps an integration owner map the product quickly. The OpenAPI reference remains authoritative for parameters, schemas, status codes, and required scopes.

Resource catalog

All paths start with https://api-test.crewqi.com/v1/organizations/{organizationId} for TEST. Use api.crewqi.com only with a LIVE key.

Product areaPublic resources and pathsRead / write scopes
Organizationorganization, settings, safe audit, dashboard, activityorganization:read/write, audit:read, dashboard:read, activity:read
Employeesemployees; individual employees/{employeeId}/bank-accountemployees:read, employees:write, optional employees:read_sensitive; financial operations additionally require the matching employees:read_financial or employees:write_financial
Locationssearchable locations, nested reusable contacts, tasks, and documentslocations:read/write, contacts:read/write, tasks:read/write, documents:read/write
Workforceread-only raw work-events, visit-confirmations, canonical timesheets, planning/shiftswork_events:read, timesheets:read/write, planning:read/write
Materialsmaterials with article/preferred-ordering fields and q search; location-materials stock linksmaterials:read, materials:write
Customerscustomers, customer-access, feedbackcustomers:read/write, customer_access:read/write, feedback:read/write
Communicationmessages, messages/{messageId}/attachmentsmessages:read, messages:write
Documentsdocuments, upload and download sessionsdocuments:read, documents:write, documents:download
Qualityquality/templates, template items, quality/inspections, inspection itemsquality:read, quality:write
Recruitmentrecruitment/candidates, candidate messagesrecruitment:read, recruitment:write
Commercecommerce/quotes, quote items, commerce/invoices, invoice items, paymentscommerce:read, commerce:write
Integrationsintegrations, integrations/jobsintegrations:read, integrations:write
Reportsreports, report-generation jobsreports:read, reports:write

Employee lists, general detail, SCIM, dashboard, activity, and search never contain bank accounts. Use the focused employee bank-account guide; outside it, only a masked presentation such as BE68 •••• •••• 7034 is shown.

Material responses explicitly include nullable article, supplier, website, and order-link fields. q searches name, article number, and supplier without creating a second resource or mixing preferred ordering data with location stock. See the materials guide.

Reusable contacts are organization-owned personal data. Location responses and search include contact values only with contacts:read; writes and relationship changes use contacts:write. See the contacts guide.

Raw work events are immutable and read-only. Integrations add missed work through audited canonical time entries. See time entries and corrections for ETags, reasons, safe audit output, and export supersession.

Collection presentation

Cards and List are interchangeable employer-app presentations of the same resource collections. The selection is a versioned, per-resource browser-local preference containing only cards or list.

There is no card/list preference endpoint or synchronization contract. Integrations continue to use the same stable IDs, cursor pagination, filters, sorting, and resource actions; /v1 and 1.0.0 are unchanged.

Commands

Commands use normal HTTP endpoints. Their side effects and scopes are documented beside each operation in the reference.

  • POST /locations/{locationId}/qr/rotate — rotate a location QR using locations:qr.
  • POST /timesheets — add one complete audited manual entry using timesheets:write.
  • PATCH /timesheets/{timeEntryId} — correct effective values with idempotency, a reason, and If-Match.
  • POST /timesheets/{timeEntryId}/void — create an audited void revision without deleting evidence.
  • POST /materials/stock-adjustments — append a stock adjustment.
  • POST /documents/upload-sessions — create an expiring upload session.
  • POST /reports/generation-jobs — request an asynchronous report.
  • POST /integrations/providers/{provider}/jobs — request an approved integration job.
  • PUT /employees/{employeeId}/bank-account — validate, normalize, set, or clear restricted payroll data using dual scopes, idempotency, and If-Match.

Conventions

  • JSON fields are camelCase; times are RFC 3339 UTC timestamps.
  • Collections return { items, nextCursor }; cursors are opaque.
  • Writes are scoped to the organization in the URL and the organization bound to the key.
  • Updates require the current ETag in If-Match.
  • Errors use application/problem+json and RFC 9457 fields.

The API does not expose database table names, unrestricted queries, provider credentials, raw QR secrets, internal tokens, or internal database errors.