---
title: "Update User Presence Status"
method: PUT
path: "/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence"
tags: ["Presence"]
---

# Update User Presence Status

`PUT /restapi/v1.0/account/{accountId}/extension/{extensionId}/presence`

## Request

- Base URL: `https://platform.ringcentral.com`
- URL: `https://platform.ringcentral.com/restapi/v1.0/account/{accountId}/extension/{extensionId}/presence`
- Auth: OAuth 2
  - Authorization code: `https://platform.ringcentral.com/restapi/oauth/authorize`
  - Token URL: `https://platform.ringcentral.com/restapi/oauth/token`
- TypeScript: <https://skmtc.dev/ringcentral/apis/ringcentral-api/docs/restapi/v1.0/account/:accountId/extension/:extensionId/presence/put.ts> (a function with typed inputs; its response is checked against the schema)

Updates user-defined extension presence status, status message and DnD status by extension ID. Supported for regular User extensions only. The extension types listed do not support presence status: Department, Announcement Only, Take Messages Only (Voicemail), Fax User, Paging Only Group, Shared Lines Group, IVR Menu, Application Extension.

## Path parameters

- `accountId` string, required
- `extensionId` string, required

## Request body

- PresenceInfoRequest
  - `userStatus` 'Offline' | 'Busy' | 'Available'
  - `dndStatus` 'TakeAllCalls' | 'DoNotAcceptDepartmentCalls' | 'TakeDepartmentCallsOnly' | 'DoNotAcceptAnyCalls' | 'Unknown'
  - `message` string
  - `allowSeeMyPresence` boolean
  - `ringOnMonitoredCall` boolean
  - `pickUpCallsOnHold` boolean
  - `callerIdVisibility` 'All' | 'None' | 'PermittedUsers': Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers

## Response `200`

OK

- PresenceInfoResponse
  - `uri` string, uri: Link to the presence resource
  - `userStatus` 'Offline' | 'Busy' | 'Available'
  - `dndStatus` 'TakeAllCalls' | 'DoNotAcceptDepartmentCalls' | 'TakeDepartmentCallsOnly' | 'DoNotAcceptAnyCalls' | 'Unknown'
  - `message` string
  - `allowSeeMyPresence` boolean
  - `callerIdVisibility` 'All' | 'None' | 'PermittedUsers': Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, the following visibility options are supported via this parameter - All, None, PermittedUsers
  - `ringOnMonitoredCall` boolean
  - `pickUpCallsOnHold` boolean
  - `activeCalls` ActiveCallInfo[]
    - `id` string
    - `direction` 'Inbound' | 'Outbound'
    - `queueCall` boolean: Identifies if a call belongs to the call queue
    - `from` string: Phone number or extension number of a caller. For GCM transport type '_from' property should be used
    - `fromName` string: Name of a caller
    - `to` string: Phone number or extension number of a callee
    - `toName` string: Name of a callee
    - `startTime` string, date-time: Time when the call is actually started
    - `telephonyStatus` 'NoCall' | 'CallConnected' | 'Ringing' | 'OnHold' | 'ParkedCall': Telephony presence status
    - `sipData` DetailedCallInfo
      - `callId` string
      - `toTag` string
      - `fromTag` string
      - `remoteUri` string, uri
      - `localUri` string, uri
      - `rcSessionId` string
    - `sessionId` string
    - `telephonySessionId` string: Telephony identifier of a call session
    - `onBehalfOf` string: Extension ID of the call owner on whose behalf a call is performed
    - `partyId` string: Internal identifier of a call party
    - `terminationType` string
    - `callInfo` CallInfoCQ: Primary/additional CQ information
      - `primary` PrimaryCQInfo: Primary call session information. Supported for Call Queues only
        - `type` 'PhoneNumberLabel' | 'PhoneNumber' | 'QueueExtension' | 'QueueName' | 'CallerIdName' | 'CallerIdNumber' | 'None': Call information to be displayed as 'Line 1' for a call queue call session
        - `value` string: Call information value
      - `additional` AdditionalCQInfo: Additional call session information. Supported for Call Queues only
        - `type` 'PhoneNumberLabel' | 'PhoneNumber' | 'QueueExtension' | 'QueueName' | 'CallerIdName' | 'CallerIdNumber' | 'None': Call information to be displayed as 'Line 2' for a call queue call session
        - `value` string: Call information value
  - `extension` GetPresenceExtensionInfo: Information on extension, for which this presence data is returned
    - `id` integer: Internal identifier of an extension
    - `uri` string, uri: Canonical URI of an extension
    - `extensionNumber` string: Extension number (usually 3 or 4 digits)
  - `meetingStatus` 'Connected' | 'Disconnected': Meetings presence status
  - `telephonyStatus` 'NoCall' | 'CallConnected' | 'Ringing' | 'OnHold' | 'ParkedCall': Telephony presence status. Returned if telephony status is changed
  - `presenceStatus` 'Offline' | 'Busy' | 'Available': Aggregated presence status, calculated from a number of sources

---

[API](https://skmtc.dev/ringcentral/apis/ringcentral-api.md) - [All operations](https://skmtc.dev/ringcentral/apis/ringcentral-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ringcentral/apis/ringcentral-api/revisions/8d602198ec97?raw)
