The RTCIceServer dictionary's credentialType property is a string value from the RTCIceCredentialType enum which indicates what type of credential the RTCIceServer.credential value is. The default is password.


var iceServer = {
                  credentialType = newCredentialType,

var credentialType = iceServer.credentialType;

iceServer.credentialType = newCredentialType;


The permitted values are found in the RTCIceCredentialType enumerated string type:

The RTCIceServer requires the use of OAuth 2.0 to authenticate in order to use the ICE server described. This process is detailed in RFC 7635. This property was formerly called token.
The RTCIceServer requires a username and password to authenticate prior to using the described ICE server.


This example creates a new RTCPeerConnection which will use a TURN server at turnserver.example.org to negotiate connections. Logging into the TURN server will use the username "webrtc" and the creative password "turnpassword".

myPeerConnection = new RTCPeerConnection({
  iceServers: [
      urls: "turn:turnserver.example.org",  // A TURN server
      username: "webrtc",
      credential: "turnpassword",
      credentialType: "password"


Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCIceServer.credential' in that specification.
Candidate Recommendation Initial specification.

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
credentialTypeChrome Full support YesEdge Full support ≤79Firefox Full support 47IE No support NoOpera ? Safari ? WebView Android No support NoChrome Android Full support YesFirefox Android Full support 47Opera Android ? Safari iOS ? Samsung Internet Android Full support Yes


Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown

See also