RingCentral Presence API

The Presence API from RingCentral — 5 operation(s) for presence.

Operations 9

GET /restapi/v1.0/account/{accountId}/call-queues/{groupId}/presence Get Call Queue Presence #
PUT /restapi/v1.0/account/{accountId}/call-queues/{groupId}/presence Update Call Queue Presence #
GET /restapi/v1.0/account/{accountId}/presence Get User Presence Status List #
GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/call-queue-presence Get Agent’s Call Queue Presence #
PUT /restapi/v1.0/account/{accountId}/extension/{extensionId}/call-queue-presence Update Call Queue Presence #
GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/presence Get User Presence Status #
PUT /restapi/v1.0/account/{accountId}/extension/{extensionId}/presence Update User Presence Status #
GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/unified-presence Get Unified Presence #
PATCH /restapi/v1.0/account/{accountId}/extension/{extensionId}/unified-presence Update Unified Presence #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ringcentral-presence-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ringcentral-presence-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: RingCentral Adaptive Cards Presence API
  description: RingCentral API specification
  version: 1.0.58-20240529-47eda8bd
  contact:
    name: RingCentral Developers Support
    url: https://developers.ringcentral.com/support
  termsOfService: https://www.ringcentral.com/legal/apilitos.html
  license:
    name: RingCentral API License Agreement
    url: https://www.ringcentral.com/legal/apilitos.html
servers:
- url: https://platform.ringcentral.com
  description: Production API entry point
- url: https://media.ringcentral.com
  description: Production Media entry point
- url: https://platform.devtest.ringcentral.com
  description: Developer sandbox API entry point
- url: https://platform.devtest.ringcentral.com
  description: Developer sandbox Media entry point
