---
title: "GET alias of POST /v1/signup/workspace — join a listed workspace (action=join&team_id=…), create one (action=create&workspace_name=…), or (after create, for a non-public verified domain) open it to domain-join (action=enable_domain_join). Same authz + refusals as the POST (a non-joinable team_id → 403; only the user's own verified non-public company domain is ever accepted)."
method: GET
path: "/v1/signup/workspace"
---

# GET alias of POST /v1/signup/workspace — join a listed workspace (action=join&team_id=…), create one (action=create&workspace_name=…), or (after create, for a non-public verified domain) open it to domain-join (action=enable_domain_join). Same authz + refusals as the POST (a non-joinable team_id → 403; only the user's own verified non-public company domain is ever accepted).

`GET /v1/signup/workspace`

## Request

- Base URL: `https://api.usebubbles.com`
- URL: `https://api.usebubbles.com/v1/signup/workspace`
- Auth: none required

## Query parameters

- `signup_session` string
- `action` string
- `team_id` string
- `workspace_name` string

## Response `200`

Success.

- SignupWorkspaceResponse: POST /v1/signup/workspace response — workspace ready.
  - `next_step` 'calendar', required: The next call to make.
  - `team_id` string: The workspace the user joined or created.
  - `pro_trial` SignupProTrial: The new workspace's free Pro-trial status (present only when creating).
    - `active` boolean, required: Whether the new workspace is on a free Pro trial.
    - `plan` string, required: The workspace plan (e.g. "pro").
    - `benefits` string[], required: The Pro plan benefits to relay to the user.
  - `domain_join` SignupDomainJoin: Whether the user may open their new workspace to their verified email domain (present only when creating).
    - `available` boolean, required: True when the verified email domain is a non-public company domain that can be offered for auto-join.
    - `domain` string, required: The user's verified email domain.
  - `domain_join_enabled` boolean: True on an action:"enable_domain_join" response — the domain is now open for auto-join.
  - `domain` string: The domain opened for auto-join (enable_domain_join response).
  - `agent_context` string, required: Agent-facing guidance for this step: what happened, what to tell the user, and what to ask/call next.
  - `relay_to_user` string, required: Plain-language text for the agent to show the user.
  - `signup_session` string, required: Opaque token advanced to the calendar step.

## Other responses

- `400`: A query parameter or request body was malformed (invalid_request).
- `500`: An unexpected server error occurred (internal_error).

---

[API](https://skmtc.dev/usebubbles/apis/bubbles-public-api.md) - [All operations](https://skmtc.dev/usebubbles/apis/bubbles-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usebubbles/apis/bubbles-public-api/revisions/31570f5d4b05?raw)
