Add a Tenant

Add a tenant.

Request URL

POST {base_url}/uc-tenant/api/v1/tenants

Request parameters

Headers
Parameter Required Type Description
Authorization Yes String The access token used for authentication.

Format: Bearer {access_token}.

Body parameters
Parameter Required Type Description
basic Yes Object<Tenant_Basic> The basic information of the tenant.
defaultConfig Yes Object<Tenant_Preference> The preferences of the tenant.
limitations Yes Object<Tenant_Limitation> The resource limits of the tenant.
assignments No Array<Tenant_DID> The DID assignment information.
codecConfig No Object<Tenant_Codec> The codec configuration.
defaultOutboundCallerIds No Array<Default_Outbound_Caller_ID> The list of default outbound caller IDs.
customHeaderValues No Array<Custom_Header> The list of custom SIP header values.
Tenant_Basic
Parameter Required Type Description
owner Yes Integer The user ID of the tenant owner.
Note: You can obtain the ID using the Get a User interface.
status No String

The status of the tenant.

Valid value:

  • ACTIVE: The tenant is active.
  • SUSPENDED: The tenant is suspended.
name Yes String The name of the tenant.
description No String The description of the tenant.
brandId No Integer The brand ID.
Note: You can obtain brand ID using the Get the Branding List interface.
Tenant_Preference
Parameter Required Type Description
country Yes String The country or region where the tenant is located.
Note: You can obtain the country/region code using the Get Country List interface.
nameDisplayFormat Yes String The format used to display names.

Valid value:

  • fls: First Name Last Name with Space Inbetween
  • lfs: Last Name First Name with Space Inbetween
  • lf: Last Name First Name without Space Inbetween
toneRegion Yes String The short code of the tone region.
Note: You can obtain the tone region code using the Get Tone Region List (Tenant-Level) interface.
timeZone Yes String The time zone.
Note: You can obtain the time zone code using the Get Time Zone List interface.
daylightSavingTime Yes String Whether to enable daylight saving time.

Valid value:

  • Disabled
  • Automatic
dateDisplayFormat Yes String The date display format.

Valid value:

  • yyyy/mm/dd: Year/Month/Day
  • mm/dd/yyyy: Month/Day/Year
  • dd/mm/yyyy: Day/Month/Year
timeDisplayFormat Yes String The time display format.

Valid value:

  • hh:mm:ss A: 12-hour format.
  • HH:mm:ss: 24-hour format.
systemPromptLanguage No String The language used for system prompts.
Note: You can obtain the available system prompt options using the Get System Prompt Options interface.
emailNotificationLanguage No String The language used for email notifications.
Note: You can obtain the available language options using the Query Dictionary Items interface.
displayCountryCode No Boolean The format used to display phone numbers.

Valid value:

  • INTERNATIONAL: Display numbers in international format, starting with a plus sign (+) followed by the country code, area code, and local number.
  • DOMESTIC: Display numbers in domestic format, using the area code and local number without the country code.
callerIdResolution No Array<String> The sources used to determine the Caller ID name.

Valid values:

  • system_contacts: Display the matched contact name when an incoming call matches an internal user or external contact.
  • caller_id_name: Display the name carried in the From header of the SIP message.
displayCallFeature No Boolean Whether to include the call feature name in the Caller ID Name for incoming calls routed through a ring group, queue, or IVR.
Valid value:
  • true
  • false
displayDidName No Boolean Whether to display the associated DID name when receiving incoming calls through a DID number.

Valid value:

  • true
  • false
Tenant_Limitations
Parameter Required Type Description
maxUsers Yes Object<Resource_Quota> The maximum number of users.
maxConcurrentCalls Yes Object<Resource_Quota> The maximum number of concurrent calls.
maxCallDurations Yes Object<Resource_Quota> The maximum duration of a single call.
recordingUsers No Array<Recording_User> The list of recording user assignments.
maxQueues Yes Integer The maximum number of queues.
maxRingGroups No Integer The maximum number of ring groups.
maxIvrs No Integer The maximum number of IVRs.
maxMessageTime No Integer The maximum message duration.
minMessageTime No Integer The minimum message duration.
maxVoicemailMessages No Integer The maximum number of voicemail messages each voicemail box can store.
maxMobileClients Yes Object<Resource_Quota> The maximum number of NovoOne Mobile Clients.
maxDesktopClients Yes Object<Resource_Quota> The maximum number of NovoOne Desktop Clients.
maxWebClients Yes Object<Resource_Quota> The maximum number of NovoOne Web Clients.
maxAwsTranscriptionUsers No Object<Resource_Quota> The maximum number of transcription users.
maxReceptionistMinutes No Object<Resource_Quota> The maximum number of AI Receptionist minutes.
maxReceptionistPackMinutes No Object<Resource_Quota> The maximum number of AI Receptionist monthly minute pack.
Resource_Quota
Parameter Required Type Description
limited Yes Boolean

Whether the quota is limited.

Valid value:

  • true: The quota is limited. Specify total to set the quota.
  • false: The quota is unlimited.
total Yes Integer The total quota.
Recording_User
Parameter Required Type Description
allocatedValue No Integer The number of recording users allocated to the tenant for the specified recording retention period.
unitValue No Integer The value of the recording retention period. The minimum value is 1.
unit Yes String

The unit of the recording retention period.

Valid value:

  • day: Days.
  • month: Months.
  • year: Years.
