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
enum<string>
required

Accept Header

Available options:
application/json

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
responseStatus
ResponseStatus · object

ResponseStatus

meta
DictionaryOfStringAndString · object