---
title: "Create Workspace"
method: POST
path: "/api/v1/workspaces"
tags: ["Workspace"]
---

# Create Workspace

`POST /api/v1/workspaces`

Creates a new workspace and returns it.

## Request body

- BodyE1a528d7
  - `name` string, nullable — Name of the workspace.
  - `description` string, nullable — Description of the workspace.
  - `is_link_sharing_enabled` boolean — Whether link sharing is enabled for the workspace.
  - `is_guest_allowed` boolean — Whether guests are allowed in the workspace.
  - `domain_name` string, nullable — Workspace email domain.
  - `domain_discovery` boolean — Whether users with matching email domains can discover this workspace.
  - `restrict_email_domains` boolean — Whether workspace invites are restricted to workspace domain.
  - `properties` PublicWorkspaceProperties — Client-settable workspace properties. Trusted-only provenance fields are rejected outright (including explicit nulls) so the public create/update surfaces can neither opt a workspace into import behavior nor clear its provenance.
    - `industry` 'agriculture' | 'arts_entertainment' | 'automotive' | 'banking_financial_services' | 'construction' | 'consulting' | 'consumer_goods' | 'education' | 'energy_utilities' | 'food_beverages' | 'government_public_sector' | 'healthcare_life_sciences' | 'information_technology' | 'insurance' | 'legal_services' | 'manufacturing' | 'media_communications' | 'non_profit' | 'pharmaceuticals' | 'real_estate' | 'retail_wholesale' | 'telecommunications' | 'transportation_logistics' | 'travel_hospitality' | 'other'
    - `department` 'administration' | 'customer_service' | 'finance_accounting' | 'human_resources' | 'information_technology' | 'legal' | 'marketing' | 'operations' | 'product_development' | 'research_development' | 'sales' | 'supply_chain_management' | 'engineering' | 'quality_assurance' | 'executive_management' | 'other'
    - `organization_size` 'size_1' | 'size_2_to_10' | 'size_11_to_50' | 'size_51_to_100' | 'size_101_to_250' | 'size_51_to_250' | 'more_than_250'
    - `intended_team_size` 'size_1' | 'size_2_to_10' | 'size_11_to_50' | 'more_than_50' | 'size_2_to_7' | 'size_8_to_15' | 'size_16_to_24' | 'more_than_25'
    - `type_of_work` 'projects' | 'processes' | 'both'
    - `creator_role` 'owner_founder' | 'leader' | 'individual_contributor'
    - `region` string, nullable — 2-letter continent code, possible values are `AF`, `AS`, `EU`, `NA`, `SA`, `OC`, and `AN`.
    - `country` string, nullable — 2-letter ISO 3166-1 alpha-2 country code.
    - `default_access_level` 'restricted' | 'team'
    - `desktop_workspace_modal` 'TRIAL_OFFER' — Enum to indicate when desktop should show workspace modal
    - `beta_enabled` boolean — Whether beta features are enabled for the workspace.
    - `acquisition_source` 'high_paid_channel'
    - `team_acquisition_cohort` 'type_1_unaware' | 'type_2_unconvinced' | 'type_3_reverted'
    - `acquisition_loop_last_show` string, nullable — Date when the acquisition loop was last shown in YYYY-MM-DD format.
    - `hdyhau` 'friend' | 'social_media' | 'ai_chatbot' | 'search_engine' | 'app_store' | 'other'
    - `onboarding_filter_id` integer, nullable — ID of the workspace assigned filter created during onboarding.
    - `created_platform` 'web' | 'ios' | 'android'
  - `is_trial_pending` boolean — Whether the workspace is waiting for trial confirmation.

## Response `200`

Successful Response

- object

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

---

[API](https://skmtc.net/todoist/apis/todoist-api.md) · [All operations](https://skmtc.net/todoist/apis/todoist-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/todoist/todoist-api/revisions/69a962f1578f/schema)
