Zoom Workplace data API: billing, profile, meetings
Zoom Workplace (package us.zoom.videomeetings, version 7.1.8.42948) exposes a signed-in, first-party data API to its hybrid web views. In-app Workplace Pro billing loads an upgrade view at /v1/commerce/upgrade and a plan-manage view at /v1/commerce/subscription with a zak header; smart-recognition enrollment uses /v1/profile/recognition; the profile tab opens /v1/account/settings.
The response model keeps descriptive field names: billing (obfuscatedAccountId, purchaseToken, categoryCode), profile (email, peer_jid, pmn), meetings (joinMeetingUrl, meetingNumber) and contacts (jids, screenName). The paths on this page are an illustrative, generalized map of that surface.
Zoom Workplace (package us.zoom.videomeetings, versionName 7.1.8.42948) is Zoom's Android client for meetings, Team Chat, Phone, docs and in-app Workplace Pro billing. Its data API is a set of signed-in first-party HTTPS surfaces: an in-app purchase view and a plan-management view for Workplace Pro subscriptions, a smart-recognition enrollment page, the account profile settings page, and meeting/contact lookups. Hybrid web views authenticate with a zak (Zoom Access Key) header plus clientVersion, deviceOs, deviceType and globalLang, and the wire model keeps names such as obfuscatedAccountId, purchaseToken, joinMeetingUrl, peer_jid and email. The endpoints shown here are an illustrative, generalized map of that surface.
Screenshots
API surface
Load in-app billing purchase H5
GET
/v1/commerce/upgradeopenfinanceOpens the in-app Workplace Pro purchase webview and hydrates the store SKUs (available plans, access key, obfuscated account id).
Auth: zak request header (Zoom Access Key from the app's access-key service); also clientVersion, deviceOs=android, deviceType=phone|tablet, globalLang, timezone.
- isInAppBillingAvailable
- isInAppSubscriptionPurchased
- obfuscatedAccountId
- zak
- countryCode
- purchaseH5URL
- planManageURL
- isIapToWebAvailable
- hasUserTriedGoogleFreeTrial
- shouldCheckBannerEligibility
- subscriptionId
- subscriptionName
- categoryCode
- billingCycle
- itm_content
- itm_source
- itm_platform
- itm_medium
- itm_from
- itm_target_product
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/commerce/upgrade?itm_content=freeupgrade&itm_source=banner&itm_platform=mobile_app&itm_medium=ecomm&itm_from=home&itm_target_product=zoom_workplace_pro HTTP/1.1 zak: <zoom-access-key> clientVersion: 7.1.8.42948 deviceOs: android deviceType: phone globalLang: en-US timezone: America/Los_Angeles{ "isInAppBillingAvailable": true, "isInAppSubscriptionPurchased": false, "obfuscatedAccountId": "zoom-obf-acct-01", "zak": "<zoom-access-key>", "countryCode": "US", "purchaseH5URL": "/v1/commerce/upgrade", "planManageURL": "/v1/commerce/subscription", "isIapToWebAvailable": true, "hasUserTriedGoogleFreeTrial": false, "shouldCheckBannerEligibility": true, "availableSubscription": [ { "subscriptionId": "zoom_workplace_pro_monthly", "subscriptionName": "Workplace Pro", "categoryCode": "PRO", "billingCycle": 1 } ], "purchasedAccountSubscription": [] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's in-app upgrade purchase flow.Mirrors the subscription plan model exposed to the purchase webview.
Load in-app plan manage H5
GET
/v1/commerce/subscriptionopenfinanceServes the already-subscribed plan-manage webview and the plan-info payload (current subscription, store plan list, purchase token).
Auth: zak request header (Zoom Access Key); clientVersion / deviceOs / deviceType hybrid headers.
- currency
- zak
- isIapToWebAvailable
- categoryCode
- productId
- renewDate
- subscriptionStatus
- planList
- price
- billingCycle
- freetrialDays
- subscriptionId
- subscriptionName
- purchaseToken
- expireDate
- freeTrialStatus
- originalPurchaseDate
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/commerce/subscription HTTP/1.1 zak: <zoom-access-key> clientVersion: 7.1.8.42948 deviceOs: android deviceType: phone{ "currency": "USD", "zak": "<zoom-access-key>", "isIapToWebAvailable": true, "subscription": { "categoryCode": "PRO", "productId": "zoom_workplace_pro_monthly", "renewDate": "Oct 1, 2026", "subscriptionStatus": 0 }, "planList": [ { "categoryCode": "PRO", "productId": "zoom_workplace_pro_monthly", "price": 14.99, "billingCycle": 1, "freetrialDays": 0 }, { "categoryCode": "ZONEPROPZVU", "productId": "zoom_workplace_pro_plus_yearly", "price": 149.9, "billingCycle": 12, "freetrialDays": 14 } ], "purchasedAccountSubscription": { "subscriptionId": "zoom_workplace_pro_monthly", "subscriptionName": "Workplace Pro", "categoryCode": "PRO", "subscriptionStatus": 0, "purchaseToken": "<play-purchase-token>", "expireDate": 1790812800000, "billingCycle": 1, "freeTrialStatus": 0, "originalPurchaseDate": 1759276800000 } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's subscription management screen.Mirrors the plan-info payload handed to the plan webview.
Smart recognition enrollment page
GET
/v1/profile/recognitionosintLoads the settings webview that enrolls or updates the user's smart video/voice recognition profile (action=enroll|update); the in-page bridge returns action_completed or to_upload_profile_picture.
Auth: zak cookie and header (Zoom Access Key); language cookie; hybrid headers clientVersion, deviceOs, deviceType, globalLang, timezone.
- from
- action
- functionName
- params
- userMeetIdealConditions
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/profile/recognition?from=mobile&action=enroll HTTP/1.1 zak: <zoom-access-key> clientVersion: 7.1.8.42948 deviceOs: android deviceType: phone globalLang: en-US Cookie: zak=<zoom-access-key>; _zm_lang=en-US{ "functionName": "action_completed", "params": { "action": "enroll", "userMeetIdealConditions": true } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's smart-recognition enrollment screen.
Account profile settings
GET
/v1/account/settingsosintOpens the signed-in account profile/settings page (name, email, phone, personal meeting number, manager).
Auth: Signed-in web session / zak (Zoom Access Key) on the first-party web host.
- req_id
- result
- peer_jid
- name
- phone
- country_code
- purl
- pmn
- manager_jid
- manager_name
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/account/settings HTTP/1.1 zak: <zoom-access-key>{ "req_id": "req-profile-01", "result": 0, "peer_jid": "[email protected]", "name": "Alex Rivera", "email": "[email protected]", "phone": "+15555550100", "country_code": "US", "purl": "/u/abCDeF", "pmn": 12345678901, "manager_jid": "[email protected]", "manager_name": "Sam Lee" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's account profile tab.
List upcoming meetings
GET
/v1/meetings/{meetingNumber}opendataJoin URL and scheduled-meeting record for the user's upcoming meetings; powers the meetings list and the scheduler.
Auth: Signed-in meeting session; meeting join uses a meetingToken / join URL from the meeting record.
- id
- topic
- meetingNumber
- password
- startTime
- duration
- timeZoneId
- joinMeetingUrl
- joinMeetingUrlForInvite
- meetingHostID
- meetingHostName
- meetingStatus
- isWebinar
- isEnableWaitingRoom
- isEnableAutoRecordingCloud
- canJoinBeforeHost
- meetingToken
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/meetings/12345678901 HTTP/1.1{ "id": "mtg-8f3c1d2e", "topic": "Weekly standup", "meetingNumber": 12345678901, "password": "a1b2c3", "startTime": 1759276800000, "duration": 40, "timeZoneId": "America/Los_Angeles", "joinMeetingUrl": "/v1/meetings/12345678901", "joinMeetingUrlForInvite": "/v1/meetings/12345678901?pwd=a1b2c3", "meetingHostID": "host-uuid-01", "meetingHostName": "Alex Rivera", "meetingStatus": 0, "isWebinar": false, "isEnableWaitingRoom": true, "isEnableAutoRecordingCloud": false, "canJoinBeforeHost": false, "meetingToken": "<join-token>" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's upcoming-meetings list and scheduler.
Directory buddy / contact card
GET
/v1/directory/contacts/{jid}osintHydrates a Team Chat / contacts-tab person (chat address, screen name, email, phone numbers, desktop/mobile presence).
Auth: Signed-in chat/session; the contact route is treated as private.
- jids
- screenName
- phoneNumber
- sipPhoneNumber
- isBuddy
- isDesktopOnLine
- isMobileOnLine
- isZoomRoom
- isPZROnLine
- accountStatus
- contactType
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/directory/contacts/[email protected] HTTP/1.1 zak: <zoom-access-key>{ "jids": ["[email protected]"], "screenName": ["Alex Rivera"], "email": ["[email protected]"], "phoneNumber": ["+15555550100"], "sipPhoneNumber": ["+15555550199"], "isBuddy": [true], "isDesktopOnLine": [true], "isMobileOnLine": [false], "isZoomRoom": [false], "isPZROnLine": [false], "accountStatus": [0], "contactType": [1] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's contacts tab and chat directory.
Data categories
- subscriptions
- billing
- user-profile
- smart-recognition
- meetings
- contacts
Where teams use this data
Subscription lifecycle sync
Billing stacks mirror the plan list, renewal dates and subscription status out of the app's own plan-management surface, so seat counts and renewals reconcile with procurement.
Meeting schedule automation
Calendar and CRM assistants pull upcoming meetings — topic, start time, join URL, host — to pre-populate invites, prep notes and join reminders.
Directory presence enrichment
Internal tools hydrate contact cards with presence (desktop/mobile online), SIP phone and buddy status, powering smarter call routing and org charts.
Frequently asked questions
What data API does the Zoom Workplace Android app use?
Most meeting and contact traffic runs over Zoom's real-time session layer, but the app also opens a set of signed-in first-party HTTPS surfaces: an upgrade view and a plan-manage view for Workplace Pro billing, a smart-recognition enrollment page, and the account profile settings page. The endpoints shown here are an illustrative, generalized map of that surface rather than live captures.
How is the Zoom Workplace API authenticated?
Hybrid web views send a zak (Zoom Access Key) header and cookie, plus clientVersion, deviceOs=android, deviceType=phone|tablet, globalLang and timezone. Subscription purchases additionally go through the Google Play billing flow keyed by an obfuscated account id.
Which subscription fields does in-app billing expose?
The billing model carries obfuscatedAccountId, zak, countryCode, purchase and plan-manage URLs, an availableSubscription list (subscriptionId, categoryCode, billingCycle) and a purchasedAccountSubscription record (purchaseToken, expireDate, subscriptionStatus, freeTrialStatus). The purchase webview then receives a plan-info payload with currency, productId, price and freetrialDays.
Does the app expose meeting and contact records?
Yes. The meetings list fills a scheduled-meeting record (meetingNumber, topic, join URL, meetingHostID, password, waiting-room and auto-recording flags), and contacts hydrate from a directory record (chat address, screenName, email, phone and SIP numbers, desktop/mobile presence).
Topics
- Zoom Workplace API
- Zoom in-app billing API
- zak Zoom Access Key
- Workplace Pro subscription fields
- Zoom smart recognition enrollment
- Zoom meetings join API
- Zoom contacts presence fields
- Zoom profile settings API
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.