Skip to main content

Projects

Create, read, update, and delete LiveKit Cloud projects.

Overview

A project has its own API keys, settings, and members.

Set the data region with userDataRegion when you create the project. You can't change it later, so create a new project to use a different region. Omit the field to use the default region.

Getting a project needs any role on it. Updating and deleting a project need the Admin role. Any signed-in user can create a project.

To call these endpoints from the CLI, use the lk project list, get, create, update, and delete commands, for example lk project list --user-auth.

The project object

A LiveKit Cloud project. Members and domains are separate list resources and are not embedded here.

idstring

The project ID (p_...).

namestring

The project name.

workspaceIdstring

The workspace that holds the project (wo_...).

createdAttimestamp

When the project was created.

webhooksArray<Webhook>

The webhook destinations for the project.

To learn more, see Webhook.

creatorIdstring

The user who created the project.

subdomainstring

The project subdomain, which forms url.

enableAnalyticsboolean

The enableAnalytics value.

analyticsAccessKeystring

The analyticsAccessKey value.

enableAutoCreateboolean

True lets the first participant to join a room that does not yet exist create it.

enableRemoteUnmuteboolean

True lets an admin unmute the tracks of another participant.

enableEnhancedNoiseCancellationboolean

True applies enhanced noise cancellation to inbound audio.

enableHostedAgentsboolean

True lets the project run agents on LiveKit Cloud.

preferencesProjectPreferences

The UI and feature settings for the project.

To learn more, see ProjectPreferences.

enabledCodecsArray<string>

The media codecs the project allows, by MIME type, such as video/VP9.

pinnedRegionsArray<string>

The regions the project pins its traffic to. Empty leaves it unpinned.

egressClusterIdstring

The egress cluster the project runs egress on.

enableSafeModeboolean

The enableSafeMode value.

enableUserDataRecordingboolean

True when the project records traces, transcripts, and audio from agent sessions for agent observability.

enableUserDataTrainingboolean

True lets LiveKit use the observability data from this project to improve models and services.

userDataRegionstring

The region where the project stores and processes session analytics and agent observability data. It is set when the project is created and cannot be changed.

userDataLifetimeDaysint32

The userDataLifetimeDays value.

enableSipCustomDomainboolean

The enableSipCustomDomain value.

requireExplicitDispatchboolean

True rejects an agent server that registers without an explicit agent name, which keeps an accidental auto-dispatch server from connecting.

isPrivateboolean

True when the project keeps its own member list instead of taking the members of its workspace.

enablePiiRedactionboolean

True redacts PII from the recorded session data.

piiRedactionCategoriesArray<PIIRedactionCategory>

The categories to redact when enablePiiRedaction is true. When empty, the project uses its saved categories, or the default categories that apply when you turn on redaction. An empty list never means that nothing is redacted.

To learn more, see PIIRedactionCategory.

enableInferenceRegionRestrictionboolean

True restricts inference to the models in the same data region as the project.

urlstring

