Developers

Your operation, available by API.

A versioned REST API over the same data the app runs on, governed by the same roles — keys, webhooks, and automation, with every call isolated to your tenant and written to the audit log.

Request
GET /v1/assets/CNV-02
Authorization: Bearer sk_live_••••4F2A

{
  "id": "CNV-02",
  "name": "Conveyor 2",
  "site": "plant-12",
  "status": "out_of_service",
  "meter": { "run_hours": 12418, "source": "inspection" },
  "open_defects": 2
}

One authorization model

The API can't outrank the app.

The same isolation that separates tenants in the product governs every API call. A key is scoped to a role and per-key permission flags — it can never read or write beyond what that role allows. Cross-tenant access is impossible by construction, not by convention.

  • Keys carry a role and explicit scopes
  • One authorization source for app and API
  • Every call attributed and logged
Requestany client, anywhere
API keyrole + explicit scopes + expiry
The same policy layer the app usestenant isolation · role & column rules
Tenant-isolated datayour rows, nothing else

REST resources

Read and write the whole operation.

A versioned /v1 JSON API over the operation's domain objects — tenant-scoped, paginated, filterable.

/v1/assetsGET · POST · PATCH
/v1/inspectionsGET · POST
/v1/defectsGET · POST · PATCH
/v1/workordersGET · POST · PATCH
/v1/ticketsGET · POST
/v1/productionGET
/v1/materialsGET · POST
/v1/workforceGET
/v1/msha-recordsGET · POST
Create a defect
POST /v1/defects

{
  "asset_id": "CNV-02-MTR",
  "finding": "Bearing temp 218F against 190F limit",
  "severity": "critical",
  "due_date": "2026-07-25"
}

201 Created — meter snapshot captured, audit entry written
Read production, filtered
GET /v1/production?site=plant-07&period=2026-07

{
  "period": "2026-07",
  "tons": 98410,
  "unit": "dry_tons",
  "next_page": null
}
WEBHOOKS & EVENTS

Subscribe to what changes.

Register endpoints and receive events — defect.created, inspection.failed, period.closed, storage.full — with reliable delivery: retries, a dead-letter queue for exhausted deliveries, and idempotency keys so a consumer never double-processes.

  • Subscribe to operational events
  • Retry + dead-letter on failure
  • Idempotent delivery
KEYS, SCOPES & RATE LIMITS

Issue, scope, rotate, revoke.

Org-scoped key management with per-key permission flags, rotation, and revocation. Rate limits are published and returned on every response — and every API call lands in the same audit trail as in-app actions.

  • Per-key scopes and expiry
  • Transparent rate limits
  • Full audit of programmatic access

Strata Extensions

Automations, built in plain language.

Describe the automation; Extensions builds it over the API — with guardrails that make it safe to trust.

Dry run

Every automation previews the exact change — records touched, values written — before anything goes live.

Confirm

Each run is a single reviewable change, attributed in the audit log like any other write.

Undo

One control reverses a run — and an automation self-pauses with a plain-language diagnosis if something looks wrong.

Sandbox & reference

Build against a sandbox first.

A sandbox tenant with seed data, a versioned reference, and predictable deprecation. The isolation guarantee is the same one documented on the Security page.

Build on your operation.