List Published Plans
Returns all plans (tariffs) that are published and available for new customers to sign up for. Optionally accepts an invite GUID to show invite-only plans.
Authentication
No authentication required.
Query Parameters
Invite GUID to unlock private/invite-only plans. Omit to see only publicly listed plans.
Comma-separated list of field paths to include in the response. When provided, only the
specified fields are returned — useful for reducing payload size. Supports nested paths
using dot notation. Example: _shape=Plans.Name,Plans.Price,Plans.Description.
Response
Returns an object with a Plans array. Each plan has the following fields:
Identity
| Field | Type | Description |
|---|
Id | number | Unique identifier for the plan |
UniqueId | string | GUID identifier |
Core
| Field | Type | Description |
|---|
Name | string | Display name of the plan |
Description | string | Plan description (may contain HTML) |
TermsAndConditions | string | Terms and conditions text |
GroupName | string | Plan group name for categorisation |
SystemTariffType | number | Internal tariff type identifier |
IsVirtualOffice | boolean | Whether this is a virtual office plan |
Pricing
| Field | Type | Description |
|---|
Price | string | Formatted price string |
PriceFormatted | string | Locale-formatted price string |
PriceDecimal | number | Price as decimal value |
PriceDecimalExTax | number | Price excluding tax |
TotalPrice | string | Total price string |
TotalPriceFormatted | string | Locale-formatted total price |
TotalPriceDecimal | number | Total price as decimal |
Currency | Currency | Currency object (nested) |
TaxRate | number? | Applicable tax rate |
Billing
| Field | Type | Description |
|---|
InvoiceEvery | number | Invoice frequency |
InvoiceEveryWeeks | number | Invoice frequency in weeks |
InvoicePeriod | number | Invoice period |
InvoiceInMonths | boolean | Whether billing is in months |
DefaultContractTerm | number? | Default contract term length |
DisablePortalCancellations | boolean | Whether portal cancellations are disabled |
CanBePaused | boolean | Whether the plan can be paused |
KeepNewAccountsOnHold | boolean | Whether new accounts are kept on hold |
Limits
| Field | Type | Description |
|---|
CheckinPricePlanLimit | number? | Check-in limit per price plan |
CheckinMonthLimit | number? | Monthly check-in limit |
CheckinWeekLimit | number? | Weekly check-in limit |
HoursPricePlanLimit | number? | Hours limit per price plan |
HoursMonthLimit | number? | Monthly hours limit |
HoursWeekLimit | number? | Weekly hours limit |
Discounts
| Field | Type | Description |
|---|
DiscountCharges | number? | Discount on charges |
DiscountExtraServices | number? | Discount on extra services |
DiscountTimePasses | number? | Discount on time passes |
Virtual Office
| Field | Type | Description |
|---|
MaximumAddresses | number? | Maximum virtual addresses |
MaximumCompanyAliases | number? | Maximum company aliases |
MaximumRecipients | number? | Maximum mail recipients |
Nested Objects
| Field | Type | Description |
|---|
TimePasses | TariffTimePass[] | Time passes included in the plan |
ExtraServices | TariffExtraService[] | Extra services included |
BookingCredits | TariffBookingCredit[] | Booking credits included |
SignupProducts | Product[] | Products added at sign-up |
Products | Product[] | Products included with the plan |
Business
| Field | Type | Description |
|---|
BusinessId | number | Business identifier |
BusinessName | string | Business name |
BusinessWebAddress | string | Business web address |
Timestamps (from base)
| Field | Type | Description |
|---|
CreatedOn | string | Record creation timestamp (local) |
UpdatedOn | string | Record last-update timestamp (local) |
CreatedOnUtc | string | Record creation timestamp (UTC) |
UpdatedOnUtc | string | Record last-update timestamp (UTC) |
Examples
Fetch published plans
GET /api/public/plans/published
Fetch with invite code
GET /api/public/plans/published?invite_guid=abc123-def456
TypeScript Integration
import endpoints from '@/api/endpoints'
const { resource: plans } = useTypedData(httpClient, endpoints.plans.published())
// plans.Plans