> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.aurasos.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.aurasos.com/_mcp/server.

# People Protect Quickstart

This quickstart gets a **People Protect** integration through the basic server
flow: authenticate, register a customer, create a live-location callout, and
open callout tracking for the customer.

#### Authenticate

First, exchange your client ID and client secret for a secure bearer token. Include this token in the header of all subsequent API calls.

* Reference: [Exchange credentials for a token](/api-reference/authentication/create-oauth-token)

```http
POST /panic-api/v2/oauth/token HTTP/1.1
Host: staging-panic.aura.services
Content-Type: application/json

{
  "clientId": "your_client_id",
  "clientSecret": "your_client_secret"
}
```

#### Register a customer with a subscription

Create the customer profile representing the protected user, and activate a
subscription in the same call — live callouts require the customer to have an
**active subscription**, so creating one without a subscription leaves the
customer unable to request help. Store the returned `customerId`; you need it
for subscriptions and callouts.

* Reference: [Create a customer](/api-reference/customers/create-customer)

```http
POST /panic-api/v2/customers HTTP/1.1
Host: staging-panic.aura.services
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

{
  "customer": {
    "name": "Jane",
    "surname": "Doe",
    "mobile": "+27821234567"
  },
  "subscription": {
    "subscriptionTypeId": 4,
    "validFrom": "2026-06-10T00:00:00Z",
    "validTo": "2027-06-10T00:00:00Z"
  }
}
```

Get valid `subscriptionTypeId` values for your customer source from
[List subscription types](/api-reference/subscriptions/list-subscription-types).

#### Create a callout at the customer's current location

When the user requests assistance, create a callout for that customer using
their current latitude and longitude. Use the `customerId` returned in the
previous step as the path parameter.

* Reference: [Create a customer callout](/api-reference/callouts/create-customer-callout)

```http
POST /panic-api/v2/customers/{customerId}/callouts HTTP/1.1
Host: staging-panic.aura.services
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

{
  "location": {
    "latitude": -26.12345,
    "longitude": 28.12345,
    "accuracy": 10
  },
  "responseTypeId": 1,
  "calloutClassificationId": 1
}
```

If the customer already has an active callout, this call returns the
**existing** callout rather than creating another one.

#### Open the live tracking URL

The callout response always includes a hosted tracking link in its `url`
field. Redirect the customer's browser to it or load it inside an in-app
WebView so the user can track the response.

* Guide: [Callout tracking](/overview/embedded-flows/callout-tracking)

#### Verify and close the callout

Read the callout back to confirm its state. Note that the read endpoint
returns a richer, **nested** shape than the creation response — incident and
dispatch detail live under `incidentInformation[]`.

```http
GET /panic-api/v2/callouts/{calloutId} HTTP/1.1
Host: staging-panic.aura.services
Authorization: Bearer YOUR_ACCESS_TOKEN
```

Staging callouts are never closed automatically. To drive your callout
through dispatch, arrival, completion, and closure, open the
**Responder Simulator** in the [AURA portal](https://staging-portal.aura.services)
(switch to Staging mode), enter your `calloutId`, and step through the flow.
Each step emits the matching webhook event, as a live response would. See
[Testing with the Responder Simulator](/overview/core-concepts/webhooks#testing-with-the-responder-simulator)
for the step-to-event mapping.

* Reference: [Get a callout](/api-reference/callouts/get-callout-by-id)

## Related concepts

* [Customer registration](/people-protect/customer-registration)
* [Subscription management](/people-protect/subscription-management)
* [Creating callouts](/people-protect/creating-callouts)
* [Callout lifecycle states](/overview/core-concepts/callout-lifecycle)