---
title: "POST /v1/spaces"
method: POST
path: "/v1/spaces"
tags: ["spaces"]
---

# POST /v1/spaces

`POST /v1/spaces`

Creates a space. Can be used to create a named space, or a group chat in `Import mode`. For an example, see [Create a space](https://developers.google.com/workspace/chat/create-spaces). Supports the following types of [authentication](https://developers.google.com/workspace/chat/authenticate-authorize): - [App authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with [administrator approval](https://support.google.com/a?p=chat-app-auth) and one of the following authorization scopes: - `https://www.googleapis.com/auth/chat.app.spaces.create` - `https://www.googleapis.com/auth/chat.app.spaces` - [User authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) with one of the following authorization scopes: - `https://www.googleapis.com/auth/chat.spaces.create` - `https://www.googleapis.com/auth/chat.spaces` - `https://www.googleapis.com/auth/chat.import` (import mode spaces only) When authenticating as an app, the `space.customer` field must be set in the request. When authenticating as an app, the Chat app is added as a member of the space. However, unlike human authentication, the Chat app is not added as a space manager. By default, the Chat app can be removed from the space by all space members. To allow only space managers to remove the app from a space, set `space.permission_settings.manage_apps` to `managers_allowed`. Space membership upon creation depends on whether the space is created in `Import mode`: * **Import mode:** No members are created. * **All other modes:** The calling user is added as a member. This is: * The app itself when using app authentication. * The human user when using user authentication. If you receive the error message `ALREADY_EXISTS` when creating a space, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name.

## Query parameters

- `requestId` string

## Request body

- Space — A space in Google Chat. Spaces are conversations between two or more users or 1:1 messages between a user and a Chat app.
  - `type` 'TYPE_UNSPECIFIED' | 'ROOM' | 'DM' — Output only. Deprecated: Use `space_type` instead. The type of a space.
  - `externalUserAllowed` boolean — Optional. Immutable. Whether this space permits any Google Chat user as a member. Input when creating a space in a Google Workspace organization. Omit this field when creating spaces in the following conditions: * The authenticated user uses a consumer account (unmanaged user account). By default, a space created by a consumer account permits any Google Chat user. For existing spaces, this field is output only.
  - `permissionSettings` PermissionSettings — [Permission settings](https://support.google.com/chat/answer/13340792) that you can specify when updating an existing named space. To set permission settings when creating a space, specify the `PredefinedPermissionSettings` field in your request.
    - `manageMembersAndGroups` PermissionSetting — Represents a space permission setting.
      - `membersAllowed` boolean — Optional. Whether basic space members (`ROLE_MEMBER`) have this permission.
      - `assistantManagersAllowed` boolean — Optional. Whether space managers `ROLE_ASSISTANT_MANAGER`) have this permission.
      - `managersAllowed` boolean — Optional. Whether space owners (`ROLE_MANAGER`) have this permission.
    - `toggleHistory` PermissionSetting — Represents a space permission setting.
      - `membersAllowed` boolean — Optional. Whether basic space members (`ROLE_MEMBER`) have this permission.
      - `assistantManagersAllowed` boolean — Optional. Whether space managers `ROLE_ASSISTANT_MANAGER`) have this permission.
      - `managersAllowed` boolean — Optional. Whether space owners (`ROLE_MANAGER`) have this permission.
    - `replyMessages` PermissionSetting — Represents a space permission setting.
      - `membersAllowed` boolean — Optional. Whether basic space members (`ROLE_MEMBER`) have this permission.
      - `assistantManagersAllowed` boolean — Optional. Whether space managers `ROLE_ASSISTANT_MANAGER`) have this permission.
      - `managersAllowed` boolean — Optional. Whether space owners (`ROLE_MANAGER`) have this permission.
    - `modifySpaceDetails` PermissionSetting — Represents a space permission setting.
      - `membersAllowed` boolean — Optional. Whether basic space members (`ROLE_MEMBER`) have this permission.
      - `assistantManagersAllowed` boolean — Optional. Whether space managers `ROLE_ASSISTANT_MANAGER`) have this permission.
      - `managersAllowed` boolean — Optional. Whether space owners (`ROLE_MANAGER`) have this permission.
    - `useAtMentionAll` PermissionSetting — Represents a space permission setting.
      - `membersAllowed` boolean — Optional. Whether basic space members (`ROLE_MEMBER`) have this permission.
      - `assistantManagersAllowed` boolean — Optional. Whether space managers `ROLE_ASSISTANT_MANAGER`) have this permission.
      - `managersAllowed` boolean — Optional. Whether space owners (`ROLE_MANAGER`) have this permission.
    - `postMessages` PermissionSetting — Represents a space permission setting.
      - `membersAllowed` boolean — Optional. Whether basic space members (`ROLE_MEMBER`) have this permission.
      - `assistantManagersAllowed` boolean — Optional. Whether space managers `ROLE_ASSISTANT_MANAGER`) have this permission.
      - `managersAllowed` boolean — Optional. Whether space owners (`ROLE_MANAGER`) have this permission.
    - `manageWebhooks` PermissionSetting — Represents a space permission setting.
      - `membersAllowed` boolean — Optional. Whether basic space members (`ROLE_MEMBER`) have this permission.
      - `assistantManagersAllowed` boolean — Optional. Whether space managers `ROLE_ASSISTANT_MANAGER`) have this permission.
      - `managersAllowed` boolean — Optional. Whether space owners (`ROLE_MANAGER`) have this permission.
    - `manageApps` PermissionSetting — Represents a space permission setting.
      - `membersAllowed` boolean — Optional. Whether basic space members (`ROLE_MEMBER`) have this permission.
      - `assistantManagersAllowed` boolean — Optional. Whether space managers `ROLE_ASSISTANT_MANAGER`) have this permission.
      - `managersAllowed` boolean — Optional. Whether space owners (`ROLE_MANAGER`) have this permission.
  - `spaceThreadingState` 'SPACE_THREADING_STATE_UNSPECIFIED' | 'THREADED_MESSAGES' | 'GROUPED_MESSAGES' | 'UNTHREADED_MESSAGES' — Output only. The threading state in the Chat space.
  - `createTime` string, google-datetime — Optional. Immutable. For spaces created in Chat, the time the space was created. This field is output only, except when used in import mode spaces. For import mode spaces, set this field to the historical timestamp at which the space was created in the source in order to preserve the original creation time. Only populated in the output when `spaceType` is `GROUP_CHAT` or `SPACE`.
  - `singleUserBotDm` boolean — Optional. Whether the space is a DM between a Chat app and a single human.
  - `name` string — Identifier. Resource name of the space. Format: `spaces/{space}` Where `{space}` represents the system-assigned ID for the space. You can obtain the space ID by calling the [`spaces.list()`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/list) method or from the space URL. For example, if the space URL is `https://mail.google.com/mail/u/0/#chat/space/AAAAAAAAA`, the space ID is `AAAAAAAAA`.
  - `threaded` boolean — Output only. Deprecated: Use `spaceThreadingState` instead. Whether messages are threaded in this space.
  - `spaceDetails` SpaceDetails — Details about the space including description and rules.
    - `description` string — Optional. A description of the space. For example, describe the space's discussion topic, functional purpose, or participants. Supports up to 150 characters.
    - `guidelines` string — Optional. The space's rules, expectations, and etiquette. Supports up to 5,000 characters.
  - `importMode` boolean — Optional. Whether this space is created in `Import Mode` as part of a data migration into Google Workspace. While spaces are being imported, they aren't visible to users until the import is complete. Creating a space in `Import Mode`requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).
  - `spaceType` 'SPACE_TYPE_UNSPECIFIED' | 'SPACE' | 'GROUP_CHAT' | 'DIRECT_MESSAGE' — Optional. The type of space. Required when creating a space or updating the space type of a space. Output only for other usage.
  - `importModeExpireTime` string, google-datetime — Output only. The time when the space will be automatically deleted by the system if it remains in import mode. Each space created in import mode must exit this mode before this expire time using `spaces.completeImport`. This field is only populated for spaces that were created with import mode.
  - `customer` string — Optional. Immutable. The customer id of the domain of the space. Required only when creating a space with [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) and `SpaceType` is `SPACE`, otherwise should not be set. In the format `customers/{customer}`, where `customer` is the `id` from the [Admin SDK customer resource](https://developers.google.com/admin-sdk/directory/reference/rest/v1/customers). Private apps can also use the `customers/my_customer` alias to create the space in the same Google Workspace organization as the app. This field isn't populated for direct messages (DMs) or when the space is created by non-Google Workspace users.
  - `spaceUri` string — Output only. The URI for a user to access the space.
  - `spaceHistoryState` 'HISTORY_STATE_UNSPECIFIED' | 'HISTORY_OFF' | 'HISTORY_ON' — Optional. The message history state for messages and threads in this space.
  - `accessSettings` AccessSettings — Represents the [access setting](https://support.google.com/chat/answer/11971020) of the space.
    - `accessState` 'ACCESS_STATE_UNSPECIFIED' | 'PRIVATE' | 'DISCOVERABLE' — Output only. Indicates the access state of the space.
    - `accessPermissionSettings` AccessPermissionSettings — Access permission settings for a space.
      - `discoverSpaceSetting` AccessPermissionSetting — An access permission setting.
        - `principals` Principal[] — Optional. Unordered list. Allowed principals for this permission.
          - `audience` Audience — A target audience in Google Chat. A target audience represents a group of users within a Google Workspace organization, defined by an administrator. Target audiences are used to configure access and visibility settings for resources, such as making a space discoverable to a specific group of users. For more details, see [Target audiences](https://support.google.com/a/answer/9934697) and [Make a space discoverable to a target audience](https://developers.google.com/workspace/chat/space-target-audience).
            - `name` string — The resource name of the [target audience](https://support.google.com/a/answer/9934697) who can discover or join the space. For details, see [Make a space discoverable to a target audience](https://developers.google.com/workspace/chat/space-target-audience). Format: `audiences/{audience}` To use the default target audience for the Google Workspace organization, set to `audiences/default`.
      - `joinSpaceSetting` AccessPermissionSetting — An access permission setting.
        - `principals` Principal[] — Optional. Unordered list. Allowed principals for this permission.
          - `audience` Audience — A target audience in Google Chat. A target audience represents a group of users within a Google Workspace organization, defined by an administrator. Target audiences are used to configure access and visibility settings for resources, such as making a space discoverable to a specific group of users. For more details, see [Target audiences](https://support.google.com/a/answer/9934697) and [Make a space discoverable to a target audience](https://developers.google.com/workspace/chat/space-target-audience).
            - `name` string — The resource name of the [target audience](https://support.google.com/a/answer/9934697) who can discover or join the space. For details, see [Make a space discoverable to a target audience](https://developers.google.com/workspace/chat/space-target-audience). Format: `audiences/{audience}` To use the default target audience for the Google Workspace organization, set to `audiences/default`.
    - `audience` string — Optional. The resource name of the [target audience](https://support.google.com/a/answer/9934697) who can discover the space, join the space, and preview the messages in the space. If unset, only users or Google Groups who have been individually invited or added to the space can access it. For details, see [Make a space discoverable to a target audience](https://developers.google.com/workspace/chat/space-target-audience). Format: `audiences/{audience}` To use the default target audience for the Google Workspace organization, set to `audiences/default`. Reading the target audience supports: - [User authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) - [App authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with [administrator approval](https://support.google.com/a?p=chat-app-auth) with the `chat.app.spaces` scope. This field is not populated when using the `chat.bot` scope with [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). Setting the target audience requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).
  - `lastActiveTime` string, google-datetime — Output only. Timestamp of the last message in the space.
  - `membershipCount` MembershipCount — Represents the count of memberships of a space, grouped into categories.
    - `joinedDirectHumanUserCount` integer — Output only. Count of human users that have directly joined the space, not counting users joined by having membership in a joined group.
    - `joinedGroupCount` integer — Output only. Count of all groups that have directly joined the space.
  - `displayName` string — Optional. The space's display name. Required when [creating a space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create) with a `spaceType` of `SPACE`. If you receive the error message `ALREADY_EXISTS` when creating a space or updating the `displayName`, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. For direct messages, this field might be empty. Supports up to 128 characters.
  - `adminInstalled` boolean — Output only. For direct message (DM) spaces with a Chat app, whether the space was created by a Google Workspace administrator. Administrators can install and set up a direct message with a Chat app on behalf of users in their organization. To support admin install, your Chat app must feature direct messaging.
  - `predefinedPermissionSettings` 'PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED' | 'COLLABORATION_SPACE' | 'ANNOUNCEMENT_SPACE' — Optional. Input only. Predefined space permission settings, input only when creating a space. If the field is not set, a collaboration space is created. After you create the space, settings are populated in the `PermissionSettings` field. Setting predefined permission settings supports: - [App authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with [administrator approval](https://support.google.com/a?p=chat-app-auth) with the `chat.app.spaces` or `chat.app.spaces.create` scopes. - [User authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user)

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/chat.md) · [All operations](https://skmtc.net/google/apis/chat/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/chat/versions/a57a778f1fcb/schema)
