Skip to content
Esc
navigateopen⌘Jpreview
Dashboard

Upsert tenant (deprecated)

This API is deprecated. Please use the v2 version of this API. In the v2 version of the API, the login methods are no longer enabled using the emailPasswordEnabled, thirdPartyEnabled and passwordlessEnabled inputs. Instead, they are enabled using factorIds (such as emailpassword, otp-email, etc) specified in the firstFactors and requiredSecondaryFactors inputs. Please refer Multitenancy Docs to know the list of factorIds available.

Note: This deprecated API still accepts those emailPasswordEnabled, thirdPartyEnabled and passwordlessEnabled inputs for backward compatibility.

Creates or updates a tenant.

SuperTokens subscription license key is required.

If creating a new tenant, only the login methods set to true will be enabled and rest will be disabled by default.

firstFactors and requiredSecondaryFactors can be set to null to remove all entries in the core, or a non empty string array to be updated in the core. Setting of empty array is disallowed.

Note: the create/update will fail if a login method is not enabled and a relavant factor is added to either firstFactors or requiredSecondaryFactors. For example, emailPasswordEnabled cannot be set to false if emailpassword is present in the firstFactors array.

If updating an existing tenant,

  1. core will keep the existing state of login methods and only update the ones that are specified in the request body.
  2. Core config will be merged into existing config. To delete a key in the config, use a null value

The request must originate from public tenant, and the new tenant will use connectionUriDomain and app from which the request originates.

Note: Updation of core config is not allowed for the default connectionUriDomain, public app and tenant. In order to update config for the default connectionUriDomain, public app and tenant, you must edit the config.yaml or the docker env directly.

PUT/appid-{appId}/recipe/multitenancy/tenantdeprecated
Authorization
api-keyAPI key · headerrequired
The core service API token. If you are using a self-hosted core service and you have not generated a token, you can omit the header.
Header parameters
ridstring
cdi-versionstring
X.Y of the X.Y.Z CDI version.
Request body
application/json
tenantIdtenantIdrequired
emailPasswordEnabledboolean
thirdPartyEnabledboolean
passwordlessEnabledboolean
firstFactorsfirstFactors
requiredSecondaryFactorsrequiredSecondaryFactors
coreConfigobject
Responses
200Create or Update tenant result
statusstatusOKrequired
Allowed:OK
createdNewbooleanrequired
400error code 400
string
401error code 401
string
402error code 402
string
404error code 404
string
500error code 500
string
Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X PUT "/appid-{appId}/recipe/multitenancy/tenant" \
  -H "api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "tenantId": "customer1",
  "emailPasswordEnabled": true,
  "thirdPartyEnabled": true,
  "passwordlessEnabled": true,
  "firstFactors": [
    "emailpassword"
  ],
  "requiredSecondaryFactors": [
    "otp-phone"
  ],
  "coreConfig": {}
}'
Response
{
  "status": "OK",
  "createdNew": true
}

API reference

API schema and response details