For more info on XML API 39 and XML API 11, see the Cisco Webex Meetings XML API Updates Overview (XML API 39 and Earlier).

For updates for XML API 11 SP9 and earlier, go to Cisco DevNet.

API 40.4.3, 40.2.4 Updates

XML API 40.4.3, 40.2.4 Updates

Click here to download the XML API 40.4.3, 40.2.4 schema.

CreateUser enhancements

We enhanced CreateUser to support the welcome email in multiple languages. The CreateUser now requests isHTMLEmail

Affected APIs:

  • CreateUser

CreateUser Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
    <securityContext>
    <webExID>administrator</webExID>
    <password>xxxx</password>
    <siteName>xxx</siteName>
    </securityContext>  
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.user.CreateUser">
    <firstName>xxx</firstName>
    <lastName>xxx</lastName>
    <webExId>xxx</webExId>
    <password>xxx</password>
    <email>xxx</email>
    <privilege>
        <host>true</host>
        <siteAdmin>false</siteAdmin>
        <labAdmin>false</labAdmin>
        <voiceOverIp>false</voiceOverIp>
    </privilege>
    <languageID>3</languageID>
    <active>ACTIVATED</active>
    <sendWelcome>true</sendWelcome>
    <isHTMLEmail>true</isHTMLEmail>
</bodyContent>  
</body>
</serv:message>

API 40.4.0 Updates

XML API 40.4.0 Updates

Enforce email verification when changing emails in XML API

After a site administrator enabled Confirmation required for the user to update email address in Webex Site Administration:

  • If a non-site administrator account calls the SetUser API to change email addresses, the current email remains until the new email is verified. The account change confirmation email is sent to the new email address with the "Webex Account Change Confirmation." After clicking the link in the email to confirm, the new email address is immediately linked.


    If a non-site administrator calls the SetUser API several times without finishing the email verification process, the current email is kept, and the latest new email is the one that must be verified.

  • If a site administrator account calls the SetUser API to change email addresses, the email verification process isn't triggered. The new email will immediately be linked to the host's or attendee's account.

Affected APIs:

  • SetUser

GetEnrollmentInfo timeout and connection reset

The GetEnrollmentInfo API currently looks up IP addresses on the Domain Name System, which triggers huge performance impacts. We plan to simplify this process, with an empty response in the <domain> field.

Affected APIs:

  • GetEnrollmentInfo

GetEnrollmentInfo Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>sqdemo6</siteName>
<webExID>xxx</webExID>
<password>xxxx</password>
<partnerID>webexpartner</partnerID>
</securityContext>
</header>
    <body>
        <bodyContent
            xsi:type="java:com.webex.service.binding.attendee.GetEnrollmentInfo">
            <sessionKey>716773566</sessionKey>
        </bodyContent>
    </body>
</serv:message>

GetEnrollmentInfo Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common"
    xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
    <serv:header>
        <serv:response>
            <serv:result>SUCCESS</serv:result>
            <serv:gsbStatus>PRIMARY</serv:gsbStatus>
        </serv:response>
    </serv:header>
    <serv:body>
        <serv:bodyContent xsi:type="att:getEnrollmentInfoResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <att:session>
                <att:confID>154279066999981548</att:confID>
                <att:attendee>
                    <att:attendeeID>3191792</att:attendeeID>
                    <att:enrollFields>
                        <att:defaultFields>
                            <att:firstName>Alex</att:firstName>
                            <att:lastName>Yang</att:lastName>
                            <att:email>omega.alex.yang@gmail.com</att:email>
                            <att:company></att:company>
                            <att:phoneNum></att:phoneNum>
                            <att:title></att:title>
                            <att:receiveInfo>false</att:receiveInfo>
                            <att:address1></att:address1>
                            <att:address2></att:address2>
                            <att:city></att:city>
                            <att:state></att:state>
                            <att:zipcode></att:zipcode>
                            <att:country></att:country>
                            <att:leadSourceID></att:leadSourceID>
                            <att:leadScore>0.0</att:leadScore>
                        </att:defaultFields>
                        <att:customFields/>
                    </att:enrollFields>
                    <att:domain> </att:domain>
                    <att:ipAddress>10.35.240.53</att:ipAddress>
                    <att:submitTime>02/27/2020 22:03:57</att:submitTime>
                    <att:status>APPROVED</att:status>
                </att:attendee>
                <att:attendee>
                    <att:attendeeID>3191797</att:attendeeID>
                    <att:enrollFields>
                        <att:defaultFields>
                            <att:firstName>AlexKKK</att:firstName>
                            <att:lastName>Test</att:lastName>
                            <att:email>achillesyang@hotmail.com</att:email>
                            <att:company></att:company>
                            <att:phoneNum></att:phoneNum>
                            <att:title></att:title>
                            <att:receiveInfo>false</att:receiveInfo>
                            <att:address1></att:address1>
                            <att:address2></att:address2>
                            <att:city></att:city>
                            <att:state></att:state>
                            <att:zipcode></att:zipcode>
                            <att:country></att:country>
                            <att:leadSourceID></att:leadSourceID>
                            <att:leadScore>0.0</att:leadScore>
                        </att:defaultFields>
                        <att:customFields/>
                    </att:enrollFields>
                    <att:domain> </att:domain>
                    <att:ipAddress>10.154.181.15</att:ipAddress>
                    <att:submitTime>02/27/2020 22:07:38</att:submitTime>
                    <att:status>APPROVED</att:status>
                </att:attendee>
                <att:matchingRecords>
                    <serv:total>2</serv:total>
                    <serv:returned>2</serv:returned>
                    <serv:startFrom>1</serv:startFrom>
                </att:matchingRecords>
                <att:sessionKey>716773566</att:sessionKey>
            </att:session>
        </serv:bodyContent>
    </serv:body>