The LiveKit server URL of the project (wss://...). The API derives it from subdomain.

The project object

{
"id": string,
"name": string,
"workspaceId": string,
"createdAt": timestamp,
"webhooks": Array<Webhook>,
"creatorId": string,
"subdomain": string,
"enableAnalytics": boolean,
"analyticsAccessKey": string,
"enableAutoCreate": boolean,
"enableRemoteUnmute": boolean,
"enableEnhancedNoiseCancellation": boolean,
"enableHostedAgents": boolean,
"preferences": ProjectPreferences,
"enabledCodecs": Array<string>,
"pinnedRegions": Array<string>,
"egressClusterId": string,
"enableSafeMode": boolean,
"enableUserDataRecording": boolean,
"enableUserDataTraining": boolean,
"userDataRegion": string,
"userDataLifetimeDays": int32,
"enableSipCustomDomain": boolean,
"requireExplicitDispatch": boolean,
"isPrivate": boolean,
"enablePiiRedaction": boolean,
"piiRedactionCategories": Array<PIIRedactionCategory>,
"enableInferenceRegionRestriction": boolean,
"url": string
}

List projects

GET
/v0/projects

Returns a list of Project objects, with a pageInfo cursor.

Query parameters

page.cursorstring

The cursor of the page to return: the nextCursor of the previous page. When empty, the list starts at the first item.

page.pageSizeint32

The maximum number of items to return. When 0, the list uses its default page size.

workspaceIdstring

The workspace to list projects from. Private projects that you are not a member of are left out. When workspaceId and memberId are both empty, the response lists the projects that you are a member of. If you set both, the request fails with InvalidArgument.

memberIdstring

The member to list projects for. It must be your own user ID. Another user ID returns PermissionDenied.

Request

curl -X GET "https://beta-api.livekit.cloud/v0/projects" \
-H "Authorization: Bearer $LIVEKIT_SESSION_TOKEN"

Response

{
"items": [
{
"id": "p_f9779j5lpvh",
"name": "acme-prod",
"workspaceId": "wo_72j408f3kqn",
"createdAt": "2025-11-03T09:16:40Z",
"webhooks": [
{
"id": "g6XsddOuxpVhFTCdEAqBCL",
"name": "order-events",
"url": "https://example.com/hooks/livekit",
"signingKey": "APIeU7rRlbo7Xp1",
"filterParams": {
"includeEvents": [
"room_started",
"room_finished"
],
"excludeEvents": []
}
}
],
"creatorId": "LIYM4YkVTydCfM4Jm1kXpq",
"subdomain": "acme-prod-7f3k2a9x",
"enableAnalytics": true,
"analyticsAccessKey": "AYS_9CRfFhI9ossg",
"enableAutoCreate": true,
"enableRemoteUnmute": false,
"enableEnhancedNoiseCancellation": true,
"enableHostedAgents": true,
"preferences": {
"hideOnboarding": true,
"discoverableByDomain": false,
"joinableByDomain": false,
"hideSampleAppGallery": false,
"disableTokenEndpoint": true,
"tokenEndpointKey": "",
"sfuAllowPause": true,
"enableEgressBackupStorage": false,
"featureFlags": {},
"enableEgressAutoRetry": false,
"hipaaCompliant": false,
"roomConfigurations": {}
},
"enabledCodecs": [
"audio/red",
"audio/opus",
"video/H264",
"video/VP8",
"video/VP9",
"video/AV1"
],
"pinnedRegions": [],
"egressClusterId": "",
"enableSafeMode": false,
"enableUserDataRecording": true,
"enableUserDataTraining": false,
"userDataRegion": "us",
"userDataLifetimeDays": 0,
"enableSipCustomDomain": false,
"requireExplicitDispatch": true,
"isPrivate": true,
"enablePiiRedaction": true,
"piiRedactionCategories": [
"PII_REDACTION_CATEGORY_EMAIL_ADDRESS",
"PII_REDACTION_CATEGORY_PHONE_NUMBER",
"PII_REDACTION_CATEGORY_CREDIT_CARD"
],
"enableInferenceRegionRestriction": false,
"url": "wss://acme-prod-7f3k2a9x.livekit.cloud"
}
],
"pageInfo": {
"nextCursor": "",
"hasMore": false
}
}

Create project

POST
/v0/projects

Returns the Project object.

Request body

The project to create. An unset field keeps its default: enableAnalytics, enableAutoCreate, and disableTokenEndpoint are true, and the other boolean fields are false.

workspaceIdstring

The workspace to create the project in. When empty, a new workspace is created for the project. On POST /v0/workspaces/{workspaceId}/projects, the project goes in the workspace in the path, and this field must be empty or match it.

namestring

The project name.

subdomainstring

The project subdomain. When empty, one is generated from name.

isPrivateboolean

True gives the project its own member list instead of the members of its workspace.

membersArray<CreateProjectMember>

The members of a private project. Ignored when isPrivate is false. Each user must be a member of the workspace, or the request fails with NotFound. A new workspace has only you as a member.

To learn more, see CreateProjectMember.

userDataRegionstring

The region where the project stores session data. You can set it only when you create the project. When empty, the project uses the default region.

customDomainstring

A custom domain to add to the project.

enableAnalyticsboolean

The enableAnalytics value.

enableAutoCreateboolean

True lets the first participant to join a room that does not yet exist create it.

enableRemoteUnmuteboolean

True lets an admin unmute the tracks of another participant.

enabledCodecsArray<string>

The media codecs the project allows, by MIME type, such as video/VP9.

egressClusterIdstring

The egress cluster for the project. Only LiveKit staff can set it. For any other caller, a non-default value returns PermissionDenied.

enableHostedAgentsboolean

True when hosted agents are enabled for the project. Only LiveKit staff can set it. For any other caller, a non-default value returns PermissionDenied.

enableUserDataRecordingboolean

When true, the project records traces, transcripts, and audio from agent sessions for agent observability. Defaults to false. While it is off, a session read that finds no data returns FailedPrecondition with an ObservabilityDisabled detail. This applies to a recording, and to the first unfiltered page of a transcript, traces, logs, or metrics.

enableUserDataTrainingboolean

True lets LiveKit use the observability data from this project to improve models and services.

requireExplicitDispatchboolean

True rejects an agent server that registers without an explicit agent name.

enablePiiRedactionboolean

True redacts PII from the recorded session data.

piiRedactionCategoriesArray<PIIRedactionCategory>

The categories to redact. When empty and enablePiiRedaction is true, the API applies the default categories.

To learn more, see PIIRedactionCategory.

enableInferenceRegionRestrictionboolean

True restricts inference to the models in the same data region as the project.

pinnedRegionsArray<string>

The SFU regions to pin the project to. When empty, the project has no pinned regions.

hideOnboardingboolean

True hides the onboarding instructions on the project dashboard.

discoverableByDomainboolean

When true, adds your email domain to the project.

joinableByDomainboolean

When true, adds your email domain to the project.

hideSampleAppGalleryboolean

True hides the sample app gallery on the project dashboard.

disableTokenEndpointboolean

True turns off the sandbox token endpoint for the project.

tokenEndpointKeystring

The tokenEndpointKey value.

sfuAllowPauseboolean

True lets the SFU pause video tracks when subscribers are congested.

enableEgressBackupStorageboolean

True keeps an egress that fails to upload in LiveKit backup storage for 7 days.

enableEgressAutoRetryboolean

The enableEgressAutoRetry value.

featureFlagsMap<string, string>

The featureFlags value.

roomConfigsArray<RoomConfiguration>

The room configurations of the project.

To learn more, see RoomConfiguration.

Request

curl -X POST "https://beta-api.livekit.cloud/v0/projects" \
-H "Authorization: Bearer $LIVEKIT_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "wo_72j408f3kqn",
"name": "acme-prod",
"userDataRegion": "us",
"isPrivate": true
}'

