> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getdesmo.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrating Desmo

> High-level overview of how Desmo fits into your system with SDKs, APIs, and the dashboard.

## 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:

```http theme={null}
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:

<CardGroup cols={2}>
  <Card title="iOS SDK quickstart" icon="mobile-screen-button" href="/essentials/ios-quickstart">
    Add the Desmo iOS SDK to your app and record your first delivery session.
  </Card>

  <Card title="Server PoD API (coming soon)" icon="server">
    Learn how to call Desmo's PoD APIs from your backend using secret keys.
  </Card>

  <Card title="Android SDK quickstart" icon="robot" href="/essentials/android-quickstart">
    Add the Desmo Android SDK to your app and record your first delivery session.
  </Card>

  <Card title="Dashboard" icon="window-restore" href="https://app.getdesmo.io">
    Use the Desmo dashboard to create keys and inspect sessions and insights.
  </Card>
</CardGroup>
