Skip to content
Putting technology to work.
Insights to guide decisions and action.

Search articles

Creating sidebar sections with the Chat API: specs and limits

Table of contents · 7 items

If you create Google Chat spaces for each project and each client, dozens of spaces pile up in the sidebar. Members who newly join a project have to start by searching for which ones they are responsible for. Chat has "sections" that group spaces under any name you like, but creating and arranging them is manual work for each person.

The Google Chat API has a resource called users.sections that handles these sections. It includes operations to create, rename, delete and reorder sections, and to move spaces between sections. The Chat API release notes announced it as a developer preview on December 11, 2025, and as generally available (GA) on April 1, 2026. Based on the release notes, the guides for sections, the reference and the Chat API Discovery document (the machine-readable definition of the API, revision 20261013), this article sorts out how it works and its limits.

Only the caller's own sidebar can be handled

Sections are a per-user resource. The resource name takes the form users/{user}/sections/{section}, and the description of list, which lists them, says it "only supports listing the calling user's sections." Each method requires user authentication. The guide's prerequisites list a Business or Enterprise Google Workspace account with access to Google Chat. There are two scopes.

  • chat.users.sections: view, create, update and delete sections, and move and list items within sections
  • chat.users.sections.readonly: view sections and their items only

Assume this is not a feature for administrators to push the same sections to everyone's sidebar. To "prepare a Project A section for people who join Project A," you would build it as a script or app that the user runs with their own permissions. The editorial team has not checked whether it can be run on behalf of others using domain-wide delegation.

System sections and sections you create

By definition, sections fall into two types.

  • System sections: provided by Chat. Their names are fixed, and they cannot be created, deleted or renamed
    • default-direct-messages: direct messages and group chats not in a custom section
    • default-spaces: spaces not in a custom section
    • default-apps: installed apps
  • Custom sections (CUSTOM_SECTION): created by users. Only this type can be created, renamed and deleted

When creating a custom section, a display name (displayName) is required, up to 80 characters. display_name is also the only field that renaming (patch) can update.

By definition, only spaces can be placed in a section ("Only spaces can be section items"). A space here means the API's spaces resource, and direct messages and group chats are also treated as types of spaces (DIRECT_MESSAGE and GROUP_CHAT). The Help Center also explains that direct messages can be moved into sections.

How to move spaces, and what happens on deletion

To move a space to another section, use users.sections.items.move. What you move is an "item within a section," so first find out which section the space is currently in. With items.list, you can search across all sections by using the wildcard - for the section and narrowing with space = spaces/{space}.

The order of sections is changed with position. You specify either an absolute position (1 or higher) with sortOrder, or the start (START) or end (END) with relativePosition. The section that was at the specified position and those after it each shift back by one.

The description of deletion (delete) includes the following sentence.

If the section contains items, such as spaces, the items are moved to Google Chat’s default sections and are not deleted.

Deleting a section does not delete the spaces in it; they return to the system sections. Even if you build a process that cleans up sections for finished projects, it does not affect the spaces themselves or their messages.

Overview of Google Chat API sections. System sections (default-direct-messages, default-spaces, default-apps) have fixed names and cannot be created or deleted. Custom sections have display names of up to 80 characters and can be created, renamed, deleted and reordered. items.move moves spaces between sections, and when a custom section is deleted, the spaces in it return to the system sections

An example script run by the user

From here on is the editorial team's suggestion. One approach is that a member who joins a project runs it once with their own account, and it gathers the project's spaces into one section placed at the top. The editorial team type-checked the following code against the type definitions of @googleapis/chat 51.2.0 for Node.js and ran it with the API endpoint pointed at a local stub (a test server that returns fixed responses). We did not connect to an actual Google Chat.

import { chat_v1 } from "@googleapis/chat";

export async function groupSpaces(chat: chat_v1.Chat, displayName: string, spaces: string[]) {
  const { data: section } = await chat.users.sections.create({
    parent: "users/me",
    requestBody: { displayName, type: "CUSTOM_SECTION" },
  });
  for (const space of spaces) {
    // スペースが今どのセクションにあるかを、全セクション(-)から探す
    const { data } = await chat.users.sections.items.list({
      parent: "users/me/sections/-",
      filter: `space = ${space}`,
    });
    for (const item of data.sectionItems ?? []) {
      await chat.users.sections.items.move({
        name: item.name!,
        requestBody: { targetSection: section.name! },
      });
    }
  }
  await chat.users.sections.position({
    name: section.name!,
    requestBody: { relativePosition: "START" },
  });
  return section;
}

The requests that reached the stub were POST /v1/users/me/sections, then GET /v1/users/me/sections/-/items?filter=space = spaces/... and POST .../items/{item}:move for each space, and finally POST /v1/users/me/sections/{section}:position.

Before actually using it, decide on the following points.

  1. Do not create duplicate sections with the same name. Before creating, check with list that there is no custom section with the same name. list returns up to 10 items when omitted and up to 100 at most, so people with many sections need pagination
  2. Make the user a member of the spaces first. The targets to move are items in the user's own sidebar, and in the example above, spaces not found with items.list are skipped without doing anything. Since we have not checked what is returned for spaces the user is not a member of, finish adding them to the spaces first, for example with automatic space creation
  3. Do not break the existing arrangement. Spaces already in sections the user created are also moved by items.move. Design it so the user can choose whether overwriting is OK

Ways to make project information easier to find with the Chat API are covered in message search and pinning. For the "Meetings" section added to the Chat sidebar by default, see Google Chat introduces a new "Meetings" section. Note that as of October 19, 2026, the API's section types (type) have no value corresponding to meetings. We have not checked how it appears from the API.

When it became available

The Chat API release notes announced that it was released as a developer preview (for those registered for early access) on December 11, 2025, and became generally available (GA) on April 1, 2026. Among client libraries, the definition bundled with the Python client (google-api-python-client) supports it from revision 20260405, and @googleapis/chat for Node.js from 44.7.0, released on May 20.

Scope of verification

On October 17, 2026, we retrieved the Google Chat API Discovery document (revision 20261013) and checked each method of users.sections and users.sections.items and the definitions of GoogleChatV1Section, SectionItem, PositionSectionRequest and MoveSectionItemRequest in the original. We confirmed when they were added by comparing the type definitions of @googleapis/chat 44.6.0 and 44.7.0 on npm with the definitions bundled with google-api-python-client 2.193.0 and 2.195.0 (document research). We also type-checked the code example with @googleapis/chat 51.2.0 and ran it against a local stub. On October 19, 2026, we opened the Chat API release notes, each guide for sections (create, delete, list, list items, move and reorder), the users.sections reference and the Help article "Create & organize sections in Google Chat," checked the release stages and dates, the required account and the handling on deletion, and reflected them in this article. We have not tested how it appears in the actual Chat UI.

For running Google Chat spaces or building ways to share information by project, contact us through our free IT and Google Workspace consultation.

References

Share this articleXFacebook
Kakeru Suzuki

Fascinated by the possibilities of technology, has had a deep interest in programming and digital art since student days

Turn this article's theme into your company's next step

The right way forward with Workspace for your company.

We organize data to migrate, sharing rules, and governance structures to map out the journey from implementation to daily operations.

  • Migration and initial setup
  • Sharing and permission organization
  • Governance structure
Consult on Workspace implementation and operations

You can consult with us from the initial conceptual stage. Details from this article will be carried over to the inquiry form.

Receive the latest articles by email