Response

{
"project": {
"id": "p_f9779j5lpvh",
"name": "acme-prod",
"workspaceId": "wo_72j408f3kqn",
"createdAt": "2025-11-03T09:16:40Z",
"webhooks": [],
"creatorId": "LIYM4YkVTydCfM4Jm1kXpq",
"subdomain": "acme-prod-7f3k2a9x",
"enableAnalytics": true,
"analyticsAccessKey": "AYS_9CRfFhI9ossg",
"enableAutoCreate": true,
"enableRemoteUnmute": false,
"enableEnhancedNoiseCancellation": true,
"enableHostedAgents": false,
"preferences": {
"hideOnboarding": true,
"discoverableByDomain": false,
"joinableByDomain": false,
"hideSampleAppGallery": false,
"disableTokenEndpoint": true,
"tokenEndpointKey": "",
"sfuAllowPause": true,
"enableEgressBackupStorage": false,
"featureFlags": {},
"enableEgressAutoRetry": false,
"hipaaCompliant": false,
"roomConfigurations": {}
},
"enabledCodecs": [
"audio/red",
"audio/opus",
"video/H264",
"video/VP8",
"video/VP9",
"video/AV1"
],
"pinnedRegions": [],
"egressClusterId": "",
"enableSafeMode": false,
"enableUserDataRecording": false,
"enableUserDataTraining": false,
"userDataRegion": "us",
"userDataLifetimeDays": 0,
"enableSipCustomDomain": false,
"requireExplicitDispatch": false,
"isPrivate": true,
"enablePiiRedaction": false,
"piiRedactionCategories": [
"PII_REDACTION_CATEGORY_EMAIL_ADDRESS",
"PII_REDACTION_CATEGORY_PHONE_NUMBER",
"PII_REDACTION_CATEGORY_CREDIT_CARD"
],
"enableInferenceRegionRestriction": false,
"url": "wss://acme-prod-7f3k2a9x.livekit.cloud"
}
}

Get project

GET
/v0/projects/{projectId}

Returns the Project object.

Path parameters

projectId
Required
string

The project ID (p_...).

Request

curl -X GET "https://beta-api.livekit.cloud/v0/projects/${PROJECT_ID}" \
-H "Authorization: Bearer $LIVEKIT_SESSION_TOKEN"

Response

