Citrix Endpoint Management REST API

REST API for managing mobile devices, applications, and policies in Citrix Endpoint Management, enabling integration with external systems for device lifecycle management and compliance.

OpenAPI Specification

citrix-endpoint-management-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Citrix Endpoint Management REST API
  description: >-
    REST API for managing mobile devices, applications, and policies in Citrix
    Endpoint Management (formerly XenMobile), enabling integration with
    external systems for device lifecycle management and compliance.
  version: '1.0'
  contact:
    name: Citrix Support
    url: https://support.citrix.com/
  termsOfService: https://developer.cloud.com/citrix-developer-terms-of-use
externalDocs:
  description: Citrix Endpoint Management REST APIs
  url: https://docs.citrix.com/en-us/citrix-endpoint-management/rest-apis.html
servers:
  - url: https://{xms-server}:4443/xenmobile/api/v1
    description: Citrix Endpoint Management Server
    variables:
      xms-server:
        default: xms.example.com
        description: XenMobile server hostname
tags:
  - name: Applications
    description: Application management and deployment
  - name: Authentication
    description: Login and token management
  - name: Delivery Groups
    description: Delivery group management
  - name: Devices
    description: Device enrollment and lifecycle management
  - name: Policies
    description: Device and app policy management
  - name: Users
    description: User and group management
security:
  - authToken: []
paths:
  /authentication/login:
    post:
      operationId: login
      summary: Citrix Authenticate to the API
      description: >-
        Log in with administrator credentials to obtain an authentication token.
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - login
                - password
              properties:
                login:
                  type: string
                  description: Administrator username
                password:
                  type: string
                  description: Administrator password
      responses:
        '200':
          description: Authentication successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  auth_token:
                    type: string
                    description: Authentication token for subsequent requests
        '401':
          description: Authentication failed
      security: []
  /authentication/logout:
    post:
      operationId: logout
      summary: Citrix Log out
      description: >-
        Invalidate the current authentication token.
      tags:
        - Authentication
      responses:
        '200':
          description: Logout successful
  /device/filter:
    post:
      operationId: filterDevices
      summary: Citrix Filter devices
      description: >-
        Search and filter enrolled devices based on criteria.
      tags:
        - Devices
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceFilterRequest'
      responses:
        '200':
          description: Filtered device list
          content:
            application/json:
              schema:
                type: object
                properties:
                  filteredDevicesDataList:
                    type: array
                    items:
                      $ref: '#/components/schemas/Device'
        '401':
          description: Unauthorized
  /device/{deviceId}:
    get:
      operationId: getDevice
      summary: Citrix Get device details
      description: >-
        Retrieve detailed information about a specific enrolled device.
      tags:
        - Devices
      parameters:
        - name: deviceId
          in: path
          required: true
          description: Device unique identifier
          schema:
            type: string
      responses:
        '200':
          description: Device details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
        '401':
          description: Unauthorized
        '404':
          description: Device not found
  /device/wipe:
    post:
      operationId: wipeDevice
      summary: Citrix Wipe a device
      description: >-
        Issue a full wipe command to a managed device.
      tags:
        - Devices
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - deviceId
              properties:
                deviceId:
                  type: string
                  description: Device ID to wipe
      responses:
        '200':
          description: Wipe command sent
        '401':
          description: Unauthorized
        '404':
          description: Device not found
  /device/selectivewipe:
    post:
      operationId: selectiveWipeDevice
      summary: Citrix Selective wipe a device
      description: >-
        Issue a selective wipe to remove only corporate data from a device.
      tags:
        - Devices
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - deviceId
              properties:
                deviceId:
                  type: string
                  description: Device ID for selective wipe
      responses:
        '200':
          description: Selective wipe command sent
        '401':
          description: Unauthorized
        '404':
          description: Device not found
  /application/filter:
    post:
      operationId: filterApplications
      summary: Citrix Filter applications
      description: >-
        Search and filter managed applications.
      tags:
        - Applications
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationFilterRequest'
      responses:
        '200':
          description: Filtered application list
          content:
            application/json:
              schema:
                type: object
                properties:
                  applicationListData:
                    type: array
                    items:
                      $ref: '#/components/schemas/Application'
        '401':
          description: Unauthorized
  /device/policy/deploy:
    post:
      operationId: deployPolicy
      summary: Citrix Deploy policies to devices
      description: >-
        Deploy device or application policies to specified devices.
      tags:
        - Policies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - deviceIds
              properties:
                deviceIds:
                  type: array
                  items:
                    type: string
                  description: List of device IDs to receive the policy
      responses:
        '200':
          description: Policy deployment initiated
        '401':
          description: Unauthorized
  /user/filter:
    post:
      operationId: filterUsers
      summary: Citrix Filter users
      description: >-
        Search and filter users and groups.
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserFilterRequest'
      responses:
        '200':
          description: Filtered user list
          content:
            application/json:
              schema:
                type: object
                properties:
                  userListData:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
        '401':
          description: Unauthorized
  /deliverygroup/filter:
    post:
      operationId: filterDeliveryGroups
      summary: Citrix Filter delivery groups
      description: >-
        Search and filter delivery groups.
      tags:
        - Delivery Groups
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeliveryGroupFilterRequest'
      responses:
        '200':
          description: Filtered delivery group list
          content:
            application/json:
              schema:
                type: object
                properties:
                  dgListData:
                    type: array
                    items:
                      $ref: '#/components/schemas/DeliveryGroup'
        '401':
          description: Unauthorized