</serv:message>

API 40.2.0 Updates

XML API 40.2.0 Updates

Click here to download the XML API 40.2.0 schema.

Remove anonymous access to LstSummarySession

As a security enhancement, we're stopping support for anonymous access to the LstSummarySession API. If Webex Meetings anonymously accesses the API, the following error code and message are returned: "000015 Sorry, no record found."

Affected APIs:

  • LstSummarySession

LstSummarySession Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
    <securityContext>
        <siteName>sitename1</siteName>
    </securityContext>
</header>
<body>
    <bodyContent xsi:type="java:com.webex.service.binding.ep.LstsummarySession">
        <sessionKey>211894651</sessionKey>
    </bodyContent>
</body>
</serv:message>

LstSummarySession Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common"

xmlns:ep="http://www.webex.com/schemas/2002/06/service/ep" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting">
    <serv:header>
        <serv:response>
            <serv:result>FAILURE</serv:result>
            <serv:reason>Sorry, no record found</serv:reason>
            <serv:gsbStatus>PRIMARY</serv:gsbStatus>
            <serv:exceptionID>000015</serv:exceptionID>
        </serv:response>
    </serv:header>
    <serv:body>
        <serv:bodyContent/>
    </serv:body>
</serv:message>

CreateMeeting and SetMeeting security enhancements


This change was made in XML API 40.2.0, but its description has been edited after receiving customer feedback.

As a security enhancement, we updated the CreateMeeting and SetMeeting APIs to not allow users to schedule a meeting start time that has already passed. If they try, the API prompts the error message: "060016 Session start time should be later than current time." If a user needs to schedule an instant meeting, we recommend that the meeting start time be set five minutes later than the current time.

Affected APIs:

  • CreateMeeting

  • SetMeeting

API 40.1.2 Updates

XML API 40.1.2 Updates

Click here to download the XML API 40.1.2 schema.

Scheduling a meeting automatically generates a password if one isn't provided

We enhanced the CreateMeeting, CreateEvent, CreateTrainingSession, and CreateTeleconferenceSession to include a password in the API response's body.

By default, the All meetings/events/session must have a password setting is enabled. In this scenario, if the API request doesn't include a password, a password is automatically generated from the XML API servers.

If the All meetings/events/session must have a password setting is disabled, and the API request doesn't include a password, a password is not generated from the XML API servers.

If the API request includes a password, then the response will include that password, regardless of the All meetings/events/session must have a password setting being enabled or disabled.

Affected APIs:

  • CreateMeeting

  • CreateEvent

  • CreateTrainingSession

  • CreateTeleconferenceSession

The CreateMeeting response now has the meetingPassword element:

CreateMeeting Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>

     <siteName>siteName1</siteName>
     <webExID>userID</webExID>
     <password>*****</password>
     <partnerID>webexpartner</partnerID>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.meeting.CreateMeeting">
    <metaData>
        <confName>Test_Auto_Generated_mtg_pwd</confName>
        <meetingType>3</meetingType>
    </metaData>

<schedule>
  <startDate>10/28/2020 17:35:00</startDate>
</schedule>
</bodyContent>
</body>
</serv:message>

