---
title: "Start Silent Authentication"
method: POST
path: "/network/silent-auth"
tags: ["network > silentAuth"]
---

# Start Silent Authentication

`POST /network/silent-auth`

## Request

- Base URL: `https://api.pinnacle.sh`
- URL: `https://api.pinnacle.sh/network/silent-auth`
- Auth: API key in header `PINNACLE-API-KEY`

Start a Silent Authentication session to verify that the user controls the device attached to a phone number. Omit `format` to receive a `browserUrl` for the hosted browser/WebView flow, or set `format: "json"` to receive a `jsonUrl` for a native mobile app or custom client-side flow. The device check must run from the user's cellular device, not your server.

The returned URL expires 60 seconds after creation. Open or fetch it immediately and use `expiresAt` to detect when a new Silent Auth session is required.

<Note>
  Limited availability. Contact [founders@pinnacle.sh](mailto:founders@pinnacle.sh) to request access.
</Note>

## Request body

- SilentAuthRequest
  - `phoneNumber` string, required: Phone number in E.164 format, including country code.
  - `clientRef` string: Your correlation ID, such as a user ID, session ID, or case ID.
  - `format` 'json': Set to `json` when you want to fetch `jsonUrl` directly from your app and receive a JSON response. Omit this field for the hosted browser/WebView flow.

## Response `200`

Returns a short-lived URL for completing Silent Authentication from the user's device.

- union
  - object: hosted variant
    - `format` 'hosted', required: Discriminator value: hosted
    - `requestId` string, required: Unique Pinnacle ID for a Network API request.
    - `browserUrl` string, uri, required: URL to open on the user's cellular device when Pinnacle should handle the browser/WebView flow.
    - `expiresAt` string, date-time, required: Expiration timestamp for the initial Silent Auth device handoff. Silent Auth URLs expire 60 seconds after creation and should be opened immediately from the user's cellular device.
  - object: json variant
    - `format` 'json', required: Discriminator value: json
    - `requestId` string, required: Unique Pinnacle ID for a Network API request.
    - `jsonUrl` string, uri, required: URL to fetch from the user's cellular device with redirects enabled. The final response contains a verification code.
    - `expiresAt` string, date-time, required: Expiration timestamp for the initial Silent Auth device handoff. Silent Auth URLs expire 60 seconds after creation and should be fetched immediately from the user's cellular device.

## Other responses

- `400`: The request was unacceptable, often due to providing an invalid update. <br> Errors may originate from invalid payload or from Pinnacle's additional validation checks. For example, providing an URL that cannot be accessed, updating a campaign that is currently being reviewed, updating data that you cannot access, sending a malformed message, and so on. <br> For `Pinnacle Validation Error` inspect the `error` payload to determine the source of the failure. These errors are likely due to additional validation and business logic checks.<br> For `Request Validation Error` inspect the `description` and `errors` payload to determine the source of failure. These errors are likely due to invalid payload inside the request.
- `401`: The request lacks valid authentication credentials or the provided credentials are invalid. <br> Ensure you're including a valid API key in the request headers and that your account has the necessary permissions to access this endpoint.
- `403`: Your subscription does not include access to this feature. <br> This occurs when attempting to use functionality that requires a higher subscription tier. Please upgrade your subscription to access this feature.
- `500`: An unexpected error occurred on Pinnacle's servers while processing your request. <br> If this error persists, please contact support with the request details.

---

[API](https://skmtc.dev/pinnacle/apis/pinnacle-2.md) - [All operations](https://skmtc.dev/pinnacle/apis/pinnacle-2/llms.txt) - [OpenAPI document](https://skmtc.dev/pinnacle/apis/pinnacle-2/revisions/45416dadab79?raw)
