Skip to main content

What Desmo is

Desmo helps you record delivery sessions from your apps, collect high-frequency device telemetry, and turn that data into proof-of-delivery (PoD) intelligence. At a high level you interact with Desmo through three layers:
  • Control plane – where you manage tenants, projects, and API keys.
  • Data plane – where mobile SDKs start/stop sessions and stream telemetry into Desmo.
  • View plane – where your systems call server-side APIs and your team uses the dashboard to inspect sessions and insights.
You can keep this model in mind as you integrate—every call you make is either configuring access (control), sending data (data), or reading insights (view).

How integration works end-to-end

  1. Create API keys in the Desmo dashboard (control plane).
  2. Embed the mobile SDK (iOS or Android) in your courier app:
    • Initialize the SDK with a publishable key (pk_...).
    • Start a session when a delivery begins.
    • Stop the session when the delivery is complete.
    • The SDK streams telemetry to Desmo’s ingest APIs during the session.
  3. Consume PoD insights from your backend via Desmo’s server-side APIs:
    • Look up sessions and their PoD insights.
    • Use those insights in your own workflows and UI.

Control plane: keys and auth

All calls into Desmo use an API key via the Desmo-Key header:
Desmo-Key: <your api key>
Conceptually you will have:
  • Publishable keys (pk_...) for SDKs running on end-user devices.
  • Secret keys (sk_...) for your own backend and internal tools.
The iOS SDK always sends the configured key as Desmo-Key on its HTTP requests, so you do not need to manage headers manually in your app.

Data plane: sessions and telemetry

From a mobile app’s point of view, the SDK wraps three core responsibilities:
  • Starting a session – tells Desmo a delivery session has begun using a Desmo‑managed session API.
  • Streaming telemetry – batches high‑frequency motion and context data to a Desmo‑managed telemetry ingest service throughout the session.
  • Stopping a session – tells Desmo the session is complete via the same session APIs so workers can process data and compute insights.
On mobile, you never call HTTP endpoints directly—your app talks only to the SDK. The SDK takes care of the HTTP client, headers, batching, and retries against Desmo’s backend.

View plane: APIs and dashboard

Once sessions are recorded and processed, your customers and internal teams interact with Desmo via:
  • PoD APIs (used by your backend with secret keys). These stable, public endpoints are how you read session state and proof‑of‑delivery insights, for example:
    • GET /v1/sessions/{id} – session metadata.
    • GET /v1/sessions/{id}/insights – the full “PoD case file” JSON.
  • Dashboard, which is essentially a privileged web client on top of the same PoD APIs, used to:
    • manage API keys,
    • inspect sessions and insights,
    • debug integrations.

Choose your path

Use this page as the jumping-off point for Desmo integrations: