files/en-us/web/api/publickeycredential/isconditionalmediationavailable_static/index.md
{{APIRef("Web Authentication API")}}{{securecontext_header}}
The isConditionalMediationAvailable() static method of the {{domxref("PublicKeyCredential")}} interface returns a {{jsxref("Promise")}} which resolves to true if conditional mediation is available.
PublicKeyCredential.isConditionalMediationAvailable()
None.
A {{jsxref("Promise")}} which resolves to a boolean value indicating whether or not conditional mediation is available.
The returned {{jsxref("Promise")}} may be rejected with the following values:
SecurityError {{domxref("DOMException")}}
Before invoking a conditional WebAuthn API call, check if:
// Availability of `window.PublicKeyCredential` means WebAuthn is usable.
if (
window.PublicKeyCredential &&
PublicKeyCredential.isConditionalMediationAvailable
) {
// Check if conditional mediation is available.
const isCMA = await PublicKeyCredential.isConditionalMediationAvailable();
if (isCMA) {
// Call WebAuthn authentication
const publicKeyCredentialRequestOptions = {
// Server generated challenge
challenge: challengeFromServer,
// The same RP ID as used during registration
rpId: "example.com",
};
const credential = await navigator.credentials.get({
publicKey: publicKeyCredentialRequestOptions,
signal: abortController.signal,
// Specify 'conditional' to activate conditional UI
mediation: "conditional",
});
}
}
{{Specifications}}
{{Compat}}