Opkey Session Media & Logs API

The Session Media & Logs API from Opkey — 5 operation(s) for session media & logs.

OpenAPI Specification

opkey-session-media-logs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: pCloudy Device Cloud Session Media & Logs API
  version: v2
  summary: Public REST API for the pCloudy real-device cloud, an Opkey product.
  description: 'The pCloudy REST API is the machine-readable surface of the pCloudy real-device testing cloud operated by Opkey (Smart Software Testing Solutions Inc.). It covers authentication, device booking and session lifecycle, app upload/install/control, device interaction, performance capture, session media and logs, network simulation, APK instrumentation, app resigning, App Center integration, and Appium/XCTest automation orchestration. All methods default to POST except authentication, and requests set Content-Type: application/json.


    PROVENANCE: this document was generated by API Evangelist from the operations, parameters and examples published in Opkey''s own public pCloudy API Reference at https://content.pcloudy.com/apidocs/ . Opkey does not publish an OpenAPI document; every path, method, parameter and description here is transcribed from that published reference and nothing has been invented. It is a third-party transcription, not a provider artifact.'
  contact:
    name: Opkey
    url: https://www.opkey.com/
  x-generated-by: API Evangelist enrichment pipeline
  x-source: https://content.pcloudy.com/apidocs/
servers:
- url: https://{cloud}.pcloudy.com
  description: pCloudy cloud instance
  variables:
    cloud:
      default: device
      enum:
      - device
      - demo
      - aus
      description: pCloudy cloud host prefix; the docs refer to this as <Cloud URL>.
security:
- accessToken: []
tags:
- name: Session Media & Logs
paths:
  /api/v2/download/session-video:
    post:
      operationId: downloadSessionVideo
      summary: Downloaded Session Video(V2)
      tags:
      - Session Media & Logs
      description: Generates a time-limited signed URL from which the session screen-recording video can be downloaded. Call it once the upload has completed (see the upload-progress API) to obtain a direct, shareable link to the recorded video for the session.
      parameters:
      - name: token
        in: header
        required: true
        description: API access token (from /api/access).
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - rid
              properties:
                rid:
                  type: integer
                  description: Device reservation ID (returned when the device is booked).
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example:
                traceId: bLS6gc77E4EA8LGIzh
                requestId: IDkHKxwC00kQ5S9gp6X
                statusCode: 200
                status: success
                message: Signed video URL generated successfully
                data:
                  signedUrl: https://pcloudy-observability-stg.s3.eu-west-2.amazonaws.com/privado/178/39955/video-Pixel3XL_2026_May_11_10_01_am__193-1778494404733.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&...
        '401':
          description: Unauthorized - missing or invalid access token
      security:
      - accessToken: []
  /api/v2/device-logs-download:
    post:
      operationId: deviceLogsDownload
      summary: Device_logs_download(V2)
      tags:
      - Session Media & Logs
      description: Collects the device logs captured during the session (logcat on Android, syslog on iOS) and returns them as a downloadable log file. Use it to retrieve runtime, warning, and diagnostic output for debugging test failures after the session ends.
      parameters:
      - name: token
        in: header
        required: true
        description: API access token (from /api/access).
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - rid
              properties:
                rid:
                  type: integer
                  description: Device reservation ID (returned when the device is booked).
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized - missing or invalid access token
      security:
      - accessToken: []
  /api/v2/video-record:
    post:
      operationId: enableVideoRecord
      summary: Enable Video Record
      tags:
      - Session Media & Logs
      description: Starts screen-video recording of the session on the reserved device. Use it to capture a video of the test run for evidence or debugging; stop it with the disable-video-record call, after which the video can be uploaded and downloaded.
      parameters:
      - name: token
        in: header
        required: true
        description: API access token (from /api/access).
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - enableRecord
              - rid
              properties:
                enableRecord:
                  type: boolean
                  description: true to start, false to stop recording.
                rid:
                  type: integer
                  description: Device reservation ID (returned when the device is booked).
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example:
                traceId: PqKUQk4IU40k3YgApYg
                requestId: GftB7PLMq1p8rJltIXV
                statusCode: 200
                status: success
                message: OK
                data:
                - message: Session video recording started successfully
        '401':
          description: Unauthorized - missing or invalid access token
      security:
      - accessToken: []
  /api/v2/crash-logs-download:
    post:
      operationId: crashLogsDownload
      summary: Crash Logs Download — iOS
      tags:
      - Session Media & Logs
      description: Collects the iOS crash reports generated during the session and returns them as a downloadable file. Used to investigate app crashes captured on the device, providing the crash stack and diagnostic logs for debugging.
      parameters:
      - name: token
        in: header
        required: true
        description: API access token (from /api/access).
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - rid
              properties:
                rid:
                  type: integer
                  description: Device reservation ID (returned when the device is booked).
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized - missing or invalid access token
      security:
      - accessToken: []
  /api/v2/session-video/upload-progress:
    post:
      operationId: videoUploadProgress
      summary: Video Upload progress(V2)
      tags:
      - Session Media & Logs
      description: Returns the current upload progress of the session screen-recording video as it is transferred to pCloudy storage. Poll this endpoint after a recorded session to know when the video has finished uploading and is ready to download, and to drive a progress indicator in the UI.
      parameters:
      - name: token
        in: header
        required: true
        description: API access token (from /api/access).
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - rid
              properties:
                rid:
                  type: integer
                  description: Device reservation ID (returned when the device is booked).
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example:
                traceId: hjiudSYlT2JiSf11vny
                requestId: BBRMIoC1z6ZoMwERm5k
                statusCode: 200
                status: success
                message: Session video upload progress fetched successfully
                data:
                  rid: 39955
                  status: completed
                  progress: 100
                  progressPercentage: 100
                  bytesReceived: 11754978
                  totalBytes: 11754978
                  startedAt: 1778493784657
                  updatedAt: 1778493791947
                  completedAt: 1778493791947
        '401':
          description: Unauthorized - missing or invalid access token
      security:
      - accessToken: []
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic with your pCloudy email as the username and your API access key as the password. Used only by GET /api/access to mint an access token.
    accessToken:
      type: apiKey
      in: header
      name: token
      description: Access token returned by GET /api/access. Newer /api/v2/* operations send it as a `token` header; several legacy /api/* operations send the same token as a `token` field in the JSON request body.
externalDocs:
  description: pCloudy API Reference
  url: https://content.pcloudy.com/apidocs/