Skip to main content
GET
/
api
/
public
/
plans
/
published

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
string
Invite GUID to unlock private/invite-only plans. Omit to see only publicly listed plans.
_shape
string
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

FieldTypeDescription
IdnumberUnique identifier for the plan
UniqueIdstringGUID identifier

Core

FieldTypeDescription
NamestringDisplay name of the plan
DescriptionstringPlan description (may contain HTML)
TermsAndConditionsstringTerms and conditions text
GroupNamestringPlan group name for categorisation
SystemTariffTypenumberInternal tariff type identifier
IsVirtualOfficebooleanWhether this is a virtual office plan

Pricing

FieldTypeDescription
PricestringFormatted price string
PriceFormattedstringLocale-formatted price string
PriceDecimalnumberPrice as decimal value
PriceDecimalExTaxnumberPrice excluding tax
TotalPricestringTotal price string
TotalPriceFormattedstringLocale-formatted total price
TotalPriceDecimalnumberTotal price as decimal
CurrencyCurrencyCurrency object (nested)
TaxRatenumber?Applicable tax rate

Billing

FieldTypeDescription
InvoiceEverynumberInvoice frequency
InvoiceEveryWeeksnumberInvoice frequency in weeks
InvoicePeriodnumberInvoice period
InvoiceInMonthsbooleanWhether billing is in months
DefaultContractTermnumber?Default contract term length
DisablePortalCancellationsbooleanWhether portal cancellations are disabled
CanBePausedbooleanWhether the plan can be paused
KeepNewAccountsOnHoldbooleanWhether new accounts are kept on hold

Limits

FieldTypeDescription
CheckinPricePlanLimitnumber?Check-in limit per price plan
CheckinMonthLimitnumber?Monthly check-in limit
CheckinWeekLimitnumber?Weekly check-in limit
HoursPricePlanLimitnumber?Hours limit per price plan
HoursMonthLimitnumber?Monthly hours limit
HoursWeekLimitnumber?Weekly hours limit

Discounts

FieldTypeDescription
DiscountChargesnumber?Discount on charges
DiscountExtraServicesnumber?Discount on extra services
DiscountTimePassesnumber?Discount on time passes

Virtual Office

FieldTypeDescription
MaximumAddressesnumber?Maximum virtual addresses
MaximumCompanyAliasesnumber?Maximum company aliases
MaximumRecipientsnumber?Maximum mail recipients

Nested Objects

FieldTypeDescription
TimePassesTariffTimePass[]Time passes included in the plan
ExtraServicesTariffExtraService[]Extra services included
BookingCreditsTariffBookingCredit[]Booking credits included
SignupProductsProduct[]Products added at sign-up
ProductsProduct[]Products included with the plan

Business

FieldTypeDescription
BusinessIdnumberBusiness identifier
BusinessNamestringBusiness name
BusinessWebAddressstringBusiness web address

Timestamps (from base)

FieldTypeDescription
CreatedOnstringRecord creation timestamp (local)
UpdatedOnstringRecord last-update timestamp (local)
CreatedOnUtcstringRecord creation timestamp (UTC)
UpdatedOnUtcstringRecord 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