{
"project": {
"id": "p_f9779j5lpvh",
"name": "acme-prod",
"workspaceId": "wo_72j408f3kqn",
"createdAt": "2025-11-03T09:16:40Z",
"webhooks": [
{
"id": "g6XsddOuxpVhFTCdEAqBCL",
"name": "order-events",
"url": "https://example.com/hooks/livekit",
"signingKey": "APIeU7rRlbo7Xp1",
"filterParams": {
"includeEvents": [
"room_started",
"room_finished"
],
"excludeEvents": []
}
}
],
"creatorId": "LIYM4YkVTydCfM4Jm1kXpq",
"subdomain": "acme-prod-7f3k2a9x",
"enableAnalytics": true,
"analyticsAccessKey": "AYS_9CRfFhI9ossg",
"enableAutoCreate": true,
"enableRemoteUnmute": false,
"enableEnhancedNoiseCancellation": true,
"enableHostedAgents": true,
"preferences": {
"hideOnboarding": true,
"discoverableByDomain": false,
"joinableByDomain": false,
"hideSampleAppGallery": false,
"disableTokenEndpoint": true,
"tokenEndpointKey": "",
"sfuAllowPause": true,
"enableEgressBackupStorage": false,
"featureFlags": {},
"enableEgressAutoRetry": false,
"hipaaCompliant": false,
"roomConfigurations": {}
},
"enabledCodecs": [
"audio/red",
"audio/opus",
"video/H264",
"video/VP8",
"video/VP9",
"video/AV1"
],
"pinnedRegions": [],
"egressClusterId": "",
"enableSafeMode": false,
"enableUserDataRecording": true,
"enableUserDataTraining": false,
"userDataRegion": "us",
"userDataLifetimeDays": 0,
"enableSipCustomDomain": false,
"requireExplicitDispatch": true,
"isPrivate": true,
"enablePiiRedaction": true,
"piiRedactionCategories": [
"PII_REDACTION_CATEGORY_EMAIL_ADDRESS",
"PII_REDACTION_CATEGORY_PHONE_NUMBER",
"PII_REDACTION_CATEGORY_CREDIT_CARD"
],
"enableInferenceRegionRestriction": false,
"url": "wss://acme-prod-7f3k2a9x.livekit.cloud"
}
}

Update project

PATCH
/v0/projects/{projectId}

Returns the Project object.

Path parameters

projectId
Required
string

The project ID (p_...).

Request body

The changes to a project. An unset optional field keeps its value. To change a webhook, use UpdateWebhook.

namestring

The project name.

subdomainstring

The project subdomain, which forms the server URL.

customDomainstring

A custom domain to add to the project.

enableAnalyticsboolean

The enableAnalytics value.

enableAutoCreateboolean

True lets the first participant to join a room that does not yet exist create it.

enableRemoteUnmuteboolean

True lets an admin unmute the tracks of another participant.

enabledCodecsArray<string>

The media codecs the project allows, by MIME type, such as video/VP9.

egressClusterIdstring

The egress cluster for the project. Only LiveKit staff can change it. For any other caller, a value that differs from the current one returns PermissionDenied.

enableHostedAgentsboolean

True when hosted agents are enabled for the project. Only LiveKit staff can change it. For any other caller, a value that differs from the current one returns PermissionDenied.

enableUserDataRecordingboolean

When true, the project records traces, transcripts, and audio from agent sessions for agent observability. Data recorded earlier stays readable.

requireExplicitDispatchboolean

True rejects an agent server that registers without an explicit agent name.

isPrivateboolean

True gives the project its own member list instead of the members of its workspace.

membersArray<CreateProjectMember>

The members to keep when the project becomes private. You keep the admin role.

To learn more, see CreateProjectMember.

enablePiiRedactionboolean

True redacts PII from the recorded session data.

piiRedactionCategoriesArray<PIIRedactionCategory>

The categories to redact. A non-empty list replaces the saved categories. The API ignores an empty list, so you cannot clear the categories this way. When you turn on redaction and the project has no saved categories, the API applies the default categories.

To learn more, see PIIRedactionCategory.

enableInferenceRegionRestrictionboolean

True restricts inference to the models in the same data region as the project.

hideOnboardingboolean

True hides the onboarding instructions on the project dashboard.

discoverableByDomainboolean

When true, adds your email domain to the project.

joinableByDomainboolean

When true, adds your email domain to the project.

hideSampleAppGalleryboolean

True hides the sample app gallery on the project dashboard.

disableTokenEndpointboolean

True turns off the sandbox token endpoint for the project.

tokenEndpointKeystring

The tokenEndpointKey value.

sfuAllowPauseboolean

