Organizations
Manage your organization's configuration, including associated resources such as Projects. This service helps structure how different teams and services operate within your SaaS environment.
GET /api/organizations/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
Accept: */*
The details for all organizations
[
{
"documentId": "text",
"name": "text",
"tenantId": "text",
"pictureUrl": "text",
"featuredEventId": "text",
"websiteInfo": {
"title": "text",
"headTags": [
"text"
]
},
"features": {
"loginPanelDisclaimer": "text",
"profilePictureUpload": true,
"hasProfilePage": true,
"hasCollectionsPage": true,
"hasNavigationMenu": true,
"allowPublicReadableChat": true,
"loginOptions": {
"hasEmail": true,
"hasMetaMask": true,
"hasWalletConnect": true,
"hasCoinbaseWallet": true,
"hasGoogle": true
},
"allowUserTokenManagement": true,
"pubnub": {
"publishKey": "text",
"subscribeKey": "text",
"defaultChannels": [
{
"read": true,
"write": true,
"type": "party"
}
]
},
"usernameCustomization": {
"unique": true,
"pattern": "text"
},
"iosNativeClientSupport": true,
"useSignedContentDownloads": true,
"customerConnectUrl": "text"
},
"legalPolicies": {
"termsOfService": [
"text"
],
"privacyPolicy": [
"text"
],
"chatRules": [
"text"
],
"nvidiaPrivacyPolicy": [
"text"
],
"eula": [
"text"
]
},
"hasEventEnabled": true,
"permissionVerb": "*",
"isSlot": true
}
]
Creates a new organization.
The data to create an organization
The name of an organization
POST /api/organizations/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 857
{
"tenantId": "text",
"featuredEventId": "text",
"websiteInfo": {
"title": "text",
"headTags": [
"text"
]
},
"features": {
"loginPanelDisclaimer": "text",
"profilePictureUpload": true,
"hasProfilePage": true,
"hasCollectionsPage": true,
"hasNavigationMenu": true,
"allowPublicReadableChat": true,
"loginOptions": {
"hasEmail": true,
"hasMetaMask": true,
"hasWalletConnect": true,
"hasCoinbaseWallet": true,
"hasGoogle": true
},
"allowUserTokenManagement": true,
"pubnub": {
"publishKey": "text",
"subscribeKey": "text",
"defaultChannels": [
{
"read": true,
"write": true,
"type": "party"
}
]
},
"usernameCustomization": {
"unique": true,
"pattern": "text"
},
"iosNativeClientSupport": true,
"useSignedContentDownloads": true,
"customerConnectUrl": "text"
},
"legalPolicies": {
"termsOfService": [
"text"
],
"privacyPolicy": [
"text"
],
"chatRules": [
"text"
],
"nvidiaPrivacyPolicy": [
"text"
],
"eula": [
"text"
]
},
"hasEventEnabled": true,
"name": "text"
}
The details of the created organization
{
"organizationId": "text",
"tenantId": "text",
"features": {
"loginPanelDisclaimer": "text",
"profilePictureUpload": true,
"hasProfilePage": true,
"hasCollectionsPage": true,
"hasNavigationMenu": true,
"allowPublicReadableChat": true,
"loginOptions": {
"hasEmail": true,
"hasMetaMask": true,
"hasWalletConnect": true,
"hasCoinbaseWallet": true,
"hasGoogle": true
},
"allowUserTokenManagement": true,
"pubnub": {
"publishKey": "text",
"subscribeKey": "text",
"defaultChannels": [
{
"read": true,
"write": true,
"type": "party"
}
]
},
"usernameCustomization": {
"unique": true,
"pattern": "text"
},
"iosNativeClientSupport": true,
"useSignedContentDownloads": true,
"customerConnectUrl": "text"
}
}
Retrieves the api keys of an organization.
The ID of an organization
GET /api/organizations/apiKeys/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Accept: */*
Response body for listing all API keys
[
{
"documentId": "text",
"displayName": "text",
"isActive": true,
"isManagedByTerraform": true,
"organizationId": "text",
"claims": {
"ANY_ADDITIONAL_PROPERTY": true
},
"permissions": [
"text"
],
"keyString": "text"
}
]
Creates a new api key for an organization.
The ID of an organization
Request body for creating a new API key
POST /api/organizations/apiKeys/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Content-Type: application/json
Accept: */*
Content-Length: 103
{
"displayName": "text",
"claims": {
"ANY_ADDITIONAL_PROPERTY": true
},
"isActive": true,
"permissions": [
"text"
]
}
Response body for creating a new API key
{
"apiKey": "text"
}
Updates an existing api key for an organization.
The ID of an organization
Request body for updating an existing API key
PATCH /api/organizations/apiKeys/{apiKeyId}/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Content-Type: application/json
Accept: */*
Content-Length: 103
{
"displayName": "text",
"claims": {
"ANY_ADDITIONAL_PROPERTY": true
},
"permissions": [
"text"
],
"isActive": true
}
Response body for updating an existing API key
{
"documentId": "text",
"displayName": "text",
"isActive": true,
"isManagedByTerraform": true,
"organizationId": "text",
"claims": {
"ANY_ADDITIONAL_PROPERTY": true
},
"permissions": [
"text"
],
"keyString": "text"
}
Deletes an existing api key for an organization.
The ID of an organization
DELETE /api/organizations/apiKeys/{apiKeyId}/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Accept: */*
Default Response
No content
Fetches the details of a specific organization by its organizationId. If the organization exists, the data is returned.
The ID of an organization
GET /api/organizations/current/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-m2-organization-id: text
Accept: */*
The details for an organization
{
"name": "text",
"tenantId": "text",
"pictureUrl": "text",
"featuredEventId": "text",
"websiteInfo": {
"title": "text",
"headTags": [
"text"
]
},
"features": {
"loginPanelDisclaimer": "text",
"profilePictureUpload": true,
"hasProfilePage": true,
"hasCollectionsPage": true,
"hasNavigationMenu": true,
"allowPublicReadableChat": true,
"loginOptions": {
"hasEmail": true,
"hasMetaMask": true,
"hasWalletConnect": true,
"hasCoinbaseWallet": true,
"hasGoogle": true
},
"allowUserTokenManagement": true,
"pubnub": {
"publishKey": "text",
"subscribeKey": "text",
"defaultChannels": [
{
"read": true,
"write": true,
"type": "party"
}
]
},
"usernameCustomization": {
"unique": true,
"pattern": "text"
},
"iosNativeClientSupport": true,
"useSignedContentDownloads": true,
"customerConnectUrl": "text"
},
"legalPolicies": {
"termsOfService": [
"text"
],
"privacyPolicy": [
"text"
],
"chatRules": [
"text"
],
"nvidiaPrivacyPolicy": [
"text"
],
"eula": [
"text"
]
},
"hasEventEnabled": true,
"organizationId": "text",
"supportedProviders": {
"google": true,
"twitter": true,
"twitch": true,
"otherside": true
}
}
Allows updating specific fields (like name or featured event) for an organization. It checks for write permissions before processing the request.
The ID of an organization
The data to update an organization
The name of an organization
PATCH /api/organizations/current/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Content-Type: application/json
Accept: */*
Content-Length: 628
{
"name": "text",
"featuredEventId": "text",
"features": {
"loginPanelDisclaimer": "text",
"profilePictureUpload": true,
"hasProfilePage": true,
"hasCollectionsPage": true,
"hasNavigationMenu": true,
"allowPublicReadableChat": true,
"loginOptions": {
"hasEmail": true,
"hasMetaMask": true,
"hasWalletConnect": true,
"hasCoinbaseWallet": true,
"hasGoogle": true
},
"allowUserTokenManagement": true,
"pubnub": {
"publishKey": "text",
"subscribeKey": "text",
"defaultChannels": [
{
"read": true,
"write": true,
"type": "party"
}
]
},
"usernameCustomization": {
"unique": true,
"pattern": "text"
},
"iosNativeClientSupport": true,
"useSignedContentDownloads": true,
"customerConnectUrl": "text"
}
}
Default Response
No content
Updates the picture URL for an organization. A file is uploaded, transformed, and stored in Cloud Storage, with the resulting URL saved in the organization's record.
The ID of an organization
PATCH /api/organizations/current/pictureUrl/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Accept: */*
The shape of an organization
{
"documentId": "text",
"name": "text",
"tenantId": "text",
"pictureUrl": "text",
"featuredEventId": "text",
"websiteInfo": {
"title": "text",
"headTags": [
"text"
]
},
"features": {
"loginPanelDisclaimer": "text",
"profilePictureUpload": true,
"hasProfilePage": true,
"hasCollectionsPage": true,
"hasNavigationMenu": true,
"allowPublicReadableChat": true,
"loginOptions": {
"hasEmail": true,
"hasMetaMask": true,
"hasWalletConnect": true,
"hasCoinbaseWallet": true,
"hasGoogle": true
},
"allowUserTokenManagement": true,
"pubnub": {
"publishKey": "text",
"subscribeKey": "text",
"defaultChannels": [
{
"read": true,
"write": true,
"type": "party"
}
]
},
"usernameCustomization": {
"unique": true,
"pattern": "text"
},
"iosNativeClientSupport": true,
"useSignedContentDownloads": true,
"customerConnectUrl": "text"
},
"legalPolicies": {
"termsOfService": [
"text"
],
"privacyPolicy": [
"text"
],
"chatRules": [
"text"
],
"nvidiaPrivacyPolicy": [
"text"
],
"eula": [
"text"
]
},
"hasEventEnabled": true
}
Retrieves all the projects associated with a specific organization, returning the list of projects the user has access to based on their permissions.
The ID of an organization
GET /api/organizations/projects/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Accept: */*
The data of all the projects in an organization
[
{
"documentId": "text",
"name": "text",
"projectId": "text",
"permissionVerb": "*"
}
]
Allows creating a new project within an organization. The user must have write permissions to the organization to successfully create the project.
The ID of an organization
The data to create a project
The name of the project
POST /api/organizations/projects/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Content-Type: application/json
Accept: */*
Content-Length: 15
{
"name": "text"
}
The details of the created project
{
"projectId": "text"
}
Retrieves details of a specific project within an organization. Access is controlled by read permissions on the project.
The ID of an organization
The ID of a project
GET /api/organizations/projects/current/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
x-m2-project-id: text
Accept: */*
The details for a project
{
"documentId": "text",
"name": "text",
"permissionVerb": "*"
}
Updates a project’s attributes, such as the project name. The user needs write permissions on the project to make changes.
The ID of an organization
The ID of a project
The data to update a project
The name of the project
PATCH /api/organizations/projects/current/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
x-m2-project-id: text
Content-Type: application/json
Accept: */*
Content-Length: 35
{
"documentId": "text",
"name": "text"
}
The details of the updated project
{
"documentId": "text",
"name": "text"
}
Deletes a project and its associated resources. Requires write permissions for the project and its children.
The ID of an organization
The ID of a project
DELETE /api/organizations/projects/current/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
x-m2-project-id: text
Accept: */*
Default Response
No content
The ID of an organization
GET /api/organizations/webhooks/endpoints/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Accept: */*
The details for all webhook endpoints
[
{
"id": "text",
"description": "text",
"url": "text",
"disabled": true,
"rateLimit": 1,
"createdAt": "2025-06-26T15:44:01.149Z",
"updatedAt": "2025-06-26T15:44:01.149Z",
"eventFilters": [
"guest_link.consumed"
]
}
]
The ID of an organization
The data to create a webhook endpoint
The description of the webhook endpoint
The URL of the webhook endpoint
Whether the webhook endpoint is disabled
The rate limit for the webhook endpoint
POST /api/organizations/webhooks/endpoints/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Content-Type: application/json
Accept: */*
Content-Length: 104
{
"description": "text",
"url": "text",
"disabled": true,
"rateLimit": 1,
"eventFilters": [
"guest_link.consumed"
]
}
The details of the created webhook endpoint
{
"id": "text",
"description": "text",
"url": "text",
"disabled": true,
"rateLimit": 1,
"createdAt": "2025-06-26T15:44:01.149Z",
"updatedAt": "2025-06-26T15:44:01.149Z",
"eventFilters": [
"guest_link.consumed"
]
}
The ID of an organization
DELETE /api/organizations/webhooks/endpoints/{endpointId}/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Accept: */*
Default Response
No content
The ID of an organization
GET /api/organizations/webhooks/endpoints/{endpointId}/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Accept: */*
The details for a webhook endpoint
{
"id": "text",
"description": "text",
"url": "text",
"disabled": true,
"rateLimit": 1,
"createdAt": "2025-06-26T15:44:01.149Z",
"updatedAt": "2025-06-26T15:44:01.149Z",
"eventFilters": [
"guest_link.consumed"
]
}
The ID of an organization
The data to update a webhook endpoint
The description of the webhook endpoint
The URL of the webhook endpoint
Whether the webhook endpoint is disabled
The rate limit for the webhook endpoint
PUT /api/organizations/webhooks/endpoints/{endpointId}/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
x-m2-organization-id: text
Content-Type: application/json
Accept: */*
Content-Length: 104
{
"description": "text",
"url": "text",
"disabled": true,
"rateLimit": 1,
"eventFilters": [
"guest_link.consumed"
]
}
The details of the updated webhook endpoint
{
"id": "text",
"description": "text",
"url": "text",
"disabled": true,
"rateLimit": 1,
"createdAt": "2025-06-26T15:44:01.149Z",
"updatedAt": "2025-06-26T15:44:01.149Z",
"eventFilters": [
"guest_link.consumed"
]
}
Last updated
Was this helpful?