components:
  securitySchemes:
    authToken:
      type: apiKey
      in: header
      name: auth_token
      description: Authentication token from login endpoint
  schemas:
    DeviceFilterRequest:
      type: object
      properties:
        start:
          type: integer
          description: Start index for pagination
        limit:
          type: integer
          description: Maximum number of results
        sortOrder:
          type: string
          enum:
            - ASC
            - DESC
          description: Sort order
        search:
          type: string
          description: Search text
    Device:
      type: object
      properties:
        id:
          type: string
          description: Device unique identifier
        serialNumber:
          type: string
          description: Device serial number
        deviceModel:
          type: string
          description: Device model name
        platform:
          type: string
          enum:
            - iOS
            - Android
            - Windows
            - macOS
          description: Device platform
        osVersion:
          type: string
          description: Operating system version
        lastAccess:
          type: string
          format: date-time
          description: Last access timestamp
        userName:
          type: string
          description: Enrolled user name
        jailbroken:
          type: boolean
          description: Whether the device is jailbroken or rooted
        managed:
          type: boolean
          description: Whether the device is managed
        compliant:
          type: boolean
          description: Whether the device is compliant with policies
    ApplicationFilterRequest:
      type: object
      properties:
        start:
          type: integer
          description: Start index for pagination
        limit:
          type: integer
          description: Maximum number of results
    Application:
      type: object
      properties:
        id:
          type: string
          description: Application unique identifier
        name:
          type: string
          description: Application name
        description:
          type: string
          description: Application description
        appType:
          type: string
          description: Application type
        platform:
          type: string
          description: Target platform
        disabled:
          type: boolean
          description: Whether the application is disabled
    UserFilterRequest:
      type: object
      properties:
        start:
          type: integer
          description: Start index for pagination
        limit:
          type: integer
          description: Maximum number of results
        search:
          type: string
          description: Search text
    User:
      type: object
      properties:
        id:
          type: string
          description: User unique identifier
        userName:
          type: string
          description: Username
        displayName:
          type: string
          description: Display name
        email:
          type: string
          description: Email address
        domain:
          type: string
          description: Active Directory domain
    DeliveryGroupFilterRequest:
      type: object
      properties:
        start:
          type: integer
          description: Start index for pagination
        limit:
          type: integer
          description: Maximum number of results
    DeliveryGroup:
      type: object
      properties:
        id:
          type: string
          description: Delivery group unique identifier
        name:
          type: string
          description: Delivery group name
        description:
          type: string
          description: Description
        disabled:
          type: boolean
          description: Whether the delivery group is disabled