True lets the SFU pause video tracks when subscribers are congested.

enableEgressBackupStorageboolean

True keeps an egress that fails to upload in LiveKit backup storage for 7 days.

enableEgressAutoRetryboolean

The enableEgressAutoRetry value.

featureFlagsMap<string, string>

The featureFlags value.

roomConfigsToUpsertArray<RoomConfiguration>

Room configurations to add to the project. A configuration replaces the one with the same name. A configuration without a name is ignored.

To learn more, see RoomConfiguration.

roomConfigsToDeleteArray<string>

The names of the room configurations to remove from the project.

pinnedRegionsPinnedRegions

The SFU regions to pin the project to. When unset, the pins do not change. A set message replaces the pins, so an empty regions list removes all pins. This field is different from userDataRegion, which sets where the project keeps its session data.

To learn more, see PinnedRegions.

enableUserDataTrainingboolean

True lets LiveKit use the observability data from this project to improve models and services.

Request

curl -X PATCH "https://beta-api.livekit.cloud/v0/projects/${PROJECT_ID}" \
-H "Authorization: Bearer $LIVEKIT_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enableAnalytics": true,
"enableUserDataRecording": true,
"enablePiiRedaction": true
}'

Response

{
"project": {
"id": "p_f9779j5lpvh",
"name": "acme-prod",
"workspaceId": "wo_72j408f3kqn",
"createdAt": "2025-11-03T09:16:40Z",
"webhooks": [
{
"id": "g6XsddOuxpVhFTCdEAqBCL",
"name": "order-events",
"url": "https://example.com/hooks/livekit",
"signingKey": "APIeU7rRlbo7Xp1",
"filterParams": {
"includeEvents": [
"room_started",
"room_finished"
],
"excludeEvents": []
}
}
],
"creatorId": "LIYM4YkVTydCfM4Jm1kXpq",
"subdomain": "acme-prod-7f3k2a9x",
"enableAnalytics": true,
"analyticsAccessKey": "AYS_9CRfFhI9ossg",
"enableAutoCreate": true,
"enableRemoteUnmute": false,
"enableEnhancedNoiseCancellation": true,
"enableHostedAgents": true,
"preferences": {
"hideOnboarding": true,
"discoverableByDomain": false,
"joinableByDomain": false,
"hideSampleAppGallery": false,
"disableTokenEndpoint": true,
"tokenEndpointKey": "",
"sfuAllowPause": true,
"enableEgressBackupStorage": false,
"featureFlags": {},
"enableEgressAutoRetry": false,
"hipaaCompliant": false,
"roomConfigurations": {}
},
"enabledCodecs": [
"audio/red",
"audio/opus",
"video/H264",
"video/VP8",
"video/VP9",
"video/AV1"
],
"pinnedRegions": [],
"egressClusterId": "",
"enableSafeMode": false,
"enableUserDataRecording": true,
"enableUserDataTraining": false,
"userDataRegion": "us",
"userDataLifetimeDays": 0,
"enableSipCustomDomain": false,
"requireExplicitDispatch": true,
"isPrivate": true,
"enablePiiRedaction": true,
"piiRedactionCategories": [
"PII_REDACTION_CATEGORY_EMAIL_ADDRESS",
"PII_REDACTION_CATEGORY_PHONE_NUMBER",
"PII_REDACTION_CATEGORY_CREDIT_CARD"
],
"enableInferenceRegionRestriction": false,
"url": "wss://acme-prod-7f3k2a9x.livekit.cloud"
}
}

Delete project

DELETE
/v0/projects/{projectId}

Path parameters

projectId
Required
string

The project ID (p_...).

Request

curl -X DELETE "https://beta-api.livekit.cloud/v0/projects/${PROJECT_ID}" \
-H "Authorization: Bearer $LIVEKIT_SESSION_TOKEN"

Response

{}

Types

Types used by these endpoints, alongside the project object.

CreateProjectMember

A user and the role that the user gets on a project.

userIdstring

The user to add. They must already be a member of the workspace.

roleint32

The role of the user: 0 invited, 1 read, 2 write, 3 admin.

FilterParams

includeEventsArray<string>

The includeEvents value.

excludeEventsArray<string>

The excludeEvents value.

PageInfo

The paging state of a list response.

nextCursorstring

The cursor of the next page. To get the next page, send it as cursor in the next request. Empty on the last page.

hasMoreboolean

True when another page follows this one.

PIIRedactionCategory

The types of personally identifiable information (PII) a project can redact.

