Platform API Overview

This section is the entry point for the Open Platform API. Integration material is split in two:
  • Concepts — authentication, scopes, error model, and callback configuration. Read these before you call.
  • API Docs — fields, request examples, response examples for each endpoint. Reach for these while coding.

Environment Hosts

  • Development: https://dev.utmos.dev
  • Production: https://prod.utmos.dev
  • Examples default to the development host. Switch to the production host when promoting.
  1. Authentication & Signing — obtain an API Key, learn how the signature is computed.
  2. Scope Catalog — confirm your key holds the scopes the endpoints require.
  3. Error Model — understand the error codes and retry strategy ahead of time.
  4. Async Callbacks — understand that 001 implements callback configuration only, not webhook delivery execution.
  5. Open API Docs to debug specific endpoints.

End-to-End Flow Example

Typical downlink command lifecycle:
  1. POST /api/v1/open/downlink/commands submits a command and returns a command_id.
  2. The platform writes the command fact and dispatch event. HTTP 202 only means accepted by the platform.
  3. After commit, the platform attempts to publish the NATS event tenant.<tenant_id>.command.accepted.
  4. Use GET /api/v1/open/downlink/commands/{command_id} to query accepted command facts and dispatch publication state.
  5. Use POST /api/v1/open/objects/presign to request an upload or download presigned URL for an authorized object.

Integration Requirements

  • Credentials: API ID / API Key.
  • Required fields: vendor, device_id, command_type, payload, idempotency_key.
  • Async semantics: acceptance does not imply device-side success. 001 does not execute vendor adapters or webhook delivery workers.