CreateMeeting Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
    <serv:header>
        <serv:response>
            <serv:result>SUCCESS</serv:result>
            <serv:gsbStatus>PRIMARY</serv:gsbStatus>
        </serv:response>
    </serv:header>
    <serv:body>
        <serv:bodyContent xsi:type="meet:createMeetingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <meet:meetingkey>806745263</meet:meetingkey>
            <meet:meetingPassword>UzXJuzUD428</meet:meetingPassword>
            <meet:iCalendarURL>
                <serv:host>https://hmwds6.qa.webex.com/hmwds6/j.php?MTID=md225d5935256319ef21b71dd8ebd0640</serv:host>
                <serv:attendee>https://hmwds6.qa.webex.com/hmwds6/j.php?MTID=m26bf5e25ca587d32302fb29951b92e15</serv:attendee>
            </meet:iCalendarURL>
            <meet:guestToken>cfc7f3246d4862f1bb69b803e8615b7a</meet:guestToken>
        </serv:bodyContent>
    </serv:body>
</serv:message>

The CreateEvent response now has the eventPassword element:

The CreateTrainingSession and CreateTeleconferenceSession responses now have the sessionPassword element:

API 40.1.0 Updates

XML API 40.1.0 Updates

Click here to download the XML API 40.1 schema.

GetSessionInfo enhancements

We've added new elements to the GetSessionInfo API. The API now returns info for mobile devices too.

Affected APIs:

  • GetSessionInfo

GetSessionInfo Request Updates:

Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
    <securityContext>
        <siteName>sqdemo11</siteName>
        <webExID>siteadmin</webExID>
        <password>P@ss1234</password>
    </securityContext>
</header>
<body>
    <bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
        <sessionKey>713707633</sessionKey>
        <pmrUrl>https://go.webex.com/join/dongchen</pmrUrl>
        <sipUrl>dongchen@go.webex.com or 123456789_go@webex.com or 123456789@go.webex.com</sipUrl>
        <meetingLink>https://go.webex.com/go/j.php?MTID=m814c6a483d4b5052d539f88d67acbad6</meetingLink>
        <meetingUuid>34567323456787654323456787654</meetingUuid>
    </bodyContent>
</body>
</serv:message>

LstAccessAnywhereHistory enhancements

We've added a new API, lstAccessAnywhereHistory, to respond with Webex Access Anywhere report info.

Affected APIs:

  • LstAccessAnywhereHistory

LstAccessAnywhereHistory Request Updates:

LstAccessAnywhereHistory Response Updates:

Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>sqdemo6</siteName>
<webExID>test</webExID>
<password>P@ss1234</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.history.LstAccessAnywhereHistory">
<hostWebexID>test1</hostWebexID>
<startTimeScope>
<sessionStartTimeStart>09/29/2019 00:42:34</sessionStartTimeStart>
<sessionStartTimeEnd>12/29/2019 04:42:34</sessionStartTimeEnd>
</startTimeScope>
<endTimeScope>
<sessionEndTimeStart>9/29/2019 02:42:34</sessionEndTimeStart>
<sessionEndTimeEnd>12/29/2019 05:42:34</sessionEndTimeEnd>
</endTimeScope>
<listControl>
<serv:startFrom>1</serv:startFrom>
<serv:maximumNum>10</serv:maximumNum>
<serv:listMethod>OR</serv:listMethod>
</listControl>
<order>
<orderBy>STARTTIME</orderBy>
<orderAD>ASC</orderAD>
</order>
</bodyContent>
</body>
</serv:message>

Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message
    xmlns:serv="http://www.webex.com/schemas/2002/06/service"
    xmlns:com="http://www.webex.com/schemas/2002/06/common"
    xmlns:history="http://www.webex.com/schemas/2002/06/service/history">
    <serv:header>
        <serv:response>
            <serv:result>SUCCESS</serv:result>
            <serv:gsbStatus>PRIMARY</serv:gsbStatus>
        </serv:response>
    </serv:header>
    <serv:body>
        <serv:bodyContent xsi:type="history:LstAccessAnywhereHistoryResponse"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <history:matchingRecords>
                <serv:total>775</serv:total>
                <serv:returned>10</serv:returned>
                <serv:startFrom>1</serv:startFrom>
            </history:matchingRecords>
            <history:accessAnyWhereInfo>
                <history:confID>123456</history:confID>
                <history:userName>dean</history:userName>
                <history:computerName>6926_dean</history:computerName>
                <history:clientIP>10.224.222.183</history:clientIP>
                <history:startTime>11/29/2019 03:05:44</history:startTime>
                <history:endTime>11/29/2019 03:10:06</history:endTime>
                <history:duration>5</history:duration>
            </history:accessAnyWhereInfo>
        </serv:bodyContent>
    </serv:body>
</serv:message>