Choose the categories with piiRedactionCategories on a project. When that list is empty and enablePiiRedaction is true, the project redacts a default set.

Each name maps to the identifier the redaction model emits: strip the PII_REDACTION_CATEGORY_ prefix and lowercase the rest.

This type has these values:

  • PII_REDACTION_CATEGORY_UNSPECIFIED
  • PII_REDACTION_CATEGORY_ACCOUNT_NUMBER
  • PII_REDACTION_CATEGORY_AGE
  • PII_REDACTION_CATEGORY_BANK_ACCOUNT
  • PII_REDACTION_CATEGORY_DATE
  • PII_REDACTION_CATEGORY_DOB
  • PII_REDACTION_CATEGORY_DRIVER_LICENSE
  • PII_REDACTION_CATEGORY_EDUCATION_LEVEL
  • PII_REDACTION_CATEGORY_EMAIL_ADDRESS
  • PII_REDACTION_CATEGORY_GOVERNMENT_ID
  • PII_REDACTION_CATEGORY_HEALTHCARE_NUMBER
  • PII_REDACTION_CATEGORY_IP_ADDRESS
  • PII_REDACTION_CATEGORY_LICENSE_PLATE
  • PII_REDACTION_CATEGORY_LOCATION
  • PII_REDACTION_CATEGORY_LOCATION_ADDRESS
  • PII_REDACTION_CATEGORY_LOCATION_CITY
  • PII_REDACTION_CATEGORY_LOCATION_COORDINATE
  • PII_REDACTION_CATEGORY_LOCATION_COUNTRY
  • PII_REDACTION_CATEGORY_LOCATION_STATE
  • PII_REDACTION_CATEGORY_LOCATION_ZIP
  • PII_REDACTION_CATEGORY_NAME
  • PII_REDACTION_CATEGORY_NAME_GIVEN
  • PII_REDACTION_CATEGORY_NAME_FAMILY
  • PII_REDACTION_CATEGORY_NUMERICAL_PII
  • PII_REDACTION_CATEGORY_OCCUPATION
  • PII_REDACTION_CATEGORY_ORIGIN
  • PII_REDACTION_CATEGORY_PASSPORT_NUMBER
  • PII_REDACTION_CATEGORY_PASSWORD
  • PII_REDACTION_CATEGORY_PHONE_NUMBER
  • PII_REDACTION_CATEGORY_ROUTING_NUMBER
  • PII_REDACTION_CATEGORY_SSN
  • PII_REDACTION_CATEGORY_SWIFT_CODE
  • PII_REDACTION_CATEGORY_URL
  • PII_REDACTION_CATEGORY_USERNAME
  • PII_REDACTION_CATEGORY_VEHICLE_ID
  • PII_REDACTION_CATEGORY_CREDIT_CARD
  • PII_REDACTION_CATEGORY_CREDIT_CARD_EXPIRATION
  • PII_REDACTION_CATEGORY_CVV
  • PII_REDACTION_CATEGORY_LANGUAGE
  • PII_REDACTION_CATEGORY_ORGANIZATION
  • PII_REDACTION_CATEGORY_POLITICAL_AFFILIATION
  • PII_REDACTION_CATEGORY_RELIGION

PinnedRegions

A set of SFU regions to pin a project to. A set message with an empty regions list removes all pins.

regionsArray<string>

The regions to pin the project traffic to. An empty list clears the pins.

ProjectPreferences

The UI and feature settings of a project.

hideOnboardingboolean

True hides the onboarding instructions on the project dashboard.

discoverableByDomainboolean

True lets people with the same email domain as the project owner find the project when they sign up.

joinableByDomainboolean

True lets people with the same email domain join the project.

hideSampleAppGalleryboolean

True hides the sample app gallery on the project dashboard.

disableTokenEndpointboolean

True turns off the sandbox token endpoint for the project.

tokenEndpointKeystring

The tokenEndpointKey value.

sfuAllowPauseboolean

True lets the SFU pause video tracks when subscribers are congested.

enableEgressBackupStorageboolean

True keeps an egress that fails to upload in LiveKit backup storage for 7 days. The egress_ended webhook event carries the file location.

featureFlagsMap<string, string>

The featureFlags value.

enableEgressAutoRetryboolean

The enableEgressAutoRetry value.

hipaaCompliantboolean

The hipaaCompliant value.

roomConfigurationsMap<string, RoomConfiguration>

Room configurations saved on the project, by name.

To learn more, see RoomConfiguration.