Method: spaces.create

  • Creates a space in Google Chat, which can be a named space or a group chat, supporting app and user authentication.

  • When using app authentication, the space.customer field is required and no members are added in Import mode; otherwise, the calling user becomes a member.

  • Uses the POST https://chat.googleapis.com/v1/spaces HTTP request to create a space and requires specific OAuth scopes for authorization.

  • The request body should contain a Space object and the response, if successful, will contain the newly created Space object.

  • If the displayName already exists, an ALREADY_EXISTS error will be returned, suggesting to try a different displayName.

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.

Supports the following types of authentication:

  • App authentication with administrator approval 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 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 managersAllowed.

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.

HTTP request

POST https://chat.googleapis.com/v1/spaces

The URL uses gRPC Transcoding syntax.

Query parameters

Parameters
requestId

string

Optional. A unique ID for this request. A random UUID is recommended. Specifying a request ID makes the request idempotent, which ensures that multiple identical requests with the same request ID result in only a single space being created. Subsequent requests with the same request ID return the existing space and do not update the space, even if the requested details differ from the current state.

To use this field effectively:

  • Ensure that subsequent requests are identical and use the same authentication credentials as the original request.
  • If a space was already created with the provided request ID, the request returns that space. Note that the returned space might not be fully populated; the API echoes the space in your request with the system-assigned resource name populated. To retrieve the latest metadata for the space, call spaces.get.
  • Reusing an existing request ID with a different authenticated user results in an error.

Request body

The request body contains an instance of Space.

Response body

If successful, the response body contains a newly created instance of Space.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/chat.app.spaces.create
  • https://www.googleapis.com/auth/chat.app.spaces
  • https://www.googleapis.com/auth/chat.import
  • https://www.googleapis.com/auth/chat.spaces
  • https://www.googleapis.com/auth/chat.spaces.create

For more information, see the Authorization guide.