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.

Returns the details of an organization

get
Authorizations
Responses
200
The details for all organizations
application/json
get
GET /api/organizations/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-api-key: YOUR_API_KEY
Accept: */*
200

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
  }
]

Create organization

post

Creates a new organization.

Authorizations
Body

The data to create an organization

tenantIdstringOptional
featuredEventIdstringOptional
hasEventEnabledbooleanOptional
namestring · min: 1 · max: 64Required

The name of an organization

Responses
200
The details of the created organization
application/json
post
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"
}
200

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"
  }
}

Get api keys

get

Retrieves the api keys of an organization.

Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Responses
200
Response body for listing all API keys
application/json
get
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: */*
200

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"
  }
]

Post api key

post

Creates a new api key for an organization.

Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Body

Request body for creating a new API key

displayNamestringRequired
isActivebooleanRequired
permissionsstring[] · min: 1Required
Responses
200
Response body for creating a new API key
application/json
post
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"
  ]
}
200

Response body for creating a new API key

{
  "apiKey": "text"
}

Patch api key

patch

Updates an existing api key for an organization.

Authorizations
Path parameters
apiKeyIdstringRequired
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Body

Request body for updating an existing API key

displayNamestringOptional
permissionsstring[] · min: 1Optional
isActivebooleanOptional
Responses
200
Response body for updating an existing API key
application/json
patch
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
}
200

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"
}

Delete api key

delete

Deletes an existing api key for an organization.

Authorizations
Path parameters
apiKeyIdstringRequired
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Responses
204
Default Response
application/json
Responseany
delete
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: */*
204

Default Response

No content

Get organization detail

get

Fetches the details of a specific organization by its organizationId. If the organization exists, the data is returned.

Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Responses
200
The details for an organization
application/json
get
GET /api/organizations/current/ HTTP/1.1
Host: your-organization-id.m2worlds.io
x-m2-organization-id: text
Accept: */*
200

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
  }
}

Update organization

patch

Allows updating specific fields (like name or featured event) for an organization. It checks for write permissions before processing the request.

Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Body

The data to update an organization

namestring · min: 1 · max: 64Optional

The name of an organization

featuredEventIdstringOptional
Responses
200
Default Response
patch
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"
  }
}
200

Default Response

No content

Updates picture URL of organization

patch

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.

Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Responses
200
The shape of an organization
application/json
patch
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: */*
200

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
}

Returns the projects of organization

get

Retrieves all the projects associated with a specific organization, returning the list of projects the user has access to based on their permissions.

Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Responses
200
The data of all the projects in an organization
application/json
get
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: */*
200

The data of all the projects in an organization

[
  {
    "documentId": "text",
    "name": "text",
    "projectId": "text",
    "permissionVerb": "*"
  }
]

Create project

post

Allows creating a new project within an organization. The user must have write permissions to the organization to successfully create the project.

Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Body

The data to create a project

namestring · min: 1 · max: 64Required

The name of the project

Responses
200
The details of the created project
application/json
post
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"
}
200

The details of the created project

{
  "projectId": "text"
}

Get project details

get

Retrieves details of a specific project within an organization. Access is controlled by read permissions on the project.

Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

x-m2-project-idstringRequired

The ID of a project

Responses
200
The details for a project
application/json
get
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: */*
200

The details for a project

{
  "documentId": "text",
  "name": "text",
  "permissionVerb": "*"
}

Update project

patch

Updates a project’s attributes, such as the project name. The user needs write permissions on the project to make changes.

Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

x-m2-project-idstringRequired

The ID of a project

Body

The data to update a project

documentIdstringOptional
namestring · min: 1 · max: 64Optional

The name of the project

Responses
200
The details of the updated project
application/json
patch
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"
}
200

The details of the updated project

{
  "documentId": "text",
  "name": "text"
}

Delete project

delete

Deletes a project and its associated resources. Requires write permissions for the project and its children.

Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

x-m2-project-idstringRequired

The ID of a project

Responses
200
Default Response
delete
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: */*
200

Default Response

No content

Returns the details of a webhook endpoint

get
Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Responses
200
The details for all webhook endpoints
application/json
get
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: */*
200

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"
    ]
  }
]

Create a new webhook endpoint

post
Authorizations
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Body

The data to create a webhook endpoint

descriptionstringRequired

The description of the webhook endpoint

urlstringRequired

The URL of the webhook endpoint

disabledbooleanOptional

Whether the webhook endpoint is disabled

rateLimitnumberOptional

The rate limit for the webhook endpoint

Responses
200
The details of the created webhook endpoint
application/json
post
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"
  ]
}
200

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"
  ]
}

Delete a webhook endpoint

delete
Authorizations
Path parameters
endpointIdstringRequired
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Responses
204
Default Response
application/json
Responseany
delete
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: */*
204

Default Response

No content

Returns the details of a webhook endpoint

get
Authorizations
Path parameters
endpointIdstringRequired
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Responses
200
The details for a webhook endpoint
application/json
get
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: */*
200

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"
  ]
}

Update a webhook endpoint

put
Authorizations
Path parameters
endpointIdstringRequired
Header parameters
x-m2-organization-idstringRequired

The ID of an organization

Body

The data to update a webhook endpoint

descriptionstringRequired

The description of the webhook endpoint

urlstringRequired

The URL of the webhook endpoint

disabledbooleanOptional

Whether the webhook endpoint is disabled

rateLimitnumberOptional

The rate limit for the webhook endpoint

Responses
200
The details of the updated webhook endpoint
application/json
put
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"
  ]
}
200

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?