Skip to content
Sections

Guest portal

Exchange a Guest Portal bootstrap token

POST/guest-portal/exchange

Atomically consumes a fragment-delivered bootstrap capability and returns a short-lived continuation token.

Authentication

A personal credential is supplied in body: guest-portal-bootstrap-token.

Connection guide

Parameters

No path, query or ordinary header parameters. See authentication and request body below.

Request body

Required

Bootstrap token recovered from the URL fragment and exchanged exactly once.

application/json

ExchangeGuestPortalTokenDto
Full definition
{
  "$ref": "#/components/schemas/ExchangeGuestPortalTokenDto"
}

Responses

200Short-lived Guest Portal continuation token.
GuestPortalBootstrapExchangeResultDto
Full definition
{
  "$ref": "#/components/schemas/GuestPortalBootstrapExchangeResultDto"
}
Example response · 200 · application/json
{
  "token": "synthetic-example-credentialxxxx",
  "expiresAt": "2026-12-31T18:00:00.000Z"
}

Schemas

ExchangeGuestPortalTokenDto

One-time Guest Portal bootstrap-token exchange request.

tokenRequired

Bootstrap token recovered from the URL fragment.

string
Full definition
{
  "type": "string",
  "minLength": 48,
  "maxLength": 48,
  "pattern": "^gpb2_[A-Za-z0-9_-]{43}$",
  "example": "gpb2_synthetic-example-credentialxxxxxxxxxxxxxxx",
  "description": "Bootstrap token recovered from the URL fragment."
}
Full definition
{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "minLength": 48,
      "maxLength": 48,
      "pattern": "^gpb2_[A-Za-z0-9_-]{43}$",
      "example": "gpb2_synthetic-example-credentialxxxxxxxxxxxxxxx",
      "description": "Bootstrap token recovered from the URL fragment."
    }
  },
  "required": [
    "token"
  ],
  "description": "One-time Guest Portal bootstrap-token exchange request.",
  "example": {
    "token": "gpb2_synthetic-example-credentialxxxxxxxxxxxxxxx"
  }
}
GuestPortalBootstrapExchangeResultDto

Short-lived continuation returned after one-time bootstrap-token consumption.

tokenRequired

Rotated Guest Portal continuation token.

string
Full definition
{
  "type": "string",
  "minLength": 32,
  "description": "Rotated Guest Portal continuation token.",
  "example": "synthetic-example-credentialxxxx"
}
expiresAtRequired

Absolute expiration time for the continuation token.

string · date-time
Full definition
{
  "type": "string",
  "format": "date-time",
  "description": "Absolute expiration time for the continuation token.",
  "example": "2026-12-31T18:00:00.000Z"
}
Full definition
{
  "type": "object",
  "description": "Short-lived continuation returned after one-time bootstrap-token consumption.",
  "required": [
    "token",
    "expiresAt"
  ],
  "properties": {
    "token": {
      "type": "string",
      "minLength": 32,
      "description": "Rotated Guest Portal continuation token.",
      "example": "synthetic-example-credentialxxxx"
    },
    "expiresAt": {
      "type": "string",
      "format": "date-time",
      "description": "Absolute expiration time for the continuation token.",
      "example": "2026-12-31T18:00:00.000Z"
    }
  },
  "example": {
    "token": "synthetic-example-credentialxxxx",
    "expiresAt": "2026-12-31T18:00:00.000Z"
  }
}

Hallify uses essential cookies and optional analytics.

Essential cookies keep sign-in, locale, and theme preferences working. Analytics is off until you choose to allow it.