API updates 12.21.20

Hey Zoom developers, the following items were released on December 21, 2020.

New APIs and Webhooks

  • Added APIs that provide metrics on post meeting and webinar feedback.

    • GET /v2/metrics/meetings/{meetingId}/participants/satisfaction
    • GET /v2/metrics/webinars/{webinarId}/participants/satisfaction
  • Added Delete a User’s Call Log API.

    • DELETE /v2/phone/users/{userId}/call_logs/{callLogId}
  • Added billing webhooks.

    • account.plan_subscribed
    • account.plan_added
    • account.plan_updated
    • account.plan_canceled

Enhancements

  • Added a new field(event_ts) in all the webhook payloads. This field represents the timestamp of when the associated event occurred. If you keep track of webhooks delivery timestamp in your storage, you can now determine the latency in webhook delivery by calculating the difference between the delivery timestamp and event_ts.

  • Added a new field(outbound_caller_id) in SIP Trunk APIs.

    • GET /v2/accounts/{accountId}/sip_trunk/trunks
    • POST /v2/accounts/{accountId}/sip_trunk/trunks
  • Added a new field(jbh_time) in the Meeting APIs.

    • POST /v2/users/{userId}/meetings
    • GET /v2/meetings/{meetingId}
    • PATCH /v2/meetings/{meetingId}
  • Added support for webinar.registration_created webhook to be triggered when bulk webinar registration is done using a CSV file on the web portal.

  • Added security validation requirement in Create and Update a Meeting APIs. All meetings hosted by users in Pro accounts, Business accounts(with 10-100 licenses) and EDU(K/12 Free) accounts must have either a passcode, waiting room or authentication setting enabled.

    • POST /v2/users/{userId}/meetings
    • PATCH /v2/meetings/{meetingId}
  • Added a new field(question_and_answer) in the Webinar APIs.

    • POST /v2/users/{userId}/webinars
    • PATCH /v2/meetings/{meetingId}
    • GET /v2/webinars/{webinarId}
  • Added support for new Zoom Phone plans in the Billing APIs.

    • POST /v2/accounts/{accountId}/plans
    • POST /v2/accounts/{accountId}/plans/addons
    • PUT /v2/accounts/{accountId}/plans/addons
    • GET /v2/accounts/{accountId}/plans
  • Added a new field(custom_attributes) in the user.updated webhook.

  • Added new fields(phone_number,direct_numbers,extension_number) in Get a User’s Contact Details API.

    • GET /v2/chat/users/me/contacts/{contactId}
  • Added a new field(login_type) in Get a User API.

    • GET /v2/users/{userId}
  • Added a new field(role_id) in Get a User API and List Users API.

    • GET /v2/users/{userId}
    • GET /v2/users
  • Added a new field(tracking_fields) in Meetings Dashboard API.

    • GET /v2/metrics/meetings
  • Added a new enum(tracking_fields) for include_fields request parameter in Dashboard API.

    • GET /v2/metrics/meetings
  • Added a new field(at_items) in the Send Chat Message API.

    • POST /v2/chat/users/{userId}/messages
  • Added a new field(prevent_host_access_recording) in Account, Group and Lock Settings APIs.

    • GET /v2/accounts/{accountId}/settings
    • PATCH /v2/accounts/{accountId}/settings
    • GET /v2/accounts/{accountId}/lock_settings
    • PATCH /v2/accounts/{accountId}/lock_settings
    • GET /v2/groups/{groupId}/settings
    • PATCH /v2/groups/{groupId}/settings
    • GET /v2/groups/{groupId}/lock_settings
    • PATCH /v2/groups/{groupId}/lock_settings
  • Added a new field(auto_security) in Account, Group, User and Lock settings APIs.

    • GET /v2/accounts/{accountId}/settings
    • PATCH /v2/accounts/{accountId}/settings
    • GET /v2/accounts/{accountId}/lock_settings
    • PATCH /v2/accounts/{accountId}/lock_settings
    • GET /v2/groups/{groupId}/settings
    • PATCH /v2/groups/{groupId}/settings
    • GET /v2/groups/{groupId}/lock_settings
    • PATCH /v2/groups/{groupId}/lock_settings
    • GET /v2/users/{userId}/settings
    • PATCH /v2/users/{userId}/settings
  • Added a new query parameter(custom_query_fields) in Account, Group and User Settings APIs.

    • GET v2/accounts/{accountId}/settings
    • GET v2/accounts/{accountId}/lock_settings
    • GET v2/groups/{groupId}/settings
    • GET v2/groups/{groupId}/lock_settings
    • GET v2/users/{userId}/settings
  • Added a new field(topic) in the Recording Settings API

    • PATCH /v2/meetings/{meetingId}/recordings/settings
  • Added a new response field(plan_united) in Get Plan Usage API.

    • GET /v2/accounts/{accountId}/plans/usage
  • Added a new field(plan_united_type) in the User APIs.

    • GET /v2/users
    • GET /v2/users/{userId}
    • POST /v2/users
    • PATCH /v2/users/{userId}
  • Added a new response fields(polling_id, date_time) in the poll report APIs.

    • GET /v2/report/meetings/{meetingId}/polls
    • GET /v2/report/webinars/{webinarId}/polls
    • GET /v2/past_meetings/{meetingId}/polls
    • GET /v2/past_webinars/{webinarId}/polls
  • Added a new validation error message in Delete a User API.

    • DELETE /v2/users/{userId}
      • 300 Unable to unlink API user(s).
  • Added new validation error messages for plan_united_type in Create and Update a User APIs.

    • POST /v2/users
      • 300 The value provided for plan_united_type parameter is invalid. Try again with a valid value.
      • 2034 Your request to add a new {0} user could not be approved at this time because your account has reached the permitted maximum number of {1} users. Please purchase additional licenses or contact the Zoom support team to provision additional users in your account.
    • PATCH /v2/users/{userId}
      • 300 The value provided for plan_united_type parameter is invalid. Try again with a valid value.
      • 2034 Your request to convert the plan type of this user to {0} was not approved at this time because your account has reached the permitted maximum number of {1} users. Please purchase additional licenses or contact the Zoom support team to provision additional users in your account.
  • Added support to return deactivated users’ recordings via Phone Recording API.

    • GET /v2/phone/users/{userId}/recordings
  • Added new response field(desk_phone) in Get Phone User Settings API.

    • GET /v2/phone/users/{userId}/settings
  • Added response fields(path, recording_type, call_id) in Account and User Call Logs APIs.

    • GET /v2/phone/call_logs
    • GET /v2/phone/users/{userId}/call_logs
  • Added request fields(from, to) and response fields(from, to) in Get User’s Recordings API.

    • GET /v2/phone/users/{userId}/recordings
  • Added request fields(from, to) and response fields(from, to) in Retrieve User’s Voicemail API.

    • GET /v2/phone/users/{userId}/voice_mails
  • Replaced “urn:us:zoom:scim:schemas:extension:1.0:ZoomUser” with “urn:ietf:params:scim:schemas:extension:zoom:1.0:User” schema in Create and Update a User SCIM APIs.

