---
title: "POST /v1/{+app}:exchangeDeviceCheckToken"
method: POST
path: "/v1/{+app}:exchangeDeviceCheckToken"
tags: ["projects"]
---

# POST /v1/{+app}:exchangeDeviceCheckToken

`POST /v1/{+app}:exchangeDeviceCheckToken`

Accepts a [`device_token`](https://developer.apple.com/documentation/devicecheck/dcdevice) issued by DeviceCheck, and attempts to validate it with Apple. If valid, returns an AppCheckToken.

## Path parameters

- `app` string, required

## Request body

- GoogleFirebaseAppcheckV1ExchangeDeviceCheckTokenRequest — Request message for the ExchangeDeviceCheckToken method.
  - `deviceToken` string — Required. The `device_token` as returned by Apple's client-side [DeviceCheck API](https://developer.apple.com/documentation/devicecheck/dcdevice). This is the base64 encoded `Data` (Swift) or `NSData` (ObjC) object.
  - `limitedUse` boolean — Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/firebaseappcheck.md) · [All operations](https://skmtc.net/google/apis/firebaseappcheck/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/firebaseappcheck/versions/b321501ef5a5/schema)
