Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

getTransports() is a method of the AuthenticatorAttestationResponse interface that returns an Array containing strings describing the different transports which may be used by the authenticator.

Such transports may be USB, NFC, BLE or internal (applicable when the authenticator is not removable from the device).

Note: An AuthenticatorAttestationResponse instance is available on PublicKeyCredential.response after calling navigator.credentials.create().

Note: This method may only be used in top-level contexts and will not be available in an <iframe> for example.





Return value

An Array containing the different transports supported by the authenticator or nothing if this information is not available. The elements of this array are supposed to be in lexicographical order. Their values may be :

  • "usb": the authenticator can be contacted via a removable USB link
  • "nfc": the authenticator may be used over NFC (Near Field Communication)
  • "ble": the authenticator may be used over BLE (Bluetooth Low Energy)
  • "internal": the authenticator is specifically bound to the client device (cannot be removed).


const publicKey = {
  challenge: new Uint8Array([
    21, 31, 105 /* 29 more random bytes generated by the server */,
  rp: {
    name: "Example CORP",
    id: "",
  user: {
    id: new Uint8Array(16),
    name: "",
    displayName: "John Doe",
  pubKeyCredParams: [
      type: "public-key",
      alg: -7,

  .create({ publicKey })
  .then((newCredentialInfo) => {
    const transports = newCredentialInfo.response.getTransports();
    console.table(transports); // may be something like ["internal", "nfc", "usb"]
  .catch((err) => console.error(err));


Web Authentication: An API for accessing Public Key Credentials - Level 3
# dom-authenticatorattestationresponse-gettransports

Browser compatibility

BCD tables only load in the browser