![Create a Google Meet space using the spaces.create method](https://developers.google.com/static/workspace/meet/api/images/meet-core-api.svg)

This guide explains how the Google Meet REST API lets you create and manage meetings for
Google Meet.

A [meeting space](https://developers.google.com/workspace/meet/api/guides/overview#meeting-space) represents
a virtual place or a persistent object (such as a meeting room) where
conferences are held. Only one active conference can be held in one space at any
time. A meeting space also helps users meet and find shared resources.

To work with meeting spaces, see [Manage meeting
spaces](https://developers.google.com/workspace/meet/api/guides/manage-meeting-spaces). To learn how to
programmatically configure a meeting space, see [Configure meeting space
settings](https://developers.google.com/workspace/meet/api/guides/meeting-spaces-configuration). To manage
meeting space members, see [Manage meeting space
members](https://developers.google.com/workspace/meet/api/guides/meeting-space-members).

## Meeting space method permissions

The following comparison table details the meeting roles required to use the
meeting space methods:

| Method | Owners | Participants | Others |
|---|---|---|---|
| `endActiveConference` | Yes | No | No |
| `get` | Yes | Yes | Yes |
| with settings | Yes | No | No |
| with active conference | Yes | Yes | No |
| `patch` | Yes | No | No |

> [!NOTE]
> **Note:** Meeting members assigned the `COHOST` role can perform most space management actions, but cannot configure auto artifacts or alter moderation settings. To manage space members, see [Manage meeting space
> members](https://developers.google.com/workspace/meet/api/guides/meeting-space-members).

## How Meet identifies a meeting space

The Meet REST API generates a
[`spaces`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces) resource for each
meeting space. The `spaces` resource offers multiple entry points for joining a
conference.

The following table shows how to identify and join a meeting space:

| Field name | Description |
|---|---|
| [`name`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces#Space.FIELDS.name) | The name of the space. The `{space}` string is the resource identifier for the space and is formatted as `spaces/{space}`. It's a unique, server-generated ID and is case sensitive. For example, `spaces/jQCFfuBOdN5z`. |
| [`meetingCode`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces#Space.FIELDS.meeting_code) | The alias for the space name. The `{meetingCode}` is a typeable, unique character string and is non-case sensitive. It's formatted as `spaces/{meetingCode}`. For example, `spaces/abc-mnop-xyz`. The maximum length is 128 characters. It forms part of the [`meetingUri`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces#Space.FIELDS.meeting_uri): `https://meet.google.com/abc-mnop-xyz`. > [!WARNING] > **Warning:** A `meetingCode` shouldn't be stored long term as it can become dissociated from a meeting space and it can be reused for different meeting spaces in the future. Generally, a `meetingCode` expires 365 days after last use. For more information, see [Learn about meeting codes in Google Meet](https://support.google.com/meet/answer/10710509). |
| [`phoneAccess`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces#Space.FIELDS.phone_access) | The phone access methods for this meeting space. The `phoneAccess` object contains information required to dial into a conference including the regional phone numbers for the meeting space and a PIN code specific to that phone number. The PIN consists of only decimal digits and the length might vary. For example, `"pin": 19707127300`. Similar to the Meet UI, the `spaces` resource includes a limited set of dial-in numbers. You can see additional phone numbers for a meeting space by appending the `{meetingCode}` to the following URL: `https://meet.google.com/tel/`. For example, `https://meet.google.com/tel/abc-mnop-xyz`. |
| [`gatewaySipAccess`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces#Space.FIELDS.gateway_sip_access) | The Session Initiation Protocol (SIP) access methods for this meeting space. A SIP address details how third-party video conferencing hardware can find and join a Meet conference. The `gatewaySipAccess` object contains a URI and numeric access code. Meet supports the [SIP URI scheme](https://en.wikipedia.org/wiki/SIP_URI_scheme). |

To manage a meeting space, use the following values for the
[`name`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces#Space.FIELDS.name) field:

- To get details about a meeting space, you can use either `spaces/{space}` or
  the alias `spaces/{meetingCode}`. For more information, see [Get a meeting
  space](https://developers.google.com/workspace/meet/api/guides/manage-meeting-spaces#get-meeting-space).

- To update the details of a meeting space, you can only use `spaces/{space}`.
  For more information, see [Update a meeting
  space](https://developers.google.com/workspace/meet/api/guides/manage-meeting-spaces#update-meeting-space).

- To end an active conference within a meeting space, you can only use
  `spaces/{space}`. For more information, see [End an active
  conference](https://developers.google.com/workspace/meet/api/guides/manage-meeting-spaces#end-active-conference).

- To manage members of a meeting space, you can only use `spaces/{space}`. The
  alias `{meetingCode}` isn't supported. For more information, see [Manage
  meeting space members](https://developers.google.com/workspace/meet/api/guides/meeting-space-members).

## OAuth scopes by use case

The [Authenticate with
Meet](https://developers.google.com/workspace/meet/api/guides/authenticate-authorize#meet-api-scopes)
guide lists all Meet REST API scopes and their verification sensitivity
tiers. However, when working with meeting spaces, scope requirements vary
depending on whether a space was created by your app or by an external app (such
as Google Calendar).

The following table outlines the required OAuth scopes based on the specific
meeting space use case:

| Use case | Scope code |
|---|---|
| Set auto artifact generation for spaces created by other apps. | `https://www.googleapis.com/auth/meetings.space.settings` |
| Get or list artifacts from conferences created by other apps. | `https://www.googleapis.com/auth/meetings.space.readonly` |
| Get or list other pre-meeting settings of a meeting space created by a third-party app. | `https://www.googleapis.com/auth/meetings.space.created` `https://www.googleapis.com/auth/meetings.space.readonly` |
| Read and edit the settings for all meeting spaces a user can access through any other app, such as Calendar. | `https://www.googleapis.com/auth/meetings.space.settings` |

For a complete list of all supported scopes and their authorization
sensitivity tiers, see [Meet REST API
scopes](https://developers.google.com/workspace/meet/api/guides/authenticate-authorize#meet-api-scopes).

## Lifecycle of a meeting space

A meeting space goes through several states during its lifecycle. The following
diagram shows the high-level steps of a meeting space lifecycle:
![The meeting space lifecycle.](https://developers.google.com/static/workspace/meet/api/images/meet-api-lifecycle.svg) **Figure 1.** The lifecycle of a meeting space.

1. **Call
   [`spaces.create`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces/create)** .
   The meeting space is created and the returned `spaces` object contains the
   `meetingUri` string. The `meetingUri` is then distributed to participants.
   Before the conference starts, you can [configure meeting space
   settings](https://developers.google.com/workspace/meet/api/guides/meeting-spaces-configuration) and
   [manage meeting space
   members](https://developers.google.com/workspace/meet/api/guides/meeting-space-members).

2. **Poll the new meeting space** . Call the
   [`spaces.get`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces/get) method to
   check the conference state.

   Instead of polling, you can also subscribe to [Meet
   events](https://developers.google.com/workspace/meet/api/guides/events-overview) to receive push
   notifications.
3. **Start the conference** . When the first participant clicks the `meetingUri`
   inside the meeting space, a conference starts. The `activeConference` object
   is populated and the `activeConference.conferenceRecord` string is set.

4. **(Optional) Get conference data** . During an active conference, you can
   access some `conferenceRecord` values. For example, call the
   [`conferenceRecords.participants.list`](https://developers.google.com/workspace/meet/api/reference/rest/v2/conferenceRecords.participants/list)
   method to see all participants in the conference. You can also access this
   information for up to 30 days after the conference.

5. **(Optional) End the conference** . During the conference, the meeting owner
   can call the
   [`spaces.endActiveConference`](https://developers.google.com/workspace/meet/api/reference/rest/v2/spaces/endActiveConference)
   method to programmatically end an active conference for all participants.

6. **The conference ends**. When the last participant leaves, the conference
   ends.

7. **Poll for post-conference artifacts** . The conference has ended
   (`STATE=ENDED`) but the artifacts haven't been generated yet. The
   `startTime` and `endTime` for the conference are also populated. You must
   poll the artifact endpoint until the artifact object `STATE` reads
   `FILE_GENERATED`.

   Instead of polling, you can subscribe to Meet events to
   receive push notifications.
8. **Get post-conference artifacts** . You can retrieve artifacts like
   recordings, transcripts, and smart notes once they are generated. For
   example, call the
   [`conferenceRecords.recordings.get`](https://developers.google.com/workspace/meet/api/reference/rest/v2/conferenceRecords.recordings/get)
   method to get a recording by recording ID.

   Once ready, a URI to the artifact object is populated and returned as part
   of the resource object.

## Related topics

- [Manage meeting spaces](https://developers.google.com/workspace/meet/api/guides/manage-meeting-spaces)
- [Configure meeting space settings](https://developers.google.com/workspace/meet/api/guides/meeting-spaces-configuration)
- [Manage meeting space members](https://developers.google.com/workspace/meet/api/guides/meeting-space-members)
- [Join a meeting](https://support.google.com/meet/answer/9303069)
- [Countries where you can use a phone with Meet](https://support.google.com/meet/answer/9683440)