security:
- OAuth2: []
tags:
- name: Presence
paths:
  /restapi/v1.0/account/{accountId}/call-queues/{groupId}/presence:
    get:
      tags:
      - Presence
      summary: Get Call Queue Presence
      description: Returns presence status of the call queue members.
      operationId: readCallQueuePresence
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: groupId
        in: path
        description: Internal identifier of a call queue extension
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallQueuePresence'
      x-request-max-body-size: 100m
      x-feature: ReadPresenceStatus
      x-throttling-group: Light
      x-app-permission: ReadPresence
    put:
      tags:
      - Presence
      summary: Update Call Queue Presence
      description: Updates presence status of the call queue members in the specified queue.
      operationId: updateCallQueuePresence
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: groupId
        in: path
        description: Internal identifier of a call queue extension
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallQueueUpdatePresence'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallQueuePresence'
      x-request-max-body-size: 100m
      x-feature: EditPresenceStatus
      x-throttling-group: Medium
      x-app-permission: EditPresence
      x-notifications:
      - $ref: '#/components/schemas/CallQueuePresenceEvent'
  /restapi/v1.0/account/{accountId}/presence:
    get:
      tags:
      - Presence
      summary: Get User Presence Status List
      description: 'Returns presence status of all extensions of an account. Please note: The presenceStatus is returned as Offline (the parameters telephonyStatus, message, userStatus and dndStatus are not returned at all) for the following extension types: Department, Announcement Only, Voicemail (Take Messages Only), Fax User, Paging Only Group, Shared Lines Group, IVR Menu, Application Extension.'
      operationId: readAccountPresence
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: detailedTelephonyState
        in: query
        description: Whether to return detailed telephony state
        schema:
          type: boolean
      - name: sipData
        in: query
        description: Whether to return SIP data
        schema:
          type: boolean
      - name: page
        in: query
        description: Page number for account presence information
        schema:
          type: integer
          format: int32
      - name: perPage
        in: query
        description: Number for account presence information items per page
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountPresenceInfo'
      x-request-max-body-size: 100m
      x-feature: ReadPresenceStatus
      x-throttling-group: Heavy
      x-app-permission: ReadPresence
      x-user-permission: ReadPresenceStatus
      x-notifications:
      - $ref: '#/components/schemas/AccountPresenceEvent'
  /restapi/v1.0/account/{accountId}/extension/{extensionId}/call-queue-presence:
    get:
      tags:
      - Presence
      summary: Get Agent’s Call Queue Presence
      description: Returns a list of agent's call queues with the agent presence status (per queue).
      operationId: readExtensionCallQueuePresence
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ExtensionId'
      - name: editableMemberStatus
        in: query
        description: Filtering by the flag 'Allow members to change their Queue Status'. If 'true' only queues where user can change his availability status are returned
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtensionCallQueuePresenceList'
      x-request-max-body-size: 100m
      x-feature: ReadPresenceStatus
      x-throttling-group: Light
      x-app-permission: ReadPresence
    put:
      tags:
      - Presence
      summary: Update Call Queue Presence
      description: Updates availability of the agent for the call queues.
      operationId: updateExtensionCallQueuePresence
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ExtensionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtensionCallQueueUpdatePresenceList'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtensionCallQueuePresenceList'
      x-request-max-body-size: 100m
      x-feature: EditPresenceStatus
      x-throttling-group: Medium
      x-app-permission: EditPresence
      x-notifications:
      - $ref: '#/components/schemas/CallQueuePresenceEvent'
  /restapi/v1.0/account/{accountId}/extension/{extensionId}/presence:
    get:
      tags:
      - Presence
      summary: Get User Presence Status
      description: "Returns the presence status of an extension or several extensions by their ID(s). The `presenceStatus` is returned as Offline \n(the parameters `telephonyStatus`, `message`, `userStatus` and `dndStatus` are not returned at all) for the following extension types: \nDepartment/Announcement Only/Take Messages Only (Voicemail)/Fax User/Paging Only Group/Shared Lines Group/IVR Menu/Application Extension/Park Location.\nIf the user requests his/her own presence status, the response contains actual presence status even if the status publication is turned off.\n[Batch request syntax](https://developers.ringcentral.com/api-reference/Batch-Requests) is supported. For batch requests the number of extensions \nin one request is limited to 30. If more extensions are included in the request, the error code 400 Bad Request is returned with the logical error\ncode InvalidMultipartRequest and the corresponding message Extension Presence Info multipart request is limited to 30 extensions.\n"
      operationId: readUserPresenceStatus
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ExtensionId'
      - name: detailedTelephonyState
        in: query
        description: Specifies whether to return a detailed telephony state or not
        schema:
          type: boolean
      - name: sipData
        in: query
        description: Specifies whether to return SIP data or not
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPresenceInfo'
      x-request-max-body-size: 100m
      x-feature: ReadPresenceStatus
      x-throttling-group: Light
      x-app-permission: ReadPresence
      x-user-permission: ReadPresenceStatus
      x-notifications:
      - $ref: '#/components/schemas/ExtensionPresenceEvent'
      - $ref: '#/components/schemas/DetailedExtensionPresenceEvent'
      - $ref: '#/components/schemas/DetailedExtensionPresenceWithSIPEvent'
    put:
      tags:
      - Presence
      summary: Update User Presence Status
      description: '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.'
      operationId: updateUserPresenceStatus
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ExtensionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PresenceInfoRequest'
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PresenceInfoResponse'
      x-request-max-body-size: 100m
      x-feature: EditPresenceStatus
      x-throttling-group: Medium
      x-app-permission: EditPresence
      x-notifications:
      - $ref: '#/components/schemas/IncomingCallEvent'
      - $ref: '#/components/schemas/MissedCallEvent'
  /restapi/v1.0/account/{accountId}/extension/{extensionId}/unified-presence:
    get:
      tags:
      - Presence
      summary: Get Unified Presence
      description: Returns the unified presence status of the requested user(s). The set of parameters returned by this method differs whether you return the requester's presence or any other user presence.
      operationId: readUnifiedPresence
      parameters:
      - name: accountId
        in: path
        description: Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
        required: true
        schema:
          type: string
          default: '~'
      - name: extensionId
        in: path
        description: Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
        required: true
        schema:
          type: string
          default: '~'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedPresence'
        '207':
          description: Multi-Status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedPresenceList'
        '400':
          description: Some of the parameters are missing or have invalid format
        '404':
          description: Resource not found
      x-throttling-group: Medium
      x-app-permission: ReadPresence
      x-user-permission: ReadPresenceStatus
    patch:
      tags:
      - Presence
      summary: Update Unified Presence
      description: Updates the unified presence for the current user specified in path.
      operationId: updateUnifiedPresence
      parameters:
      - name: accountId
        in: path
        description: Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
        required: true
        schema:
          type: string
          default: '~'
      - name: extensionId
        in: path
        description: Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
        required: true
        schema:
          type: string
          default: '~'
      requestBody:
        description: JSON body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUnifiedPresence'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedPresence'
        '400':
          description: Some of parameters are missing or have invalid format
        '403':
          description: User is not allowed to do this action
        '404':
          description: Resource not found
      x-throttling-group: Medium
      x-app-permission: EditPresence
      x-user-permission: EditPresenceStatus
