Platform API
The company operating system exposes versioned contracts rather than giving agents direct access to internal data. These platform endpoints cover subscription, usage and signup; module services provide the governed business tools.
Read the subscription
GET /api/v1/platform/subscription
Returns the tenant-safe commercial status, cycle, period, purchased modules, usage and mirrored invoices visible to the authenticated workspace.
{
"status": "ACTIVE",
"cycle": "ANNUAL",
"modules": [{ "code": "finance", "band": "C", "purchased": true }]
}Read the public catalogue
GET /api/v1/signup/catalogue
Returns the published GBP price book, optional independently published TRY book, module/band rules and live signup-region availability. The client never supplies an amount.
{
"priceBooks": [{ "code": "GBP-UK", "currency": "GBP" }],
"signupRegions": [{ "code": "uk-london", "available": true }]
}Check a workspace address
GET /api/v1/signup/slug-available?slug=northrig
Returns one boolean with bounded disclosure. The endpoint is rate-limited and the reservation remains atomic at lead creation.
{ "available": true }Create a verified signup lead
POST /api/v1/signup/leads
Stores the requested workspace, identity mode, branding seed and enabled region, then sends verification. It does not create a database before verification.
{
"leadId": "opaque-status-proof",
"verificationRequired": true
}Redeem email verification
POST /api/v1/signup/verify
Redeems the one-time email token and returns the non-guessable status proof. B3 keeps the verification token out of query strings.
{ "leadId": "opaque-status-proof", "verified": true }Read provisioning status
POST /api/v1/signup/status
Uses the non-guessable lead proof to project B1 provisioning progress without exposing placement, database credentials or raw worker errors.
{
"leadId": "opaque-status-proof",
"status": "provisioning",
"activeStage": "schema_verified"
}Send workspace discovery email
POST /api/v1/signup/workspaces/email
Accepts a work email and always returns the same public acceptance result. Workspace names and delivery outcomes remain out-of-band.
{ "accepted": true }Webhook events
Every commercial state change is emitted after it is durably recorded. Consumers should deduplicate by event id.
| Event | When |
|---|---|
| subscription.updated | Basket, band, cycle or status changed |
| usage.threshold_reached | A billable metric reaches a configured warning threshold |
| invoice.paid | The mirrored platform invoice is paid |
| workspace.ready | Provisioning completed and the first administrator was invited |