---
title: "Creates a Tenant"
method: POST
path: "/tenants"
tags: ["tenants"]
---

# Creates a Tenant

`POST /tenants`

You need `tenants.tenant.create` permission to access this resource

## Request body

- object
  - `data` object, required
    - `type` 'tenant', required
    - `attributes` object, required
      - `name` string, required
      - `app_domain` string, required
      - `api_domain` string
      - `webhooks_domain` string
      - `api_docs_url` string — The URL to your custom API documentation
      - `git_receiver_host` string
      - `code` string, required
      - `header_logo_url` string — The URL of image which will be displayed in the navigation panel (logo size 40x40 pixels, logo format - .png or .svg)
      - `loading_logo_url` string — The URL of image which will be displayed during the page loading
      - `email_logo_url` string — The URL of image which will be displayed in the emails
      - `favicon_url` string — The URL of image which will be displayed as favicon
      - `terms_of_usage_url` string — The URL which redirects to the terms of usage page
      - `privacy_policy_url` string — The URL which redirects to the privacy policy page
      - `imprint_url` string — The URL which redirects to the imprint page
      - `mandrill_email_from` string, required — An email of the letters sender
      - `mandrill_api_key` string — The mandrill API key
      - `segment_write_key` string — Segment write key
      - `google_tag_manager_id` string — Google Tag Manager container `ID` without `GTM-` prefix
      - `hide_register` boolean
      - `is_default` boolean — You can set only one default tenant per installation
      - `hide_repos` boolean
      - `hide_teams` boolean
      - `hide_ssh_keys` boolean
      - `hide_api_key` boolean
      - `hide_docs` boolean
      - `powered_by_elasticio` boolean
      - `docs_base_url` string — This link will applied to the Quick Help =>> Documentation menu and to the repository page docs link
      - `component_docs_base_url` string — Base URL for relative paths to component docs. E.g. if this url is `https://docs.example.com/components/` and `component.json` contains the following field `"help": {"link": "salesforce"}`, on frontend we will use `https://docs.example.com/components/salesforce` as a link to documentation of this component. If this property is not set, relative urls won't be displayed. If this property is set, make sure component_docs_base_url + 'getting-started/credential.html' page exists
      - `ssl_certificates` object
        - `app` string — An ID of SSL-certificate for a web-UI domain
        - `api` string — An ID of SSL-certificate for API domain
        - `webhooks` string — An ID of SSL-certificate for the webhooks domain
      - `email_templates` object — hashMap of represent emails will be sent. By default "repo-new-version" and "repo-new-version-in-workspace-flows" are set to false
        - `agent-request` boolean, required — Agent has been requested
        - `contract-deleted` boolean, required — Contract has been deleted
        - `contract-invite-empty-contract` boolean, required — New user has been invited to an empty Contract
        - `contract-invite-new-user` boolean, required — New user has been invited to the Contract
        - `contract-suspended` boolean, required — Contract has been suspended
        - `contract-unsuspended` boolean, required — Contract has been unsuspended
        - `password-recovery` boolean, required — Password recovery has been requested
        - `repo-new-version` boolean, required — New Component version has been pushed in your Developer Team
        - `repo-new-version-in-workspace-flows` boolean, required — New Component version has been pushed, Component used in your Flows
        - `task-error-notification` boolean, required — A Component has reported an error
        - `task-operational-error` boolean, required — A container has failed
        - `team-from-contract-invite` boolean, required — Has invited to contract's team
        - `team-removed-member` boolean, required — Team member has been removed
        - `user-removed-from-contract` boolean, required — Has removed user from contract
        - `wiper-exhaustion-quota-notification` boolean, required — Quota usage has come to the limit
        - `wiper-flow-suspended-due-to-queue-overflow` boolean, required — Flow has been suspended due to queue overflow
        - `wiper-stop-limited-flow` boolean, required — Flow has been stopped due to limitations of limited workspace
        - `wiper-suspended-queue-purged` boolean, required — Unhandled data has been purged
        - `workspace-invite-empty-workspace` boolean, required — User has been invited to an empty Workspace
        - `workspace-invite-new-user` boolean, required — Unregistered user has been invited to the Workspace
        - `workspace-removed` boolean, required — Workspace has been removed
        - `workspace-removed-member` boolean, required — Member has been removed from the Workspace
      - `suppress_email` string[]
      - `custom_nav_menu_items` union[]
        - union
          - object
            - `title` string, required — The link text
            - `icon` string, required — The icon name from [material-icons](https://material.io/tools/icons/?style=baseline)
            - `custom_class` string — The class added to <a> tag
            - `links` object[], required
              - …
          - object
            - `title` string, required — The link text
            - `icon` string, required — The icon name from [material-icons](https://material.io/tools/icons/?style=baseline)
            - `custom_class` string, required — The class added to <a> tag
      - `custom_stylesheets` object[]
        - `href` string, required — Customer css stylesheets
      - `custom_scripts` object[]
        - `src` string, required — The URL of js-script
        - `location` 'head' | 'body' — A value can be `head` or `body`. Location where js-script will be added inside html page. Default: "head"
      - `email_domains_blacklist` string[]
      - `feature_flags` object
        - `contract_component_whitelist` boolean — Enable component whitelisting on contract level. Default: "false"
        - `enabled_totp` boolean — Enable ability to use two-factor authentication. Default: "false"
        - `forced_totp` boolean — Enforce users to setup two-factor authentication. Requires `attributes.feature_flags.enabled_totp` to be enabled. Default: "false"
        - `email_verification` boolean — Whether we send email verification letter to user during registration. Default: "true"
        - `sensitive_actions_reauth` boolean — Enable Reauthentication for sensitive endpoints. Default: "false"
        - `subscribe_to_error_by_default` boolean — Subscribe to error notifications from flows by default. Default: "true"
        - `shut_down_timeout_enabled` boolean — Enable the ability to set a timeout for shutting down a flow. Default: "false"
        - `skip_session_ip_validation` boolean — Dangerous feature flag option. Will disable IP check. Set to "true" to disable this additional security.
      - `signin_v_2` object — Enable new design for registration page
        - `logo_url` string, required — The URL of image which will be displayed on new registration page. In case it's not specified, the `attributes.header_logo_url` will be used
        - `google_provider_id` string, required — Google OIDC Provider `id` in this tenant. Enables Google Sign In and Sign Up
      - `login_redirect_sso_provider` object — When set and anonymous user opens any frontend page (except /login and /register), he will be redirected to specified SAML/OpenID provider authentication page. Set to `null` to unset
        - `type` 'openid' | 'saml', required — Type of provider: `openid` or `saml`
        - `id` string, required — SAML/OpenID provider ID in this tenant
      - `api_docs_config` object — Configuration object for tenant's api docs
        - `top_bar_background_color` string — CSS color for the top bar panel's background
        - `custom_css_url` string — URL for custom CSS file to be included in api docs
        - `theme` 'classic' | 'feeling-blue' | 'flattop' | 'material' | 'monokai' | 'muted' | 'newspaper' | 'outline' — Swagger themes
        - `hidden_tags` string[] — Array of tags to hide in api docs
      - `logout_redirect_url` string — The URL to redirect user to after logout from frontend. Set to `null` to unset
      - `flow_stats_enabled_default` boolean — *Flow Stats Toggle* By default each step of a flow generates stats about input/output messages and errors. You can see them on the Executions and Dashboard pages. To disable input/output message stats you can set flow's `attributes.stats_enabled` flag to `false`. If you want to disable stats for all **newly created** flows of a workspace/contract/tenant, set `attributes.flow_stats_enabled_default` property of a target workspace/contract/tenant to `false`. This property is cascade. E.g. if on flow creation it's not defined or `true` for workspace, we will look for contract. If it's not defined or `true` for contract, we will look for tenant. If it's not defined or `true` for tenant, flow will have `attributes.stats_enabled` = `true`. So we search upwards until see the first `false`, otherwise stats will be enabled.
      - `support_user_id` string — An ID of user from platform support team
      - `default_workspace_type` 'full' | 'limited' — Default Workspace type for Workspaces created in the Tenant. The value can be `full` or `limited`. If not specified, the attribute will be set to `full`or `limited` depending on Tenant settings
      - `ingress_config` object — The tenant ingress configuration
        - `annotations` object — Custom ingress annotations to be added for tenant ingress
          - `app` object — Annotations for the frontend
          - `api` object — Annotations for the api
          - `webhooks` object — Annotations for the webhooks
          - `apidocs` object — Annotations for the api docs
      - `html_meta` object
        - `keywords` string[] — Customer meta keywords in html pages
        - `description` string — Customer meta description in html pages
        - `author` string — Customer meta author in html pages

## Response `201`

Created

- object
  - `data` object, required
    - `id` string, required
    - `type` 'tenant', required
    - `links` object, required
      - `self` string, required
    - `attributes` object, required
      - `name` string, required
      - `app_domain` string, required
      - `api_domain` string
      - `webhooks_domain` string
      - `api_docs_url` string — The URL to your custom API documentation
      - `git_receiver_host` string
      - `code` string, required
      - `header_logo_url` string — The URL of image which will be displayed in the navigation panel (logo size 40x40 pixels, logo format - .png or .svg)
      - `loading_logo_url` string — The URL of image which will be displayed during the page loading
      - `email_logo_url` string — The URL of image which will be displayed in the emails
      - `favicon_url` string — The URL of image which will be displayed as favicon
      - `terms_of_usage_url` string — The URL which redirects to the terms of usage page
      - `privacy_policy_url` string — The URL which redirects to the privacy policy page
      - `imprint_url` string — The URL which redirects to the imprint page
      - `mandrill_email_from` string, required — An email of the letters sender
      - `mandrill_api_key` string — The mandrill API key
      - `segment_write_key` string — Segment write key
      - `google_tag_manager_id` string — Google Tag Manager container `ID` without `GTM-` prefix
      - `hide_register` boolean
      - `is_default` boolean — You can set only one default tenant per installation
      - `hide_repos` boolean
      - `hide_teams` boolean
      - `hide_ssh_keys` boolean
      - `hide_api_key` boolean
      - `hide_docs` boolean
      - `powered_by_elasticio` boolean
      - `docs_base_url` string — This link will applied to the Quick Help =>> Documentation menu and to the repository page docs link
      - `component_docs_base_url` string — Base URL for relative paths to component docs. E.g. if this url is `https://docs.example.com/components/` and `component.json` contains the following field `"help": {"link": "salesforce"}`, on frontend we will use `https://docs.example.com/components/salesforce` as a link to documentation of this component. If this property is not set, relative urls won't be displayed. If this property is set, make sure component_docs_base_url + 'getting-started/credential.html' page exists
      - `ssl_certificates` object
        - `app` string — An ID of SSL-certificate for a web-UI domain
        - `api` string — An ID of SSL-certificate for API domain
        - `webhooks` string — An ID of SSL-certificate for the webhooks domain
      - `email_templates` object — hashMap of represent emails will be sent. By default "repo-new-version" and "repo-new-version-in-workspace-flows" are set to false
        - `agent-request` boolean, required — Agent has been requested
        - `contract-deleted` boolean, required — Contract has been deleted
        - `contract-invite-empty-contract` boolean, required — New user has been invited to an empty Contract
        - `contract-invite-new-user` boolean, required — New user has been invited to the Contract
        - `contract-suspended` boolean, required — Contract has been suspended
        - `contract-unsuspended` boolean, required — Contract has been unsuspended
        - `password-recovery` boolean, required — Password recovery has been requested
        - `repo-new-version` boolean, required — New Component version has been pushed in your Developer Team
        - `repo-new-version-in-workspace-flows` boolean, required — New Component version has been pushed, Component used in your Flows
        - `task-error-notification` boolean, required — A Component has reported an error
        - `task-operational-error` boolean, required — A container has failed
        - `team-from-contract-invite` boolean, required — Has invited to contract's team
        - `team-removed-member` boolean, required — Team member has been removed
        - `user-removed-from-contract` boolean, required — Has removed user from contract
        - `wiper-exhaustion-quota-notification` boolean, required — Quota usage has come to the limit
        - `wiper-flow-suspended-due-to-queue-overflow` boolean, required — Flow has been suspended due to queue overflow
        - `wiper-stop-limited-flow` boolean, required — Flow has been stopped due to limitations of limited workspace
        - `wiper-suspended-queue-purged` boolean, required — Unhandled data has been purged
        - `workspace-invite-empty-workspace` boolean, required — User has been invited to an empty Workspace
        - `workspace-invite-new-user` boolean, required — Unregistered user has been invited to the Workspace
        - `workspace-removed` boolean, required — Workspace has been removed
        - `workspace-removed-member` boolean, required — Member has been removed from the Workspace
      - `suppress_email` string[]
      - `custom_nav_menu_items` union[]
        - union
          - object
            - `title` string, required — The link text
            - `icon` string, required — The icon name from [material-icons](https://material.io/tools/icons/?style=baseline)
            - `custom_class` string — The class added to <a> tag
            - `links` object[], required
              - …
          - object
            - `title` string, required — The link text
            - `icon` string, required — The icon name from [material-icons](https://material.io/tools/icons/?style=baseline)
            - `custom_class` string, required — The class added to <a> tag
      - `custom_stylesheets` object[]
        - `href` string, required — Customer css stylesheets
      - `custom_scripts` object[]
        - `src` string, required — The URL of js-script
        - `location` 'head' | 'body' — A value can be `head` or `body`. Location where js-script will be added inside html page. Default: "head"
      - `email_domains_blacklist` string[]
      - `feature_flags` object
        - `contract_component_whitelist` boolean — Enable component whitelisting on contract level. Default: "false"
        - `enabled_totp` boolean — Enable ability to use two-factor authentication. Default: "false"
        - `forced_totp` boolean — Enforce users to setup two-factor authentication. Requires `attributes.feature_flags.enabled_totp` to be enabled. Default: "false"
        - `email_verification` boolean — Whether we send email verification letter to user during registration. Default: "true"
        - `sensitive_actions_reauth` boolean — Enable Reauthentication for sensitive endpoints. Default: "false"
        - `subscribe_to_error_by_default` boolean — Subscribe to error notifications from flows by default. Default: "true"
        - `shut_down_timeout_enabled` boolean — Enable the ability to set a timeout for shutting down a flow. Default: "false"
        - `skip_session_ip_validation` boolean — Dangerous feature flag option. Will disable IP check. Set to "true" to disable this additional security.
      - `signin_v_2` object — Enable new design for registration page
        - `logo_url` string, required — The URL of image which will be displayed on new registration page. In case it's not specified, the `attributes.header_logo_url` will be used
        - `google_provider_id` string, required — Google OIDC Provider `id` in this tenant. Enables Google Sign In and Sign Up
      - `login_redirect_sso_provider` object — When set and anonymous user opens any frontend page (except /login and /register), he will be redirected to specified SAML/OpenID provider authentication page. Set to `null` to unset
        - `type` 'openid' | 'saml', required — Type of provider: `openid` or `saml`
        - `id` string, required — SAML/OpenID provider ID in this tenant
      - `api_docs_config` object — Configuration object for tenant's api docs
        - `top_bar_background_color` string — CSS color for the top bar panel's background
        - `custom_css_url` string — URL for custom CSS file to be included in api docs
        - `theme` 'classic' | 'feeling-blue' | 'flattop' | 'material' | 'monokai' | 'muted' | 'newspaper' | 'outline' — Swagger themes
        - `hidden_tags` string[] — Array of tags to hide in api docs
      - `logout_redirect_url` string — The URL to redirect user to after logout from frontend. Set to `null` to unset
      - `flow_stats_enabled_default` boolean — *Flow Stats Toggle* By default each step of a flow generates stats about input/output messages and errors. You can see them on the Executions and Dashboard pages. To disable input/output message stats you can set flow's `attributes.stats_enabled` flag to `false`. If you want to disable stats for all **newly created** flows of a workspace/contract/tenant, set `attributes.flow_stats_enabled_default` property of a target workspace/contract/tenant to `false`. This property is cascade. E.g. if on flow creation it's not defined or `true` for workspace, we will look for contract. If it's not defined or `true` for contract, we will look for tenant. If it's not defined or `true` for tenant, flow will have `attributes.stats_enabled` = `true`. So we search upwards until see the first `false`, otherwise stats will be enabled.
      - `support_user_id` string — An ID of user from platform support team
      - `default_workspace_type` 'full' | 'limited' — Default Workspace type for Workspaces created in the Tenant. The value can be `full` or `limited`. If not specified, the attribute will be set to `full`or `limited` depending on Tenant settings
      - `ingress_config` object — The tenant ingress configuration
        - `annotations` object — Custom ingress annotations to be added for tenant ingress
          - `app` object — Annotations for the frontend
          - `api` object — Annotations for the api
          - `webhooks` object — Annotations for the webhooks
          - `apidocs` object — Annotations for the api docs
      - `html_meta` object
        - `keywords` string[] — Customer meta keywords in html pages
        - `description` string — Customer meta description in html pages
        - `author` string — Customer meta author in html pages
  - `meta` object, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden

---

[API](https://skmtc.net/elastic/apis/elastic-io-rest-api-documentation-v2.md) · [All operations](https://skmtc.net/elastic/apis/elastic-io-rest-api-documentation-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elastic/elastic-io-rest-api-documentation-v2/revisions/411f9f98c01e/schema)