components:
  schemas:
    DetailedExtensionPresenceEvent:
      type: object
      properties:
        uuid:
          type: string
          description: Universally unique identifier of a notification
        event:
          type: string
          description: Event filter name
        timestamp:
          type: string
          format: date-time
          description: Timestamp when this notification was sent in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z*
        subscriptionId:
          type: string
          description: Internal identifier of a subscription
        body:
          $ref: '#/components/schemas/DetailedExtensionPresenceEventBody'
    CallInfoCQ:
      type: object
      description: Primary/additional CQ information
      properties:
        primary:
          $ref: '#/components/schemas/PrimaryCQInfo'
        additional:
          $ref: '#/components/schemas/AdditionalCQInfo'
    ExtensionPresenceEvent:
      type: object
      properties:
        uuid:
          type: string
          description: Universally unique identifier of a notification
        event:
          type: string
          description: Event filter name
        timestamp:
          type: string
          format: date-time
          description: Timestamp when this notification was sent in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z*
        subscriptionId:
          type: string
          description: Internal identifier of a subscription
        body:
          $ref: '#/components/schemas/ExtensionPresenceEventBody'
    DetailedExtensionPresenceEventBody:
      type: object
      description: Notification payload body
      properties:
        extensionId:
          type: string
          description: Internal identifier of an extension
          default: '~'
        telephonyStatus:
          type: string
          description: Telephony presence status. Returned if telephony status is changed.
          enum:
          - NoCall
          - CallConnected
          - Ringing
          - OnHold
          - ParkedCall
        activeCalls:
          type: array
          description: List of the latest 7 active calls on extension
          items:
            $ref: '#/components/schemas/ActiveCallInfoWithoutSIP'
        sequence:
          type: integer
          format: int32
          description: Order number of a notification to state the chronology
        presenceStatus:
          type: string
          description: Aggregated presence status, calculated from a number of sources
          enum:
          - Offline
          - Busy
          - Available
        userStatus:
          type: string
          description: User-defined presence status (as previously published by the user)
          enum:
          - Offline
          - Busy
          - Available
        meetingStatus:
          type: string
          description: Meetings presence status
          enum:
          - Connected
          - Disconnected
        dndStatus:
          type: string
          description: Extended DnD (Do not Disturb) status
          enum:
          - TakeAllCalls
          - DoNotAcceptAnyCalls
          - DoNotAcceptDepartmentCalls
          - TakeDepartmentCallsOnly
        allowSeeMyPresence:
          type: boolean
          description: If `true` enables other extensions to see the extension presence status
        ringOnMonitoredCall:
          type: boolean
          description: If `true` enables to ring extension phone, if any user monitored by this extension is ringing
        pickUpCallsOnHold:
          type: boolean
          description: If `true` enables the extension user to pick up a monitored line on hold
        totalActiveCalls:
          type: integer
          format: int32
          description: Total number of active calls on extension at the present moment
        ownerId:
          type: string
          description: Internal identifier of a subscription owner extension
    DetailedCallInfo:
      type: object
      properties:
        callId:
          type: string
        toTag:
          type: string
        fromTag:
          type: string
        remoteUri:
          format: uri
          type: string
        localUri:
          format: uri
          type: string
        rcSessionId:
          type: string
    AccountPresenceInfo:
      type: object
      properties:
        uri:
          type: string
          format: uri
          description: Canonical URI of account presence resource
        records:
          type: array
          description: List of Prompts
          items:
            $ref: '#/components/schemas/GetPresenceInfo'
        navigation:
          $ref: '#/components/schemas/PresenceNavigationInfo'
        paging:
          $ref: '#/components/schemas/PresencePagingInfo'
    AdditionalCQInfo:
      type: object
      properties:
        type:
          type: string
          description: Call information to be displayed as 'Line 2' for a call queue call session
          enum:
          - PhoneNumberLabel
          - PhoneNumber
          - QueueExtension
          - QueueName
          - CallerIdName
          - CallerIdNumber
          - None
        value:
          type: string
          description: Call information value
      description: Additional call session information. Supported for Call Queues only
    ExtensionPresenceEventBody:
      type: object
      properties:
        extensionId:
          type: string
          description: Internal identifier of an extension. Optional parameter
          default: '~'
        telephonyStatus:
          type: string
          description: Telephony presence status. Returned if telephony status is changed.
          enum:
          - NoCall
          - CallConnected
          - Ringing
          - OnHold
          - ParkedCall
        sequence:
          type: integer
          format: int32
          description: Order number of a notification to state the chronology
        presenceStatus:
          type: string
          description: Aggregated presence status, calculated from a number of sources
          enum:
          - Offline
          - Busy
          - Available
        userStatus:
          type: string
          description: User-defined presence status (as previously published by the user)
          enum:
          - Offline
          - Busy
          - Available
        dndStatus:
          type: string
          description: Extended DnD (Do not Disturb) status
          enum:
          - TakeAllCalls
          - DoNotAcceptAnyCalls
          - DoNotAcceptDepartmentCalls
          - TakeDepartmentCallsOnly
        allowSeeMyPresence:
          type: boolean
          description: If `true` enables other extensions to see the extension presence status
        ringOnMonitoredCall:
          type: boolean
          description: If `true` enables to ring extension phone, if any user monitored by this extension is ringing
        pickUpCallsOnHold:
          type: boolean
          description: If `true` enables the extension user to pick up a monitored line on hold
        ownerId:
          type: string
          description: Internal identifier of a subscription owner extension
    UnifiedPresenceMeeting:
      type: object
      properties:
        status:
          type: string
          description: Meeting status calculated from all user`s meetings
          enum:
          - NoMeeting
          - InMeeting
      description: Returned if *Meetings* feature is switched on
    AccountPresenceEventBody:
      type: object
      description: Notification payload body
      properties:
        extensionId:
          type: string
          description: Internal identifier of an extension. Optional parameter
          default: '~'
        telephonyStatus:
          type: string
          description: Telephony presence status. Returned if telephony status is changed.
          enum:
          - NoCall
          - CallConnected
          - Ringing
          - OnHold
          - ParkedCall
        sequence:
          type: integer
          format: int32
          description: Order number of a notification to state the chronology
        presenceStatus:
          type: string
          description: Aggregated presence status, calculated from a number of sources
          enum:
          - Offline
          - Busy
          - Available
        userStatus:
          type: string
          description: User-defined presence status (as previously published by the user)
          enum:
          - Offline
          - Busy
          - Available
        dndStatus:
          type: string
          description: Extended DnD (Do not Disturb) status
          enum:
          - TakeAllCalls
          - DoNotAcceptAnyCalls
          - DoNotAcceptDepartmentCalls
          - TakeDepartmentCallsOnly
        allowSeeMyPresence:
          type: boolean
          description: If `true` enables other extensions to see the extension presence status
        ringOnMonitoredCall:
          type: boolean
          description: If `true` enables to ring extension phone, if any user monitored by this extension is ringing
        pickUpCallsOnHold:
          type: boolean
          description: If `true` enables the extension user to pick up a monitored line on hold
        ownerId:
          type: string
          description: Internal identifier of a subscription owner extension
    DetailedExtensionPresenceWithSIPEventBody:
      type: object
      description: Notification payload body
      properties:
        extensionId:
          type: string
          description: Internal identifier of an extension
          default: '~'
        telephonyStatus:
          type: string
          description: Telephony presence status. Returned if telephony status is changed.
          enum:
          - NoCall
          - CallConnected
          - Ringing
          - OnHold
          - ParkedCall
        activeCalls:
          type: array
          description: List of the latest 7 active calls on extension
          items:
            $ref: '#/components/schemas/ActiveCallInfo'
        sequence:
          type: integer
          format: int32
          description: Order number of a notification to state the chronology
        presenceStatus:
          type: string
          description: Aggregated presence status, calculated from a number of sources
          enum:
          - Offline
          - Busy
          - Available
        userStatus:
          type: string
          description: User-defined presence status (as previously published by the user)
          enum:
          - Offline
          - Busy
          - Available
        meetingStatus:
          type: string
          description: Meetings presence status
          enum:
          - Connected
          - Disconnected
        dndStatus:
          type: string
          description: Extended DnD (Do not Disturb) status
          enum:
          - TakeAllCalls
          - DoNotAcceptAnyCalls
          - DoNotAcceptDepartmentCalls
          - TakeDepartmentCallsOnly
        allowSeeMyPresence:
          type: boolean
          description: If `true` enables other extensions to see the extension presence status
        ringOnMonitoredCall:
          type: boolean
          description: If `true` enables to ring extension phone, if any user monitored by this extension is ringing
        pickUpCallsOnHold:
          type: boolean
          description: If `true` enables the extension user to pick up a monitored line on hold
        totalActiveCalls:
          type: integer
          format: int32
          description: Total number of active calls on extension at the present moment
        ownerId:
          type: string
          description: Internal identifier of a subscription owner extension
    ExtensionCallQueueUpdatePresence:
      type: object
      properties:
        callQueue:
          $ref: '#/components/schemas/CallQueueId'
        acceptCalls:
          type: boolean
          description: Call queue agent availability for calls of this queue
    CallQueueMemberId:
      type: object
      description: Call queue member information
      properties:
        id:
          type: string
          description: Internal identifier of an extension - queue member
    PrimaryCQInfo:
      type: object
      properties:
        type:
          type: string
          description: Call information to be displayed as 'Line 1' for a call queue call session
          enum:
          - PhoneNumberLabel
          - PhoneNumber
          - QueueExtension
          - QueueName
          - CallerIdName
          - CallerIdNumber
          - None
        value:
          type: string
          description: Call information value
      description: Primary call session information. Supported for Call Queues only
    CallQueueMemberPresence:
      type: object
      properties:
        member:
          $ref: '#/components/schemas/CallQueueMember'
        acceptQueueCalls:
          type: boolean
          description: Private member telephony availability status applied to calls of all queues
        acceptCurrentQueueCalls:
          type: boolean
          description: Call queue member availability in this particular queue
    APNSInfo:
      type: object
      description: APNS (Apple Push Notification Service) information
      properties:
        aps:
          $ref: '#/components/schemas/APSInfo'
    GetPresenceExtensionInfo:
      type: object
      description: Information on extension, for which this presence data is returned
      properties:
        id:
          type: integer
          format: int64
          description: Internal identifier of an extension
        uri:
          type: string
          format: uri
          description: Canonical URI of an extension
        extensionNumber:
          type: string
          description: Extension number (usually 3 or 4 digits)
    PresenceInfoResponse:
      type: object
      properties:
        uri:
          type: string
          format: uri
          description: Link to the presence resource
        userStatus:
          type: string
          enum:
          - Offline
          - Busy
          - Available
        dndStatus:
          type: string
          enum:
          - TakeAllCalls
          - DoNotAcceptDepartmentCalls
          - TakeDepartmentCallsOnly
          - DoNotAcceptAnyCalls
          - Unknown
        message:
          maxLength: 75
          minLength: 0
          type: string
        allowSeeMyPresence:
          type: boolean
          default: false
        callerIdVisibility:
          type: string
          description: "Configures the user presence visibility. When the `allowSeeMyPresence` parameter is set to `true`, \nthe following visibility options are supported via this parameter - All, None, PermittedUsers\n"
          enum:
          - All
          - None
          - PermittedUsers
        ringOnMonitoredCall:
          type: boolean
          default: false
        pickUpCallsOnHold:
          type: boolean
          default: false
        activeCalls:
          type: array
          items:
            $ref: '#/components/schemas/ActiveCallInfo'
        extension:
          $ref: '#/components/schemas/GetPresenceExtensionInfo'
        meetingStatus:
          type: string
          description: Meetings presence status
          enum:
          - Connected
          - Disconnected
        telephonyStatus:
          type: string
          description: Telephony presence status. Returned if telephony status is changed
          enum:
          - NoCall
          - CallConnected
          - Ringing
          - OnHold
          - ParkedCall
        presenceStatus:
          type: string
          description: Aggregated presence status, calculated from a number of sources
          enum:
          - Offline
          - Busy
          - Available
    AccountPresenceEvent:
      type: object
      properties:
        uuid:
          type: string
          description: Universally unique identifier of a notification
        event:
          type: string
          description: Event filter name
        timestamp:
          type: string
          format: date-time
          description: Timestamp when this notification was sent in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z*
        subscriptionId:
          type: string
          description: Internal identifier of a subscription
        body:
          $ref: '#/components/schemas/AccountPresenceEventBody'
    UnifiedPresenceGlip:
      type: object
      properties:
        status:
          type: string
          description: Glip connection status calculated from all user's apps. Returned always for the requester's extension; returned for another users if their glip visibility is set to 'Visible'
          enum:
          - Offline
          - Online
        visibility:
          type: string
          description: Visibility setting allowing other users to see the user's Glip presence status; returned only for requester's extension
          enum:
          - Visible
          - Invisible
        availability:
          type: string
          description: Shows whether user wants to receive Glip notifications or not.
          enum:
          - Available
          - DND
      description: Returned if *Glip* feature is switched on
    UpdateUnifiedPresenceGlip:
      type: object
      properties:
        visibility:
          type: string
          description: Visibility setting allowing other users to see Glip presence status
          enum:
          - Visible
          - Invisible
        availability:
          type: string
          description: Availability setting specifying whether to receive Glip notifications or not
          enum:
          - Available
          - DND
    CallQueuePresence:
      type: object
      properties:
        records:
          type: array
          items:
            $ref: '#/components/schemas/CallQueueMemberPresence'
    UpdateUnifiedPresenceTelephony:
      type: object
      properties:
        availability:
          type: string
          description: Telephony DND status
          enum:
          - TakeAllCalls
          - DoNotAcceptAnyCalls
          - DoNotAcceptQueueCalls
    DetailedExtensionPresenceWithSIPEvent:
      type: object
      properties:
        uuid:
          type: string
          description: Universally unique identifier of a notification
        event:
          type: string
          description: Event filter name
        timestamp:
          type: string
          format: date-time
          description: Timestamp when this notification was sent in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format including timezone, for example *2016-03-10T18:07:52.534Z*
        subscriptionId:
          type: string
          description: Internal identifier of a subscription
        body:
          $ref: '#/components/schemas/DetailedExtensionPresenceWithSIPEventBody'
    PresenceCallQueueInfo:
      type: object
      description: Call queue information
      properties:
        id:
          type: string
          description: Internal identifier of a call queue
        name:
          type: string
          description: Name of a call queue
        extensionNumber:
          type: string
          description: Extension number of a call queue
        editableMemberStatus:
          type

# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ringcentral/refs/heads/main/openapi/ringcentral-presence-api-openapi.yml