Bug Fixes

  • Fixed a bug where ‘Not meeting host’ message was being returned even when the meeting was being updated by a host.

    • PATCH /v2/meetings/{meetingId}
  • Fixed a bug that allowed a deactivated user’s information to be updated via Update a User API.

    • PATCH /v2/users/{userId}
  • Fixed a bug where the values for meeting authentication settings were not being returned when the settings were disabled.

    • GET v2/accounts/{accountId}/settings
    • GET v2/accounts/{accountId}/lock_settings
    • GET v2/groups/{groupId}/settings
    • GET v2/groups/{groupId}/lock_settings
    • GET v2/users/{userId}/settings
  • Fixed a bug where Update Live-streaming API was not functioning as intended.

    • PATCH /v2/meetings/{meetingId}/livestream/status
  • Fixed a bug where multiple recording completed events were being sent when a recording was paused and resumed.

    • phone.recording_completed

You can also see the update listed on our Changelog: https://marketplace.zoom.us/docs/changelog

Thanks,
Tommy

Hi @tommy,

I think this latest API update may have introduced a new bug. After issuing a request to the PATCH /v2/users/{userId} endpoint, the host_key field for that user got erased even though it was not included in the request. This didn’t happen prior to today’s update.

Let me know if you need me to provide more info for this bug report.

-Chris

Hey @chris.ota,

Yes, please provide more info here: #api-and-webhooks

Thanks for lettings us know,
Tommy

Hi @tommy,

I’ve posted in the other forum: Updating a user is now deleting the host key following 12.21.20 update

I am getting the response like

{#2248
+“code”: 300
+“message”: “Unable to unlink API user(s).”
}

When Deleting a User via API.

Please clarify about this validation message that you have updated recently

@rval, I was getting the same error because I forgot to include the action parameter. Adding action=delete to my request solved it.

@tommy The new update seems to have caused all TIMELINE files to not be exposed in the Get Recording Meetings endpoint. I tested this out with a few meetings for which we used to get the TIMELINE file previously (according to our logs).

Hey @berk,

Please see my post here relating to the TIMELINE file issue:

Thanks,
Tommy

Happy to hear you sorted out the issue @chris.ota! :slight_smile:

-Tommy

Hey @rval,

Can you create a new topic here: #api-and-webhooks and fill out the post template so we have enough information to help? :slight_smile:

Thanks,
Tommy

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.