Skip to main content
GET
The API key exchange endpoint authenticates your Portal.io credentials and returns a meta.apiKey value you must include in the X-MSS-API-USERKEY header on all subsequent requests. This is the entry point for every integration: call it once to obtain the key, then use that key to sign all other requests.
For the initial exchange, X-MSS-API-USERKEY must be an empty string and is excluded from the HMAC canonical message. The canonical message is: [HTTP method][base URL without query params][timestamp] — no content-type (GET request) and no user key. See the signing guide for a worked example.

Authorizations

X-MSS-API-APPID
string
header
required

Portal application identifier used as part of HMAC-authenticated API requests.

X-MSS-API-USERKEY
string
header
required

Portal user API key used together with the HMAC signature headers.

X-MSS-CUSTOM-DATE
string
header
required

Timestamp header included in the signed request to prevent replay attacks.

X-MSS-SIGNATURE
string
header
required

HMAC-SHA256 signature for the request, calculated over the canonical string defined in the authentication docs.

Headers

Accept
string
required

Accept Header

Query Parameters

UserName
string
required

user email address

Maximum string length: 256
Password
string<password>
required

user password

Response

Success

AuthenticateResponse

userId
null | string
sessionId
null | string
userName
null | string
displayName
null | string
referrerUrl
null | string
bearerToken
null | string
refreshToken
null | string
refreshTokenExpiry
null | string<date-time>
profileUrl
null | string
roles
string[]
permissions
string[]
authProvider
null | string
meta
DictionaryOfStringAndString · object