Skip to main content
GET
/
api
/
public
/
legal
/
status
{
  "MustAgreeToTerms": true,
  "GeneralTermsAccepted": true,
  "GeneralTerms": "<string>",
  "ContractTerms": [
    {}
  ],
  "ContractTerms[].Id": 123,
  "ContractTerms[].StartDate": "<string>",
  "ContractTerms[].TariffName": "<string>",
  "ContractTerms[].TermsAndConditions": "<string>",
  "401 Unauthorized": {}
}

Get Legal Status

Returns the legal terms acceptance status for the current customer. The portal checks this on every authenticated session bootstrap. If MustAgreeToTerms is true, a blocking modal is shown with the full terms text before the customer can continue.

Authentication

Requires a valid customer bearer token.

Response

MustAgreeToTerms
boolean
true when the customer must accept one or more outstanding terms before accessing the portal. Show the acceptance modal when this is true.
GeneralTermsAccepted
boolean
Whether the customer has already accepted the space’s general terms and conditions.
GeneralTerms
string
HTML or plain-text content of the general terms and conditions to display to the customer.
ContractTerms
array | undefined
Array of contract-specific terms the customer must accept. Present only when there are pending contract terms. Each entry contains:
ContractTerms[].Id
number
Unique identifier of the contract.
ContractTerms[].StartDate
string
ISO 8601 date when the contract starts.
ContractTerms[].TariffName
string
Display name of the plan associated with this contract.
ContractTerms[].TermsAndConditions
string
HTML or plain-text content of the contract-specific terms to display.

Example Response

{
  "MustAgreeToTerms": true,
  "GeneralTermsAccepted": false,
  "GeneralTerms": "<p>By using this portal you agree to our <a href='...'>terms</a>.</p>",
  "ContractTerms": [
    {
      "Id": 101,
      "StartDate": "2026-04-01T00:00:00Z",
      "TariffName": "Hot Desk Monthly",
      "TermsAndConditions": "<p>These terms govern your Hot Desk Monthly membership...</p>"
    }
  ]
}

TypeScript Integration

import endpoints from '@/api/endpoints'
import { useTypedData } from '@/api/fetchData'

const endpoint = endpoints.system.legal_status()

const { resource: legalStatus } = useTypedData(httpClient, endpoint)

if (legalStatus?.MustAgreeToTerms) {
  // Show the legal terms modal
}

Usage in Portal

ContextSource file
Session bootstrap — legal terms gatesrc/App.tsx or auth context
Legal terms acceptance modalsrc/components/LegalTerms/

Error Responses

401 Unauthorized
error
The bearer token is missing, expired, or invalid. The customer must sign in.
MethodEndpointDescription
POST/api/public/legal/acceptRecord acceptance of outstanding terms