diff --git a/BattlePlace/WebApi/Types.hs b/BattlePlace/WebApi/Types.hs
--- a/BattlePlace/WebApi/Types.hs
+++ b/BattlePlace/WebApi/Types.hs
@@ -28,6 +28,7 @@
 	, SessionToken(..)
 	, SessionId(..)
 	, ServerSessionToken(..)
+	, ExternalSessionId(..)
 	, MatchSession(..)
 	, MatchServerSession(..)
 	, MatchTeam(..)
@@ -228,9 +229,13 @@
 	toJSON = J.genericToJSON jsonOptions
 	toEncoding = J.genericToEncoding jsonOptions
 
+-- | External session token for exposure to clients and servers.
+newtype ExternalSessionId = ExternalSessionId T.Text deriving (Eq, Hashable, J.FromJSON, J.ToJSON)
+
 -- | Match session.
 data MatchSession = MatchSession
-	{ matchSession_sessionToken :: !(InternalToken SessionToken)
+	{ matchSession_externalSessionId :: !ExternalSessionId
+	, matchSession_sessionToken :: !(InternalToken SessionToken)
 	, matchSession_teams :: !(V.Vector MatchTeam)
 	, matchSession_teamIndex :: {-# UNPACK #-} !Int
 	, matchSession_mateIndex :: {-# UNPACK #-} !Int
@@ -244,7 +249,8 @@
 
 -- | Match server session.
 data MatchServerSession = MatchServerSession
-	{ matchServerSession_serverSessionToken :: !(InternalToken ServerSessionToken)
+	{ matchServerSession_externalSessionId :: !ExternalSessionId
+	, matchServerSession_serverSessionToken :: !(InternalToken ServerSessionToken)
 	, matchServerSession_teams :: !(V.Vector MatchTeam)
 	, matchServerSession_matchTag :: !MatchTag
 	, matchServerSession_serverTag :: !ServerTag
diff --git a/battleplace.cabal b/battleplace.cabal
--- a/battleplace.cabal
+++ b/battleplace.cabal
@@ -1,5 +1,5 @@
 name:                battleplace
-version:             0.1.0.8
+version:             0.1.0.9
 synopsis:            Core definitions for BattlePlace.io service
 description:         Core definitions for BattlePlace.io service
 license:             MIT
