Firebase App Check API

Firebase App Check works alongside other Firebase services to help protect your backend resources from abuse, such as billing fraud or phishing.

Service: firebaseappcheck.googleapis.com

To call this service, we recommend that you use the Google-provided client libraries. If your application needs to use your own libraries to call this service, use the following information when you make the API requests.

Discovery document

A Discovery Document is a machine-readable specification for describing and consuming REST APIs. It is used to build client libraries, IDE plugins, and other tools that interact with Google APIs. One service may provide multiple discovery documents. This service provides the following discovery documents:

Service endpoint

A service endpoint is a base URL that specifies the network address of an API service. One service might have multiple service endpoints. This service has the following service endpoint and all URIs below are relative to this service endpoint:

  • https://firebaseappcheck.googleapis.com

REST Resource: v1beta.jwks

Methods
get GET /v1beta/{name}
Returns a public JWK set as specified by RFC 7517 that can be used to verify App Check tokens.

REST Resource: v1beta.oauthClients

Methods
exchangeAppAttestAssertion POST /v1beta/{app=oauthClients/*}:exchangeAppAttestAssertion
Accepts an App Attest assertion and an artifact previously obtained from ExchangeAppAttestAttestation and verifies those with Apple.
exchangeAppAttestAttestation POST /v1beta/{app=oauthClients/*}:exchangeAppAttestAttestation
Accepts an App Attest CBOR attestation and verifies it with Apple using your preconfigured team and bundle IDs.
exchangeDebugToken POST /v1beta/{app=oauthClients/*}:exchangeDebugToken
Validates a debug token secret that you have previously created using CreateDebugToken.
generateAppAttestChallenge POST /v1beta/{app=oauthClients/*}:generateAppAttestChallenge
Generates a challenge that protects the integrity of an immediately following call to ExchangeAppAttestAttestation or ExchangeAppAttestAssertion.

REST Resource: v1beta.projects

Methods
verifyAppCheckToken POST /v1beta/{project=projects/*}:verifyAppCheckToken
Verifies the given App Check token and returns token usage signals that callers may act upon.

REST Resource: v1beta.projects.apps

Methods
exchangeAppAttestAssertion POST /v1beta/{app=projects/*/apps/*}:exchangeAppAttestAssertion
Accepts an App Attest assertion and an artifact previously obtained from ExchangeAppAttestAttestation and verifies those with Apple.
exchangeAppAttestAttestation POST /v1beta/{app=projects/*/apps/*}:exchangeAppAttestAttestation
Accepts an App Attest CBOR attestation and verifies it with Apple using your preconfigured team and bundle IDs.
exchangeCustomToken POST /v1beta/{app=projects/*/apps/*}:exchangeCustomToken
Validates a custom token signed using your project's Admin SDK service account credentials.
exchangeDebugToken POST /v1beta/{app=projects/*/apps/*}:exchangeDebugToken
Validates a debug token secret that you have previously created using CreateDebugToken.
exchangeDeviceCheckToken POST /v1beta/{app=projects/*/apps/*}:exchangeDeviceCheckToken
Accepts a device_token issued by DeviceCheck, and attempts to validate it with Apple.
exchangePlayIntegrityToken POST /v1beta/{app=projects/*/apps/*}:exchangePlayIntegrityToken
Validates an integrity verdict response token from Play Integrity.
exchangeRecaptchaEnterpriseToken POST /v1beta/{app=projects/*/apps/*}:exchangeRecaptchaEnterpriseToken
Validates a reCAPTCHA Enterprise response token.
exchangeRecaptchaToken
(deprecated)
POST /v1beta/{app=projects/*/apps/*}:exchangeRecaptchaToken
Validates a reCAPTCHA v3 response token.
exchangeRecaptchaV3Token POST /v1beta/{app=projects/*/apps/*}:exchangeRecaptchaV3Token
Validates a reCAPTCHA v3 response token.
exchangeSafetyNetToken
(deprecated)
POST /v1beta/{app=projects/*/apps/*}:exchangeSafetyNetToken
Validates a SafetyNet token.
generateAppAttestChallenge POST /v1beta/{app=projects/*/apps/*}:generateAppAttestChallenge
Generates a challenge that protects the integrity of an immediately following call to ExchangeAppAttestAttestation or ExchangeAppAttestAssertion.
generatePlayIntegrityChallenge POST /v1beta/{app=projects/*/apps/*}:generatePlayIntegrityChallenge
Generates a challenge that protects the integrity of an immediately following integrity verdict request to the Play Integrity API.

REST Resource: v1beta.projects.apps.appAttestConfig

Methods
batchGet GET /v1beta/{parent=projects/*}/apps/-/appAttestConfig:batchGet
Atomically gets the AppAttestConfigs for the specified list of apps.
get GET /v1beta/{name=projects/*/apps/*/appAttestConfig}
Gets the AppAttestConfig for the specified app.
patch PATCH /v1beta/{appAttestConfig.name=projects/*/apps/*/appAttestConfig}
Updates the AppAttestConfig for the specified app.

REST Resource: v1beta.projects.apps.debugTokens

Methods
create POST /v1beta/{parent=projects/*/apps/*}/debugTokens
Creates a new DebugToken for the specified app.
delete DELETE /v1beta/{name=projects/*/apps/*/debugTokens/*}
Deletes the specified DebugToken.
get GET /v1beta/{name=projects/*/apps/*/debugTokens/*}
Gets the specified DebugToken.
list GET /v1beta/{parent=projects/*/apps/*}/debugTokens
Lists all DebugTokens for the specified app.
patch PATCH /v1beta/{debugToken.name=projects/*/apps/*/debugTokens/*}
Updates the specified DebugToken.

REST Resource: v1beta.projects.apps.deviceCheckConfig

Methods
batchGet GET /v1beta/{parent=projects/*}/apps/-/deviceCheckConfig:batchGet
Atomically gets the DeviceCheckConfigs for the specified list of apps.
get GET /v1beta/{name=projects/*/apps/*/deviceCheckConfig}
Gets the DeviceCheckConfig for the specified app.
patch PATCH /v1beta/{deviceCheckConfig.name=projects/*/apps/*/deviceCheckConfig}
Updates the DeviceCheckConfig for the specified app.

REST Resource: v1beta.projects.apps.playIntegrityConfig

Methods
batchGet GET /v1beta/{parent=projects/*}/apps/-/playIntegrityConfig:batchGet
Atomically gets the PlayIntegrityConfigs for the specified list of apps.
get GET /v1beta/{name=projects/*/apps/*/playIntegrityConfig}
Gets the PlayIntegrityConfig for the specified app.
patch PATCH /v1beta/{playIntegrityConfig.name=projects/*/apps/*/playIntegrityConfig}
Updates the PlayIntegrityConfig for the specified app.

REST Resource: v1beta.projects.apps.recaptchaConfig

Methods
batchGet
(deprecated)
GET /v1beta/{parent=projects/*}/apps/-/recaptchaConfig:batchGet
Atomically gets the RecaptchaConfigs for the specified list of apps.
get
(deprecated)
GET /v1beta/{name=projects/*/apps/*/recaptchaConfig}
Gets the RecaptchaConfig for the specified app.
patch
(deprecated)
PATCH /v1beta/{recaptchaConfig.name=projects/*/apps/*/recaptchaConfig}
Updates the RecaptchaConfig for the specified app.

REST Resource: v1beta.projects.apps.recaptchaEnterpriseConfig

Methods
batchGet GET /v1beta/{parent=projects/*}/apps/-/recaptchaEnterpriseConfig:batchGet
Atomically gets the RecaptchaEnterpriseConfigs for the specified list of apps.
get GET /v1beta/{name=projects/*/apps/*/recaptchaEnterpriseConfig}
Gets the RecaptchaEnterpriseConfig for the specified app.
patch PATCH /v1beta/{recaptchaEnterpriseConfig.name=projects/*/apps/*/recaptchaEnterpriseConfig}
Updates the RecaptchaEnterpriseConfig for the specified app.

REST Resource: v1beta.projects.apps.recaptchaV3Config

Methods
batchGet GET /v1beta/{parent=projects/*}/apps/-/recaptchaV3Config:batchGet
Atomically gets the RecaptchaV3Configs for the specified list of apps.
get GET /v1beta/{name=projects/*/apps/*/recaptchaV3Config}
Gets the RecaptchaV3Config for the specified app.
patch PATCH /v1beta/{recaptchaV3Config.name=projects/*/apps/*/recaptchaV3Config}
Updates the RecaptchaV3Config for the specified app.

REST Resource: v1beta.projects.apps.safetyNetConfig

Methods
batchGet
(deprecated)
GET /v1beta/{parent=projects/*}/apps/-/safetyNetConfig:batchGet
Atomically gets the SafetyNetConfigs for the specified list of apps.
get
(deprecated)
GET /v1beta/{name=projects/*/apps/*/safetyNetConfig}
Gets the SafetyNetConfig for the specified app.
patch
(deprecated)
PATCH /v1beta/{safetyNetConfig.name=projects/*/apps/*/safetyNetConfig}
Updates the SafetyNetConfig for the specified app.

REST Resource: v1beta.projects.services

Methods
batchUpdate POST /v1beta/{parent=projects/*}/services:batchUpdate
Atomically updates the specified Service configurations.
get GET /v1beta/{name=projects/*/services/*}
Gets the Service configuration for the specified service name.
list GET /v1beta/{parent=projects/*}/services
Lists all Service configurations for the specified project.
patch PATCH /v1beta/{service.name=projects/*/services/*}
Updates the specified Service configuration.

REST Resource: v1beta.projects.services.resourcePolicies

Methods
batchUpdate POST /v1beta/{parent=projects/*/services/*}/resourcePolicies:batchUpdate
Atomically updates the specified ResourcePolicy configurations.
create POST /v1beta/{parent=projects/*/services/*}/resourcePolicies
Creates the specified ResourcePolicy configuration.
delete DELETE /v1beta/{name=projects/*/services/*/resourcePolicies/*}
Deletes the specified ResourcePolicy configuration.
get GET /v1beta/{name=projects/*/services/*/resourcePolicies/*}
Gets the requested ResourcePolicy configuration.
list GET /v1beta/{parent=projects/*/services/*}/resourcePolicies
Lists all ResourcePolicy configurations for the specified project and service.
patch PATCH /v1beta/{resourcePolicy.name=projects/*/services/*/resourcePolicies/*}
Updates the specified ResourcePolicy configuration.

REST Resource: v1.jwks

Methods
get GET /v1/{name}
Returns a public JWK set as specified by RFC 7517 that can be used to verify App Check tokens.

REST Resource: v1.oauthClients

Methods
exchangeAppAttestAssertion POST /v1/{app=oauthClients/*}:exchangeAppAttestAssertion
Accepts an App Attest assertion and an artifact previously obtained from ExchangeAppAttestAttestation and verifies those with Apple.
exchangeAppAttestAttestation POST /v1/{app=oauthClients/*}:exchangeAppAttestAttestation
Accepts an App Attest CBOR attestation and verifies it with Apple using your preconfigured team and bundle IDs.
exchangeDebugToken POST /v1/{app=oauthClients/*}:exchangeDebugToken
Validates a debug token secret that you have previously created using CreateDebugToken.
generateAppAttestChallenge POST /v1/{app=oauthClients/*}:generateAppAttestChallenge
Generates a challenge that protects the integrity of an immediately following call to ExchangeAppAttestAttestation or ExchangeAppAttestAssertion.

REST Resource: v1.projects.apps

Methods
exchangeAppAttestAssertion POST /v1/{app=projects/*/apps/*}:exchangeAppAttestAssertion
Accepts an App Attest assertion and an artifact previously obtained from ExchangeAppAttestAttestation and verifies those with Apple.
exchangeAppAttestAttestation POST /v1/{app=projects/*/apps/*}:exchangeAppAttestAttestation
Accepts an App Attest CBOR attestation and verifies it with Apple using your preconfigured team and bundle IDs.
exchangeCustomToken POST /v1/{app=projects/*/apps/*}:exchangeCustomToken
Validates a custom token signed using your project's Admin SDK service account credentials.
exchangeDebugToken POST /v1/{app=projects/*/apps/*}:exchangeDebugToken
Validates a debug token secret that you have previously created using CreateDebugToken.
exchangeDeviceCheckToken POST /v1/{app=projects/*/apps/*}:exchangeDeviceCheckToken
Accepts a device_token issued by DeviceCheck, and attempts to validate it with Apple.
exchangePlayIntegrityToken POST /v1/{app=projects/*/apps/*}:exchangePlayIntegrityToken
Validates an integrity verdict response token from Play Integrity.
exchangeRecaptchaEnterpriseToken POST /v1/{app=projects/*/apps/*}:exchangeRecaptchaEnterpriseToken
Validates a reCAPTCHA Enterprise response token.
exchangeRecaptchaV3Token POST /v1/{app=projects/*/apps/*}:exchangeRecaptchaV3Token
Validates a reCAPTCHA v3 response token.
exchangeSafetyNetToken
(deprecated)
POST /v1/{app=projects/*/apps/*}:exchangeSafetyNetToken
Validates a SafetyNet token.
generateAppAttestChallenge POST /v1/{app=projects/*/apps/*}:generateAppAttestChallenge
Generates a challenge that protects the integrity of an immediately following call to ExchangeAppAttestAttestation or ExchangeAppAttestAssertion.
generatePlayIntegrityChallenge POST /v1/{app=projects/*/apps/*}:generatePlayIntegrityChallenge
Generates a challenge that protects the integrity of an immediately following integrity verdict request to the Play Integrity API.

REST Resource: v1.projects.apps.appAttestConfig

Methods
batchGet GET /v1/{parent=projects/*}/apps/-/appAttestConfig:batchGet
Atomically gets the AppAttestConfigs for the specified list of apps.
get GET /v1/{name=projects/*/apps/*/appAttestConfig}
Gets the AppAttestConfig for the specified app.
patch PATCH /v1/{appAttestConfig.name=projects/*/apps/*/appAttestConfig}
Updates the AppAttestConfig for the specified app.

REST Resource: v1.projects.apps.debugTokens

Methods
create POST /v1/{parent=projects/*/apps/*}/debugTokens
Creates a new DebugToken for the specified app.
delete DELETE /v1/{name=projects/*/apps/*/debugTokens/*}
Deletes the specified DebugToken.
get GET /v1/{name=projects/*/apps/*/debugTokens/*}
Gets the specified DebugToken.
list GET /v1/{parent=projects/*/apps/*}/debugTokens
Lists all DebugTokens for the specified app.
patch PATCH /v1/{debugToken.name=projects/*/apps/*/debugTokens/*}
Updates the specified DebugToken.

REST Resource: v1.projects.apps.deviceCheckConfig

Methods
batchGet GET /v1/{parent=projects/*}/apps/-/deviceCheckConfig:batchGet
Atomically gets the DeviceCheckConfigs for the specified list of apps.
get GET /v1/{name=projects/*/apps/*/deviceCheckConfig}
Gets the DeviceCheckConfig for the specified app.
patch PATCH /v1/{deviceCheckConfig.name=projects/*/apps/*/deviceCheckConfig}
Updates the DeviceCheckConfig for the specified app.

REST Resource: v1.projects.apps.playIntegrityConfig

Methods
batchGet GET /v1/{parent=projects/*}/apps/-/playIntegrityConfig:batchGet
Atomically gets the PlayIntegrityConfigs for the specified list of apps.
get GET /v1/{name=projects/*/apps/*/playIntegrityConfig}
Gets the PlayIntegrityConfig for the specified app.
patch PATCH /v1/{playIntegrityConfig.name=projects/*/apps/*/playIntegrityConfig}
Updates the PlayIntegrityConfig for the specified app.

REST Resource: v1.projects.apps.recaptchaEnterpriseConfig

Methods
batchGet GET /v1/{parent=projects/*}/apps/-/recaptchaEnterpriseConfig:batchGet
Atomically gets the RecaptchaEnterpriseConfigs for the specified list of apps.
get GET /v1/{name=projects/*/apps/*/recaptchaEnterpriseConfig}
Gets the RecaptchaEnterpriseConfig for the specified app.
patch PATCH /v1/{recaptchaEnterpriseConfig.name=projects/*/apps/*/recaptchaEnterpriseConfig}
Updates the RecaptchaEnterpriseConfig for the specified app.

REST Resource: v1.projects.apps.recaptchaV3Config

Methods
batchGet GET /v1/{parent=projects/*}/apps/-/recaptchaV3Config:batchGet
Atomically gets the RecaptchaV3Configs for the specified list of apps.
get GET /v1/{name=projects/*/apps/*/recaptchaV3Config}
Gets the RecaptchaV3Config for the specified app.
patch PATCH /v1/{recaptchaV3Config.name=projects/*/apps/*/recaptchaV3Config}
Updates the RecaptchaV3Config for the specified app.

REST Resource: v1.projects.apps.safetyNetConfig

Methods
batchGet
(deprecated)
GET /v1/{parent=projects/*}/apps/-/safetyNetConfig:batchGet
Atomically gets the SafetyNetConfigs for the specified list of apps.
get
(deprecated)
GET /v1/{name=projects/*/apps/*/safetyNetConfig}
Gets the SafetyNetConfig for the specified app.
patch
(deprecated)
PATCH /v1/{safetyNetConfig.name=projects/*/apps/*/safetyNetConfig}
Updates the SafetyNetConfig for the specified app.

REST Resource: v1.projects.services

Methods
batchUpdate POST /v1/{parent=projects/*}/services:batchUpdate
Atomically updates the specified Service configurations.
get GET /v1/{name=projects/*/services/*}
Gets the Service configuration for the specified service name.
list GET /v1/{parent=projects/*}/services
Lists all Service configurations for the specified project.
patch PATCH /v1/{service.name=projects/*/services/*}
Updates the specified Service configuration.

REST Resource: v1.projects.services.resourcePolicies

Methods
batchUpdate POST /v1/{parent=projects/*/services/*}/resourcePolicies:batchUpdate
Atomically updates the specified ResourcePolicy configurations.
create POST /v1/{parent=projects/*/services/*}/resourcePolicies
Creates the specified ResourcePolicy configuration.
delete DELETE /v1/{name=projects/*/services/*/resourcePolicies/*}
Deletes the specified ResourcePolicy configuration.
get GET /v1/{name=projects/*/services/*/resourcePolicies/*}
Gets the requested ResourcePolicy configuration.
list GET /v1/{parent=projects/*/services/*}/resourcePolicies
Lists all ResourcePolicy configurations for the specified project and service.
patch PATCH /v1/{resourcePolicy.name=projects/*/services/*/resourcePolicies/*}
Updates the specified ResourcePolicy configuration.