Zoom Phone Webhooks

The Zoom Phone event catalog, published as an OpenAPI 3.1 document using the top-level webhooks object. It defines 71 real-time events covering call lifecycle (phone.caller_ringing, phone.callee_answered, phone.caller_ended, phone.callee_missed, phone.caller_hold, warm and blind transfers), recordings and transcripts, voicemail, fax, call and fax logs, SMS send and delivery, SMS campaign opt-in/opt-out and etiquette blocking, device registration, emergency alerts, AI call summaries, and account and group setting changes. Delivered to an HTTPS endpoint, with a WebSocket delivery option in public beta.

OpenAPI Specification

zoom-phone-webhooks-openapi.json Raw ↑
{"openapi":"3.1.0","info":{"title":"Phone","description":"The Zoom Phone webhooks allow developers to receive events for [Zoom Phone](https://developers.zoom.us/docs/zoom-phone/) features.","version":"1.0.0"},"webhooks":{"phone.recording_deleted":{"post":{"tags":["phone"],"operationId":"phone.recording_deleted","requestBody":{"description":"# phone.recording_deleted\n\nThe **Call recording has been deleted** event triggers when a recording has been deleted.\n## Prerequisites\n\n* [Zoom Phone Plan](https://zoom.us/phonesystem)\n* **Event subscriptions** must be enabled for your [Marketplace app](https://marketplace.zoom.us/user/build) with the following configurations:\n\t* A valid **Event notification endpoint URL**.\n\t* Your app must either be a user or account level OAuth App or a Webhook Only app. For more information, see [Enable webhooks](https://marketplace.zoom.us/docs/api-reference/webhook-reference#enable-webhooks).\n\t* **Call recording has been deleted** subscription must be enabled under the **Zoom Phone** event.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`,`phone:write:admin`,`phone:read`,`phone:write`,`phone:master`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:call_recording:master`,`phone:read:call_recording`,`phone:read:call_recording:admin`\n\n**Event type**: `phone.recording_deleted`\n","content":{"application/json":{"schema":{"type":"object","required":["event","event_ts","payload"],"properties":{"event":{"type":"string","enum":["phone.recording_deleted"],"description":"The event name."},"event_ts":{"type":"integer","format":"int64","description":"The timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long (int64) format."},"payload":{"type":"object","required":["account_id","object"],"properties":{"account_id":{"type":"string","description":"The ID of the account to which the recording belongs."},"object":{"type":"object","required":["recordings"],"properties":{"recordings":{"type":"array","additionalItems":false,"items":{"type":"object","required":["id","call_id"],"properties":{"id":{"type":"string","description":"The recording ID."},"call_id":{"type":"string","description":"The call ID."}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"examples":{"json-example":{"summary":"JSON example","value":"{\n  \"event\": \"phone.recording_deleted\",\n  \"payload\": {\n    \"account_id\": \"Mt6sv4u0TAyPkwgsL2lxiA\",\n    \"object\": {\n      \"recordings\": [\n        {\n          \"id\": \"9a0887ca-da53-4c62-b32a-563789ef264e\",\n          \"call_id\": \"6954218111457544837\"\n        }\n      ]\n    }\n  },\n  \"event_ts\": 1619155281301\n}"}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["event","event_ts","payload"],"properties":{"event":{"type":"string","enum":["phone.recording_deleted"],"description":"The event name."},"event_ts":{"type":"integer","format":"int64","description":"The timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long (int64) format."},"payload":{"type":"object","required":["account_id","object"],"properties":{"account_id":{"type":"string","description":"The ID of the account to which the recording belongs."},"object":{"type":"object","required":["recordings"],"properties":{"recordings":{"type":"array","additionalItems":false,"items":{"type":"object","required":["id","call_id"],"properties":{"id":{"type":"string","description":"The recording ID."},"call_id":{"type":"string","description":"The call ID."}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"examples":{"json-example":{"summary":"JSON example","value":"{\n  \"event\": \"phone.recording_deleted\",\n  \"payload\": {\n    \"account_id\": \"Mt6sv4u0TAyPkwgsL2lxiA\",\n    \"object\": {\n      \"recordings\": [\n        {\n          \"id\": \"9a0887ca-da53-4c62-b32a-563789ef264e\",\n          \"call_id\": \"6954218111457544837\"\n        }\n      ]\n    }\n  },\n  \"event_ts\": 1619155281301\n}"}}}}}}}},"phone.caller_call_log_completed":{"post":{"tags":["phone"],"operationId":"phone.caller_call_log_completed","requestBody":{"description":"# phone.caller_call_log_completed\n---\nThe **Caller call log is completed** event triggers every time the outgoing call log record for a call is made available for the Caller to view.\n\n## Prerequisites\n* [Zoom Phone Plan](https://zoom.us/phonesystem)\n* **Event Subscriptions** must be enabled for your [Marketplace app](https://marketplace.zoom.us/user/build) with the following configurations:\n\t* A valid **Event Notification Endpoint URL**.\n  * Your app must either be a user or account level OAuth App or a Webhook Only app. For more information, see [Enable webhooks](https://marketplace.zoom.us/docs/api-reference/webhook-reference#enable-webhooks).\n\t* **\"Caller call log is completed\"** subscription must be enabled under the **Zoom Phone** event.\n\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`,`phone:write:admin`,`phone:read`,`phone:write`,`phone:master`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:call_log:master`,`phone:read:call_log`,`phone:read:call_log:admin`\n\n**Event type**: `phone.caller_call_log_completed`\n","content":{"application/json":{"schema":{"type":"object","required":["event","event_ts","payload"],"properties":{"event":{"type":"string","enum":["phone.caller_call_log_completed"],"description":"Event name."},"event_ts":{"type":"integer","format":"int64","description":"Timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long(int64) format."},"payload":{"type":"object","required":["account_id","object"],"properties":{"account_id":{"type":"string","description":"Account ID of the caller."},"object":{"type":"object","required":["call_logs","user_id"],"properties":{"user_id":{"type":"string","description":"User Id of the caller."},"call_logs":{"type":"array","additionalItems":false,"items":{"type":"object","required":["id","call_type","caller_number","caller_number_type","callee_number","callee_number_type","result","has_voicemail","call_id","date_time","path"],"properties":{"id":{"type":"string","description":"Unique Identifier of the call log."},"caller_number":{"type":"string","description":"Phone number of the caller."},"caller_number_type":{"type":"integer","enum":[1,2],"description":"Phone number type of the caller. The value can be one of the following:\n* 1 - extension number.\n* 2 - phone number."},"caller_number_source":{"type":"string","enum":["internal","external","byop"],"description":"Phone number source of the caller. The value can be one of the following:\n* internal - ZP native.\n* external — BYOC or Provider Exchange.\n* byop — Premise peering.\nNot available when caller_number_type = 1."},"caller_name":{"type":"string","description":"Name of the caller."},"caller_location":{"type":"string","description":"Location of the caller."},"caller_did_number":{"type":"string","description":"Caller's DID number."},"caller_country_code":{"type":"string","description":"Caller's country code."},"caller_country_iso_code":{"type":"string","description":"ISO alpha2 country code."},"callee_number":{"type":"string","description":"Phone number of the callee."},"callee_number_type":{"type":"integer","enum":[1,2,3],"description":"The callee's phone number type:\n* 1 — extension number.\n* 2 — phone number.\n* 3 — Customized emergency number."},"callee_number_source":{"type":"string","enum":["internal","external","byop"],"description":"Phone number source of the caller. The value can be one of the following:\n* internal - ZP native.\n* external — BYOC or Provider Exchange.\n* byop — Premise peering.\nNot available when callee_number_type = 1."},"callee_name":{"type":"string","description":"Name of the callee."},"callee_location":{"type":"string","description":"Location of the callee."},"callee_did_number":{"type":"string","description":"Callee's DID number."},"callee_country_code":{"type":"string","description":"Callee's country code."},"callee_country_iso_code":{"type":"string","description":"ISO alpha2 country code."},"duration":{"type":"integer","description":"Duration of the call."},"result":{"type":"string","description":"Status of the call."},"date_time":{"type":"string","format":"date-time","description":"Start date and time of the call."},"path":{"type":"string","description":"Path of the call log."},"site":{"type":"object","properties":{"id":{"type":"string","description":"The phone number's assigned target [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites). Sites allow you to organize the phone users in your organization. For example, sites created and based on different office locations."}}},"has_recording":{"type":"boolean","description":"Indicates whether the call log includes recording or not."},"recording_id":{"type":"string","description":"ID of this recording."},"recording_type":{"type":"string","description":"Recording type of the call. This value field can be OnDemand or Automatic."},"has_voicemail":{"type":"boolean","description":"Indicates whether the call log includes voicemail or not."},"call_id":{"type":"string","description":"Unique identifier of the call."},"client_code":{"type":"string","description":"Client code."},"call_type":{"type":"string","description":"The type of call:\n* voip (Voice over IP)\n* pstn (Public Switched Telephone Network)\n* tollfree\n* international\n* contactCenter","enum":["voip","pstn","tollfree","international","contactCenter"]},"call_end_time":{"type":"string","format":"date-time","description":"End time of the call."},"direction":{"type":"string","enum":["inbound","outbound"],"description":"Direction of the call. The value of this field can either be inbound or outbound."},"forwarded_to":{"description":"Indicates who the call was forwarded to.","properties":{"extension_number":{"type":"string"},"extension_type":{"enum":["user","callQueue","autoReceptionist","sharedLineGroup","pstn"],"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"number_type":{"description":"Phone number types: 1 - Extension 2- E164 number 3 - Custom number.","type":"integer"},"phone_number":{"type":"string"}},"type":"object"},"forwarded_by":{"description":"Indicates where the call was forwarded from.","properties":{"extension_number":{"type":"string"},"extension_type":{"enum":["user","callQueue","autoReceptionist","sharedLineGroup"],"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"number_type":{"description":"Phone number types: 1 - Extension 2- E164 number 3 - Custom number.","type":"integer"},"phone_number":{"type":"string"}},"type":"object"},"hold_time":{"description":"Hold time during a call in seconds.","type":"integer"},"department":{"description":"Department name.","type":"string"},"cost_center":{"description":"Cost center name.","type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"examples":{"json-example":{"summary":"JSON example","value":"{\n  \"event\": \"phone.caller_call_log_completed\",\n  \"payload\": {\n    \"account_id\": \"TQTvjT52Tmi_wrhASNNOEw\",\n    \"object\": {\n      \"call_logs\": [\n        {\n          \"id\": \"4a4ed8ec-6be4-4e42-96e6-352a4396204d\",\n          \"call_type\": \"voip\",\n          \"caller_number\": \"1045\",\n          \"caller_number_type\": 1,\n          \"caller_name\": \"usersubsetting0001@testapi.com\",\n          \"callee_number\": \"1026\",\n          \"callee_number_type\": 1,\n          \"callee_name\": \"ZOOM_API Test\",\n          \"caller_did_number\" : \"+12055967465\",\n          \"caller_country_code\" : \"1\",\n          \"caller_country_iso_code\" : \"US\",\n          \"callee_did_number\" : \"+15104381494\",\n          \"callee_country_code\" : \"1\",\n          \"callee_country_iso_code\" : \"US\",\n          \"direction\": \"inbound\",\n          \"duration\": 0,\n          \"result\": \"outbound\",\n          \"date_time\": \"2021-06-09T05:55:07Z\",\n          \"path\": \"extension\",\n          \"has_recording\": false,\n          \"has_voicemail\": false,\n          \"call_id\": \"6971668473388011511\",\n          \"client_code\" : \"741\",\n          \"call_end_time\": \"2021-06-09T05:55:12Z\",\n          \"forwarded_by\" : {\n            \"extension_number\" : \"820004\",\n            \"name\" : \"SLG Test\",\n            \"extension_type\" : \"sharedLineGroup\"\n          }\n        }\n      ],\n      \"user_id\": \"IqoQmDRqS-aIoXqV_FZ88w\"\n    }\n  },\n  \"event_ts\": 1623218132807\n}"}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["event","event_ts","payload"],"properties":{"event":{"type":"string","enum":["phone.caller_call_log_completed"],"description":"Event name."},"event_ts":{"type":"integer","format":"int64","description":"Timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long(int64) format."},"payload":{"type":"object","required":["account_id","object"],"properties":{"account_id":{"type":"string","description":"Account ID of the caller."},"object":{"type":"object","required":["call_logs","user_id"],"properties":{"user_id":{"type":"string","description":"User Id of the caller."},"call_logs":{"type":"array","additionalItems":false,"items":{"type":"object","required":["id","call_type","caller_number","caller_number_type","callee_number","callee_number_type","result","has_voicemail","call_id","date_time","path"],"properties":{"id":{"type":"string","description":"Unique Identifier of the call log."},"caller_number":{"type":"string","description":"Phone number of the caller."},"caller_number_type":{"type":"integer","enum":[1,2],"description":"Phone number type of the caller. The value can be one of the following:\n* 1 - extension number.\n* 2 - phone number."},"caller_number_source":{"type":"string","enum":["internal","external","byop"],"description":"Phone number source of the caller. The value can be one of the following:\n* internal - ZP native.\n* external — BYOC or Provider Exchange.\n* byop — Premise peering.\nNot available when caller_number_type = 1."},"caller_name":{"type":"string","description":"Name of the caller."},"caller_location":{"type":"string","description":"Location of the caller."},"caller_did_number":{"type":"string","description":"Caller's DID number."},"caller_country_code":{"type":"string","description":"Caller's country code."},"caller_country_iso_code":{"type":"string","description":"ISO alpha2 country code."},"callee_number":{"type":"string","description":"Phone number of the callee."},"callee_number_type":{"type":"integer","enum":[1,2,3],"description":"The callee's phone number type:\n* 1 — extension number.\n* 2 — phone number.\n* 3 — Customized emergency number."},"callee_number_source":{"type":"string","enum":["internal","external","byop"],"description":"Phone number source of the caller. The value can be one of the following:\n* internal - ZP native.\n* external — BYOC or Provider Exchange.\n* byop — Premise peering.\nNot available when callee_number_type = 1."},"callee_name":{"type":"string","description":"Name of the callee."},"callee_location":{"type":"string","description":"Location of the callee."},"callee_did_number":{"type":"string","description":"Callee's DID number."},"callee_country_code":{"type":"string","description":"Callee's country code."},"callee_country_iso_code":{"type":"string","description":"ISO alpha2 country code."},"duration":{"type":"integer","description":"Duration of the call."},"result":{"type":"string","description":"Status of the call."},"date_time":{"type":"string","format":"date-time","description":"Start date and time of the call."},"path":{"type":"string","description":"Path of the call log."},"site":{"type":"object","properties":{"id":{"type":"string","description":"The phone number's assigned target [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites). Sites allow you to organize the phone users in your organization. For example, sites created and based on different office locations."}}},"has_recording":{"type":"boolean","description":"Indicates whether the call log includes recording or not."},"recording_id":{"type":"string","description":"ID of this recording."},"recording_type":{"type":"string","description":"Recording type of the call. This value field can be OnDemand or Automatic."},"has_voicemail":{"type":"boolean","description":"Indicates whether the call log includes voicemail or not."},"call_id":{"type":"string","description":"Unique identifier of the call."},"client_code":{"type":"string","description":"Client code."},"call_type":{"type":"string","description":"The type of call:\n* voip (Voice over IP)\n* pstn (Public Switched Telephone Network)\n* tollfree\n* international\n* contactCenter","enum":["voip","pstn","tollfree","international","contactCenter"]},"call_end_time":{"type":"string","format":"date-time","description":"End time of the call."},"direction":{"type":"string","enum":["inbound","outbound"],"description":"Direction of the call. The value of this field can either be inbound or outbound."},"forwarded_to":{"description":"Indicates who the call was forwarded to.","properties":{"extension_number":{"type":"string"},"extension_type":{"enum":["user","callQueue","autoReceptionist","sharedLineGroup","pstn"],"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"number_type":{"description":"Phone number types: 1 - Extension 2- E164 number 3 - Custom number.","type":"integer"},"phone_number":{"type":"string"}},"type":"object"},"forwarded_by":{"description":"Indicates where the call was forwarded from.","properties":{"extension_number":{"type":"string"},"extension_type":{"enum":["user","callQueue","autoReceptionist","sharedLineGroup"],"type":"string"},"location":{"type":"string"},"name":{"type":"string"},"number_type":{"description":"Phone number types: 1 - Extension 2- E164 number 3 - Custom number.","type":"integer"},"phone_number":{"type":"string"}},"type":"object"},"hold_time":{"description":"Hold time during a call in seconds.","type":"integer"},"department":{"description":"Department name.","type":"string"},"cost_center":{"description":"Cost center name.","type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"examples":{"json-example":{"summary":"JSON example","value":"{\n  \"event\": \"phone.caller_call_log_completed\",\n  \"payload\": {\n    \"account_id\": \"TQTvjT52Tmi_wrhASNNOEw\",\n    \"object\": {\n      \"call_logs\": [\n        {\n          \"id\": \"4a4ed8ec-6be4-4e42-96e6-352a4396204d\",\n          \"call_type\": \"voip\",\n          \"caller_number\": \"1045\",\n          \"caller_number_type\": 1,\n          \"caller_name\": \"usersubsetting0001@testapi.com\",\n          \"callee_number\": \"1026\",\n          \"callee_number_type\": 1,\n          \"callee_name\": \"ZOOM_API Test\",\n          \"caller_did_number\" : \"+12055967465\",\n          \"caller_country_code\" : \"1\",\n          \"caller_country_iso_code\" : \"US\",\n          \"callee_did_number\" : \"+15104381494\",\n          \"callee_country_code\" : \"1\",\n          \"callee_country_iso_code\" : \"US\",\n          \"direction\": \"inbound\",\n          \"duration\": 0,\n          \"result\": \"outbound\",\n          \"date_time\": \"2021-06-09T05:55:07Z\",\n          \"path\": \"extension\",\n          \"has_recording\": false,\n          \"has_voicemail\": false,\n          \"call_id\": \"6971668473388011511\",\n          \"client_code\" : \"741\",\n          \"call_end_time\": \"2021-06-09T05:55:12Z\",\n          \"forwarded_by\" : {\n            \"extension_number\" : \"820004\",\n            \"name\" : \"SLG Test\",\n            \"extension_type\" : \"sharedLineGroup\"\n          }\n        }\n      ],\n      \"user_id\": \"IqoQmDRqS-aIoXqV_FZ88w\"\n    }\n  },\n  \"event_ts\": 1623218132807\n}"}}}}}}}},"phone.recording_completed_for_access_member":{"post":{"tags":["phone"],"operationId":"phone.recording_completed_for_access_member","requestBody":{"description":"# phone.recording_completed_for_access_member\n---\n\nThe **Call recording is completed for access member** event triggers when a recording of a Zoom phone call completes. The access members of the recording owner will receive this event.\n\n## Prerequisites\n* [Zoom Phone Plan](https://zoom.us/phonesystem)\n* **Event subscriptions** must be enabled for your [Marketplace app](https://marketplace.zoom.us/user/build) with the following configurations:\n\t* A valid **Event notification endpoint URL**.\n\t* Your app must either be a user or account level OAuth App or a Webhook Only app. For more information, see [Enable webhooks](https://marketplace.zoom.us/docs/api-reference/webhook-reference#enable-webhooks).\n\t* **Call recording is completed for access member** subscription must be enabled under the **Zoom Phone** event.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:admin`,`phone:write:admin`,`phone:read`,`phone:write`,`phone:master`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `phone:read:call_recording:master`,`phone:read:call_recording`,`phone:read:call_recording:admin`\n\n**Event type**: `phone.recording_completed_for_access_member`\n","content":{"application/json":{"schema":{"type":"object","required":["event","event_ts","payload"],"properties":{"event":{"type":"string","enum":["phone.recording_completed_for_access_member"],"description":"Event name."},"event_ts":{"type":"integer","format":"int64","description":"The timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long(int64) format."},"payload":{"type":"object","required":["account_id","object"],"properties":{"account_id":{"type":"string","description":"The account ID of the user who recorded the call."},"object":{"type":"object","required":["recordings"],"properties":{"recordings":{"type":"array","additionalItems":false,"items":{"type":"object","required":["id","caller_number","caller_number_type","callee_number","callee_number_type","callee_name","direction","duration","download_url","date_time"],"properties":{"id":{"type":"string","description":"The recording ID is the unique Identifier of the call recording."},"caller_account_code":{"type":"string","description":"The caller's account code. To dial between accounts, use the format: [Account code] - [extension number]."},"caller_number":{"type":"string","description":"The phone number of the caller."},"caller_number_type":{"type":"integer","enum":[1,2],"description":"The phone number type of the caller. The value can be one of the following:\n* 1 - internal \n* 2 - external"},"caller_name":{"type":"string","description":"The name of the caller."},"caller_did_number":{"type":"string","description":"The caller's DID number."},"callee_account_code":{"type":"string","description":"The callee's account code. To dial between accounts, use the format: [Account code] - [extension number]."},"callee_number":{"type":"string","description":"The phone number of the callee."},"callee_number_type":{"type":"integer","enum":[1,2],"description":"The phone number type of the callee. The value can be one of the following:\n* 1 - internal \n* 2 - external"},"callee_name":{"type":"string","description":"The name of the callee."},"callee_did_number":{"type":"string","description":"The callee's DID number."},"duration":{"type":"integer","description":"The duration of the call in seconds."},"download_url":{"type":"string","description":"The URL to download the call recording.\n\nTo download the recording via this URL, you must add an “access_token” query parameter to the download URL and provide either the user's OAuth access token or your app's **JWT** as the value of the “access_token” parameter.\n\nFor example, if the value of this field is \"https://zoom.us/v2/phone/recording/download/abcD666T”, the complete URL path to download the recording will be as below:\n\nhttps://zoom.us/v2/phone/recording/download/abcD666T?access_token={YOUR_ACCESS_TOKEN_HERE}"},"date_time":{"type":"string","format":"date-time","description":"The start date and time of the call."},"user_id":{"type":"string","description":"The unique identifier of the user."},"call_id":{"type":"string","description":"The unique identifier of the call."},"call_log_id":{"type":"string","description":"The call log id."},"call_history_id":{"type":"string","deprecated":true,"description":"The call history id."},"call_element_id":{"type":"string","description":"The call element id."},"end_time":{"type":"string","description":"The recording's end time.","format":"date-time"},"recording_type":{"type":"string","description":"The recording type of the call. This value field can be OnDemand or Automatic."},"site":{"type":"object","description":"The site of the call.","properties":{"id":{"type":"string","description":"The site ID of the call."}},"additionalProperties":false},"owner":{"type":"object","description":"The owner of the call.","required":["type","id","name"],"properties":{"type":{"type":"string","description":"The owner type. This value field can be user or callQueue."},"id":{"type":"string","description":"The owner ID."},"name":{"type":"string","description":"The owner name."},"extension_number":{"description":"The extension number of the owner","type":"integer"},"has_access_permission":{"type":"boolean","description":"Whether the owner has the access permission to this recording."}},"additionalProperties":false},"direction":{"type":"string","enum":["inbound","outbound"],"description":"The direction of the call. The value of this field can either be inbound or outbound."},"outgoing_by":{"description":"The call-initiating user. The current recording must belong to the initiator and call queue for it to be available.","properties":{"name":{"description":"The user name.","type":"string"},"extension_number":{"description":"The user's extension number.","type":"string"}},"type":"object"},"accepted_by":{"description":"The call-receiving user. The current recording must belong to the receiver and call queue for it to be available.","properties":{"name":{"description":"User name","type":"string"},"extension_number":{"description":"The user extension number.","type":"string"}},"type":"object"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"examples":{"json-example":{"summary":"JSON example","value":"{\n  \"event\": \"phone.recording_completed_for_access_member\",\n  \"event_ts\": 1626230691572,\n  \"payload\": {\n    \"account_id\": \"AAAAAABBBB\",\n    \"object\": {\n      \"recordings\": [\n        {\n          \"id\": \"abcD3ojfdbjfg\",\n          \"user_id\": \"w0RChiauQeqRlv5fgxYULQ\",\n          \"caller_number\": \"1026\",\n          \"caller_number_type\": 1,\n          \"caller_name\": \"Caller Name\",\n          \"caller_did_number\": \"+12055967465\",\n          \"callee_number\": \"1045\",\n          \"callee_number_type\": 1,\n          \"callee_name\": \"Callee Name\",\n          \"callee_did_number\": \"+15104381494\",\n          \"duration\": 43,\n          \"download_url\": \"https://some.url.com\",\n          \"direction\": \"outbound\",\n          \"date_time\": \"2021-06-09T06:09:24Z\",\n          \"recording_type\": \"OnDemand\",\n          \"call_id\": \"6971672158469969953\",\n          \"call_log_id\": \"a297ae04-a875-4cfd-85ab-4adcead91edb\",\n          \"call_history_id\": \"20210609-a297ae04-a875-4cfd-85ab-4adcead91edb\",\n          \"call_element_id\": \"20210609-a297ae04-a875-4cfd-85ab-4adcead91edb\",\n          \"end_time\": \"2021-06-09T06:10:07Z\",\n          \"site\": {\n            \"id\": \"qORJkxNDTA25_VfJ3GK9KA\"\n          },\n          \"owner\": {\n            \"type\": \"user\",\n            \"id\": \"z8yCxjabcdEFGHfp8uQ\",\n            \"name\": \"usersubsetting0001\",\n            \"extension_number\": 6666,\n            \"has_access_permission\": true\n          }\n        }\n      ]\n    }\n  }\n}"}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["event","event_ts","payload"],"properties":{"event":{"type":"string","enum":["phone.recording_completed_for_access_member"],"description":"Event name."},"event_ts":{"type":"integer","format":"int64","description":"The timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long(int64) format."},"payload":{"type":"object","required":["account_id","object"],"properties":{"account_id":{"type":"string","description":"The account ID of the user who recorded the call."},"object":{"type":"object","required":["recordings"],"properties":{"recordings":{"type":"array","additionalItems":false,"items":{"type":"object","required":["id","caller_number","caller_number_type","callee_number","callee_number_type","callee_name","direction","duration","download_url","date_time"],"properties":{"id":{"type":"string","description":"The recording ID is the unique Identifier of the call recording."},"caller_account_code":{"type":"string","description":"The caller's account code. To dial between accounts, use the format: [Account code] - [extension number]."},"caller_number":{"type":"string","description":"The phone number of the caller."},"caller_number_type":{"type":"integer","enum":[1,2],"description":"The phone number type of the caller. The value can be one of the following:\n* 1 - internal \n* 2 - external"},"caller_name":{"type":"string","description":"The name of the caller."},"caller_did_number":{"type":"string","description":"The caller's DID number."},"callee_account_code":{"type":"string","description":"The callee's account code. To dial between accounts, use the format: [Account code] - [extension number]."},"callee_number":{"type":"string","description":"The phone number of the callee."},"callee_number_type":{"type":"integer","enum":[1,2],"description":"The phone number type of the callee. The value can be one of the following:\n* 1 - internal \n* 2 - external"},"callee_name":{"type":"string","description":"The name of the callee."},"callee_did_number":{"type":"string","description":"The callee's DID number."},"duration":{"type":"integer","description":"The duration of the call in seconds."},"download_url":{"type":"string","description":"The URL to download the call recording.\n\nTo download the recording via this URL, you must add an “access_token” query parameter to the download URL and provide either the user's OAuth access token or your app's **JWT** as the value of the “access_token” parameter.\n\nFor example, if the value of this field is \"https://zoom.us/v2/phone/recording/download/abcD666T”, the complete URL path to download the recording will be as below:\n\nhttps://zoom.us/v2/phone/recording/download/abcD666T?access_token={YOUR_ACCESS_TOKEN_HERE}"},"date_time":{"type":"string","format":"date-time","description":"The start date and time of the call."},"user_id":{"type":"string","description":"The unique identifier of the user."},"call_id":{"type":"string","description":"The unique identifier of the call."},"call_log_id":{"type":"string","description":"The call log id."},"call_history_id":{"type":"string","deprecated":true,"description":"The call history id."},"call_element_id":{"type":"string","description":"The call element id."},"end_time":{"type":"string","description":"The recording's end time.","format":"date-time"},"recording_type":{"type":"string","description":"The recording type of the call. This value field can be OnDemand or Automatic."},"site":{"type":"object","description":"The site of the call.","properties":{"id":{"type":"string","description":"The site ID of the call."}},"additionalProperties":false},"owner":{"type":"object","description":"The owner of the call.","required":["type","id","name"],"properties":{"type":{"type":"string","description":"The owner type. This value field can be user or callQueue."},"id":{"type":"string","descr

# --- truncated at 32 KB (906 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoom-phone/refs/heads/main/openapi/zoom-phone-webhooks-openapi.json