Tenant_DID
Parameter Required Type Description
trunkId Yes Integer The trunk ID.
Note: You can obtain trunk ID using the Search Trunks interface.
dids Yes Array<Integer> The list of DID IDs.
Note: You can obtain DID ID using the List Assignable Trunks interface.
inboundLimit Yes Integer The inbound call limit.
outboundLimit Yes Integer The outbound call limit.
totalLimit Yes Integer The total call limit.
Tenant_Codec
Note: You can obtain available codecs using the Get Codec Options interface.
Parameter Required Type Description
audioCodecs No Array<String> The list of audio codecs.
audioCodecsWifi No Array<String> The list of audio codecs used over Wi-Fi networks.
audioCodecsCellular No Array<String> The list of audio codecs used over cellular networks.
Default_Outbound_Caller_ID
Parameter Required Type Description
trunkId Yes Integer The trunk ID.
Note: You can obtain trunk ID using the Search Trunks interface.
didId Yes Integer The DID ID.
Note: You can obtain DID ID using the List Assignable Trunks interface.
Custom_Header
Parameter Required Type Description
trunkId Yes Integer The trunk ID.
Note: You can obtain trunk ID using the Search Trunks interface.
values No Array<Custom_Header_Value> The list of custom SIP header values.
Custom_Header_Value
Parameter Required Type Description
id Yes String The header ID.
Note: You can obtain the ID using the Get a Trunk interface.

Response parameters

Parameter Type Description
requestId String The unique ID of the request, which can be used to quickly locate the request.
code String The HTTP status code of the request.
  • 200: Request succeeded.
  • Non-200 value: Request failed.
message String The status message of the request.
detailMessage String The detailed error information.

When the request is successful, this parameter returns empty.

result Object<Creation_Result> The ID of the newly created tenant.
Creation_Result
Parameter Type Description
tenantId String The ID of the newly created tenant.

Example

Request example

POST /uc-tenant/api/v1/tenants HTTP/1.1
Host: api.cn.novoone.com
Authorization: Bearer eyJraWQiOiJjbi0wLWtleS0xIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJkaXN0cmlidXRvcmV4YW1wbGVAb3V0bG9vay5jb20iLCJhcHBfa2V5Ijoic2xOdnQzaHc1NXB2Vm5HRlNhR2ZOVTNmMWxYQ3lpa08iLCJncmFudF90eXBlIjoib3BlbmFwaSIsImNsaWVudF9leHQiOnsiZGVzY3JpcHRpb24iOiLnrKzkuInmlrnlkIjkvZzkvJnkvLTlupTnlKgiLCJwYXJ0bmVyIjoi56S65L6L5ZCI5L2c5LyZ5Ly0In0sImNsaWVudF90eXBlIjoib3BlbmFwaSIsImV4cCI6MTc5MTk4NTEyOSwiaWF0IjoxNzkxOTYzNTI5LCJqdGkiOiI4OWEzZGNjZi0xODUwLTQ4ODQtOGFmOS1mNGFmY2I2MzljNWIiLCJjbGllbnRfaWQiOiJub3ZvLW9wZW4tcGxhdGZvcm0iLCJ1c2VyX2V4dCI6eyJyb2xlSWRzIjpbM10sInN0eXBlIjoiQURNSU4iLCJ0ZW5hbnRDb2RlIjpudWxsLCJ0eXBlIjoiUF9BQ0NPVU5UIiwidXNlcklkIjozMDc2OTEzNjQ0OTE1OTk4NzIwLCJlbWFpbCI6ImRpc3RyaWJ1dG9yZXhhbXBsZUBvdXRsb29rLmNvbSIsInVzZXJuYW1lIjoiZGlzdHJpYnV0b3JleGFtcGxlQG91dGxvb2suY29tIiwidWNJZCI6MzA3NjkxMzY0NDg5MDgzMjg5Nn19.M6uGO4Ocer4JKJLJ5ZIafLRIs5yqPMa0Y_RIiwQTb2bWsr5DViU0jgbjca91VukjmGNplQV0U0QoX17I6Y6EhytUkHWTjW1FkEWJiu7CPCob_qDcta9RyT-Hio36HViBsoU1fewmFyufrl5Li1KLxnuREIWklyImMH4-JJwsni7-19l537NIog150PtePm5RalOLCcvE0a4DbD9MV7aPaHaBfWhxXgZJvAB_13tG_ELkVny7Mpwcui-b1kGeis9gWL878M0ZpIJ20OHk578BeL60PDh3IiInYeQMrmCT2p04KQqDyFI6KuIz85I85a6bJKa9ntzJJv3q-s9lBZuELw
Content-Type: application/json
{
  "basic": {
    "owner": 3076913644915998720,
    "name": "ait-doc-test-02",
    "description": "API doc test tenant"
  },
  "defaultConfig": {
    "country": "China",
    "nameDisplayFormat": "fls",
    "toneRegion": "cn",
    "timeZone": "UTC+8 Asia/Shanghai",
    "daylightSavingTime": "Disabled",
    "dateDisplayFormat": "yyyy/mm/dd",
    "timeDisplayFormat": "HH:mm:ss"
  },
  "limitations": {
    "maxUsers": {
      "limited": true,
      "total": 10
    },
    "maxConcurrentCalls": {
      "limited": true,
      "total": 10
    },
    "maxCallDurations": {
      "limited": true,
      "total": 3600
    },
    "maxQueues": 5,
    "maxMobileClients": {
      "limited": true,
      "total": 5
    },
    "maxDesktopClients": {
      "limited": true,
      "total": 5
    },
    "maxWebClients": {
      "limited": true,
      "total": 5
    }
  }
}

Response example

HTTP/1.1 200 OK
{
  "result": {
    "tenantId": "2110275024254992385"
  },
  "requestId": "93c7a2451efb33e9d7e88b2868f268f2",
  "code": "200",
  "message": "SUCCESS"
}