Zoom Phone Batch Add Users API

API Endpoint(s) and/or Zoom API Event(s)

/phone/users/batch

Description
In the description of the API endpoint it says that the “outbound_caller_id” is not required and if left blank it will hide the caller ID, however when I try to actually call the endpoint without an outbound_caller_id it says “Outbound Caller ID is unavailable”.

Error?{
  “code”: 300,
  “message”: “Validation Failed.”,
  “errors”: [
    {
      “index”: 0,
      “message”: “Outbound Caller ID is unavailable”,
      “field_name”: “outbound_caller_id”
    }
  ]
}

Hi @dev.emily.garner
Thanks for reaching out to us!
Can you please share the entire request body you are sending so I can try and reproduce this on my end

@dev.emily.garner I tried reproducing your scenario but I am unable to.

I tried omitting the outbound caller id when batch creating a user and it completed successfully:

REQUEST:
POST https://api.zoom.us/v2/phone/users/batch
{"users":[{"email":"<redacted for privacy>","calling_plans":["US/CA Unlimited"],"extension_number":"803"}]}

RESPONSE:
HTTP/1.1 201 Created
x-zm-trackingid: WEB_115631025b4cabde7cc79baba439acb0
[{"id":"6pVBBJUMSg-7Z2ZtPz3mww","email":"<redacted for privacy>"}]

I tried specifying a empty string

REQUEST:
POST https://api.zoom.us/v2/phone/users/batch
{“users”:[{“email":"<redacted for privacy>”,“calling_plans”:[“US/CA Unlimited”],“extension_number”:“803”,“outbound_caller_id”:“”}]}

RESPONSE:
HTTP/1.1 201 Created
x-zm-trackingid: WEB_8bab5cf523e04f2245dbef857af59c46
[{“id":“6pVBBJUMSg-7Z2ZtPz3mww”,“email”:"<redacted for privacy>”}]

I also tried specifying a null value

REQUEST:
POST https://api.zoom.us/v2/phone/users/batch
{“users”:[{“email":"<redacted for privacy>”,“calling_plans”:[“US/CA Unlimited”],“extension_number”:“803”,“outbound_caller_id”:null}]}

RESPONSE:
HTTP/1.1 201 Created
x-zm-trackingid: WEB_cc8bd44459769891a37ed8fc903a2bd0
[{“id":“6pVBBJUMSg-7Z2ZtPz3mww”,“email”:"<redacted for privacy>”}]

Maybe there’s something slightly different in the payload you submit to the API?

This is the full body (with certain data redacted):

{
  “users”: [
  {
    “email”: “email@outlook.com”,
    “first_name”: “Emily”,
    “last_name”: “LaFollette”,
    “calling_plans”: [
      “US/CA Unlimited”
    ],
  “extension_number”: “1234”,
  “site_name”: “site name”,
  }
  ]
}

I am still unable to reproduce, even when using the payload you just posted which leads me to think that something else must be at play (like an account setting, or something along those lines, for example). There’s a header called x-zm-trackingidin the response you get from the Zoom API. If you post the value of this header, maybe someone from Zoom’s engineering team can investigate their log an find more info about your situation.

@elisa.zoom This is the tracking ID:

WEB_dd33e4b3ac0dcdd0e30dec82f3fd64aa

It is in our Dev account

hey @dev.emily.garner
Sorry for the late reply here.
I am actually facing the same issue. When I pass

{
  "users" : [ 
  {
    "email": "elisalev@test.com",
    "first_name": "Elisa", 
    "last_name": "Lev", 
    "calling_plans": [
      "US/CA Unlimited"
    ],
  "extension_number": "10",
  "site_name": "Main Site", 
  }
  ]
}

I get the outbound caller id error. I will escalate this with our Engineering team ( ZSEE-176244 internal ticket number for reference)

@desautelsj I tried passing the request as you shared, and I could not either

Hi @elisa.zoom checking to see if there is any update on this

Hi @dev.emily.garner
I do have an update.
I was informed that although it is not necessary to specify the outbound_caller_id, there is a prerequisite and it is that you must have a company number or site level outboud phone number.

Can you please check this for me and try again

@elisa.zoom Yes, we have an auto receptionist assigned to the main site in our dev environment

I’ll follow up with a DM for more information