openapi: 3.0.0
info:
  title: Crashes
  description: 'This comprehensive crash analytics suite covers all aspects of crash monitoring. Get Crash List retrieves detailed crash data with flexible filtering, Get Crash count by date powers trend analysis dashboards, and Get Crash count summary provides executive insights with historical comparisons. Get Crash Detail enables deep debugging with complete crash context, while Device specific crash distribution reveals hardware-specific issues. Features include multi-platform support, version filtering, date range queries, and pagination across all endpoints.'
  contact: {}
  version: 1.0.0
servers:
  -
    url: 'https://apptics.zoho.com/cx/api/v1'
    description: 'API Endpoint'
tags:
  -
    name: crashes
    description: 'Crashes Module'
paths:
  /crash/list:
    post:
      tags:
        - crashes
      summary: 'Get crash list'
      description: 'The crash list API retrieves crash data for your application with flexible filtering and pagination options. This endpoint allows you to query crashes by date range, platform, app version, and environment mode, making it easy to analyze crash patterns and trends across different segments of your application. <br><br>By default, the API returns the first 500 production crashes across all platforms and app versions. Use the filtering parameters to narrow down results or pagination parameters to retrieve additional records.'
      parameters:
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'
        - $ref: '#/components/parameters/platform'
        - $ref: '#/components/parameters/mode'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/crash_list_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL
            
  /crash/countbydate:
    post:
      tags:
        - crashes
      summary: 'Get crash count by date'
      description: 'The crash count by date API provides aggregated crash statistics organized by date (in epoch format) and platform. This endpoint returns time-series data showing crash counts, issue counts, device counts, and user counts for each day within the specified date range, making it ideal for trend analysis and crash monitoring dashboards. <br><br>By default, the API returns crash count data for all app versions across all platforms within the specified date range. Users can optionally apply platform and app version filters to narrow down the results to specific segments of their application.'
      parameters:
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'
        - $ref: '#/components/parameters/platform'

      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/crash_count_by_date_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL

  /crash/countbydatewithtimezone:
    post:
      tags:
        - crashes
      summary: 'Get crash count by date (timezone)'
      description: ''
      parameters:
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'
        - $ref: '#/components/parameters/platform'
        - $ref: '#/components/parameters/timezone'
        - $ref: '#/components/parameters/daterangekey'

      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/crash_count_by_date_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL
  
  /crash/summary:
    post:
      tags:
        - crashes
      summary: 'Get crash count summary'
      description: 'The crash count summary API provides comprehensive crash statistics for a specified date range along with comparative data from the equivalent previous period. This endpoint delivers aggregated crash metrics including total crash occurrences, unique issues count, affected users, impacted devices, and app version breakdowns, making it ideal for executive dashboards and performance analysis. The API includes a precrashcount object that provides comparative data from the previous equivalent period. For example, if requesting crash summary for the last 7 days, precrashcount contains data from the 7 days immediately before that period. This enables easy calculation of growth rates, trend identification, and period-over-period performance analysis. <br><br>By default, the API returns crash summary data for all app versions across all platforms within the specified date range. Users can optionally apply platform and app version filters to focus on specific segments of their application'
      parameters:
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'
        - $ref: '#/components/parameters/platform'

      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/crash_summary_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL

  /crash/{uniqueid}/summarywithtrace:
    post:
      tags:
        - crashes
      summary: 'Get crash detail'
      description: 'The crash detail API retrieves comprehensive information about a specific crash instance using its unique identifier. This endpoint provides in-depth crash data including exception details, device information, user context, and technical metadata, making it essential for debugging and root cause analysis. The API requires a unique crash identifier (uniqueid) obtained from the crash list API, along with a date range to scope the search. It returns detailed crash information including the crash date, exception type and message, stack trace, affected screen or activity, network status, device specifications, operating system version, app version details, user information, session data, and custom properties. <br><br>By default, the API searches across all app versions but can be filtered to specific versions using the appversion parameter (maximum 1 values). The response includes technical details such as the crash unique message ID, app release version, bundle name, issue count, process ID, device orientation, and timestamps for when the crash occurred.'
      parameters:
        - $ref: '#/components/parameters/uniqueid'
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'

      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/crash_detail_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL
    
  /crash/{uniqueid}/devicemodel:
    post:
      tags:
        - crashes
      summary: 'Device specific crash distribution'
      description: 'The crash distribution by device model API provides crash statistics grouped by device model for a specific crash issue. This endpoint analyzes how a particular crash is distributed across different device types, helping identify device-specific crash patterns and hardware-related stability issues. The API requires a unique crash identifier (uniqueid) obtained from the crash list API, along with a date range to scope the analysis. It returns a breakdown showing which device models are most affected by the specific crash, including the crash count for each device model. This data is essential for identifying whether crashes are concentrated on particular devices, which can indicate hardware compatibility issues, device-specific bugs, or performance problems on certain device configurations. <br><br>By default, the API analyzes data across all app versions but can be filtered to specific versions using the appversion parameter (maximum 1 value). The response includes pagination support with configurable limit (default and maximum 500) and offset parameters for handling large datasets when many device models are affected.'
      parameters:
        - $ref: '#/components/parameters/uniqueid'
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'

      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/crashes_by_model_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL
    
  /crash/{uniqueid}/osversion:
    post:
      tags:
        - crashes
      summary: 'OS version specific crash distribution'
      description: 'The OS version specific crash distribution API analyzes how a particular crash is distributed across different operating system versions. This endpoint takes a unique crash identifier and returns crash counts grouped by OS version, helping identify version-specific compatibility issues and stability patterns. The API requires a crash unique identifier and date range, with optional filtering by app versions. It returns data showing which OS versions are most affected by the specific crash, enabling teams to identify problematic OS versions, prioritize compatibility testing, and make informed decisions about minimum OS support requirements. Perfect for debugging version-specific issues and understanding crash impact across the OS ecosystem.'
      parameters:
        - $ref: '#/components/parameters/uniqueid'
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'

      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/crashes_by_os_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL

  /crash/{uniqueid}/affecteddevice:
    post:
      tags:
        - crashes
      summary: 'Affected devices'
      description: 'The list of affected devices API retrieves detailed information about all devices impacted by a specific crash within a given time period. This endpoint provides device-level insights for crash analysis, showing which individual devices experienced a particular crash issue along with their technical specifications and user context. The API requires a unique crash identifier and date range, returning device details including app version, user ID, device ID, device model, OS version, and crash occurrence timestamps. Optional app version filtering allows analysis of version-specific device impact. With pagination support (default 500 records), the endpoint handles crashes affecting large numbers of devices.'
      parameters:
        - $ref: '#/components/parameters/uniqueid'
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'

      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/affected_devices_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL

  /crash/{uniqueid}/countbydate:
    post:
      tags:
        - crashes
      summary: 'Unique crash count by date'
      description: 'The unique crash count by date API provides time-series data showing the frequency of a specific crash over time. This endpoint tracks how often a particular crash occurs on a daily basis within the specified date range, enabling teams to monitor crash trends, identify spikes, and assess the effectiveness of fixes for specific issues. The API requires a unique crash identifier and date range, with optional filtering by app versions and platforms. It returns daily crash counts, unique issues, affected devices, and impacted users organized by date, allowing teams to visualize crash frequency patterns and correlate them with app releases, updates, or external factors.'
      parameters:
        - $ref: '#/components/parameters/uniqueid'
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'
        - $ref: '#/components/parameters/platform'

      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unique_crash_count_by_date_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL

  /crash/{uniqueid}/countbydatebytimezone:
    post:
      tags:
        - crashes
      summary: 'Unique crash count by date (timezone)'
      description: 'The unique crash count by date (timezone) API provides timezone-aware time-series data for a specific crash, showing how frequently that particular crash occurs over time with configurable granularity. This endpoint tracks crash occurrence patterns for individual issues, enabling teams to monitor specific crash trends in localized time contexts. The API requires a unique crash identifier, date range, timezone, and time granularity settings. It returns crash counts, issue counts, device counts, and user counts organized by the specified time intervals (daily, hourly, 3-hour, or 6-hour periods) in the target timezone. Optional filtering by app versions and platforms allows focused analysis of crash patterns.'
      parameters:
        - $ref: '#/components/parameters/uniqueid'
        - $ref: '#/components/parameters/zsoid'
        - $ref: '#/components/parameters/projectid'
        - $ref: '#/components/parameters/startdate'
        - $ref: '#/components/parameters/enddate'
        - $ref: '#/components/parameters/appversion'
        - $ref: '#/components/parameters/platform'
        - $ref: '#/components/parameters/timezone'
        - $ref: '#/components/parameters/daterangekey'

      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unique_crash_count_by_date_response'
      security:
        -
          Zoho_Auth:
            - JProxy.jmobileapi.ALL
components:
  parameters:
    zsoid:
      name: zsoid
      description: 'Portal ID'
      in: header
      required: true
      schema:
        type: string
      example: '10234695'
    projectid:
      name: projectid
      description: 'Project ID'
      in: header
      required: true
      schema:
        type: string
      example: '12345689'
    startdate:
      name: startdate
      description: 'Beginning of date range for crash data retrieval, required format - dd-MM-yyyy'
      in: query
      required: true
      schema:
        type: string
      example: 02-08-2025
    enddate:
      name: enddate
      description: ''
      in: query
      required: true
      schema:
        type: string
      example: 24-08-2025
    platform:
      name: platform
      description: 'Comma-separated list of platforms to filter crashes (iOS, Android, Windows, tvOS, watchOS, macOS). Default - all platforms. Maximum 5 values allowed.'
      in: query
      required: false
      schema:
        type: string
      example: Android/iOS
    appversion:
      name: appversion
      description: 'Comma-separated list of app versions to filter crashes. Default - all app versions. Maximum 10 values allowed.'
      in: query
      required: false
      schema:
        type: string
      example: 1.0,1.1,1.2
    mode:
      name: mode
      description: 'Environment filter. 0 for development, 1 for production. Default - 1 (production).'
      in: query
      required: false
      schema:
        type: string
      example: 0
    offset:
      name: offset
      description: 'Starting position for result pagination (default - 0). Increment by limit value for next page (e.g., 501, 1001).'
      in: query
      required: false
      schema:
        type: string
      example: 501
    limit:
      name: limit
      description: 'Number of results per page. Default and maximum: 500. Use smaller values to limit response size.'
      in: query
      required: false
      schema:
        type: string
      example: 100
    daterangekey:
      name: daterangekey
      description: 'Time granularity for crash data aggregation. Values: D (daily), H (hourly), H3 (every 3 hours), H6 (every 6 hours)'
      in: query
      required: true
      schema:
        type: string
      example: H6
    timezone:
      name: timezone
      description: 'Timezone for crash data aggregation.(e.g., "America/New_York", "Asia/Tokyo")'
      in: query
      required: true
      schema:
        type: string
      example: Asia/Kolkata
    uniqueid:
      name: uniqueid
      description: 'Unique identifier of a crash, can be obtained from crash list API'
      required: true
      in: path
      schema:
        type: string
      example: 1000002
  schemas:
    AppVersion:
      description: 'App version in which the crash has occured'
      type: string
      example: '1.1'
    Status:
      type: integer
      example: 0
    Screen:
      type: string
      example: 'com.example.apptics.LaunchActivity'
    NetworkStatus:
      type: string
      example: '0'
    devicecount:
      type: integer
      example: 40
    SessionStartTime:
      type: integer
      example: '1756103532557'
    UserID:
      type: string
      example: 'xxx'
    JAnalyticsVersion:
      type: string
      example: '0.3.0'
    IssueName:
      type: string
      example: '\t at android.os.BinderProxy.transactNative'
    usercount:
      type: integer
      example: 1
    OSVersion:
      type: string
      example: "13"
    AppReleaseVersion:
      type: string
      example: 10
    HappenedAt:
      type: string
      example: "1756103547891"
    CustomProperties:
      type: string
      example: "{}"
    DeviceID:
      type: string
      example: "214568"
    BundleName:
      type: string
      example: 'com.example.apptics'
    issuecount:
      type: integer
      example: 17
    Orientation:
      type: string
      example: 'portrait'
    InsertTime:
      type: integer
      example: 1756103532557
    crashescount:
      type: integer
      example: 320
    BatteryStatus:
      type: integer
      example: 80
    Model:
      type: string
      example: "Samsung A07"
    Edge:
      type: string
      example: "Unknown"
    ExceptionType:
      type: integer
      example: native
    OS:
      type: string
      example: Android
    CrashCount:
      type: string
      example: 2
    UsersCount:
      type: string
      example: 1
    UniqueMessageID:
      type: string
      example: 2142098799
    AppVersionID:
      type: integer
      example: 2143879324
    DevicesCount:
      type: string
      example: 10
    PID:
      type: integer
      example: 21420988791
    Exception:
      type: string
      example: "Stacktrace of the crash"
    userscount:
      type: integer
      example: 49
    issuescount:
      type: integer
      example: 53
    devicescount:
      type: integer
      example: 67
    appversioncount:
      type: integer
      example: 0
    crash_list_response:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              AppVersion:
                $ref: '#/components/schemas/AppVersion'
              Status:
                $ref: '#/components/schemas/Status'
              UniqueMessageID:
                $ref: '#/components/schemas/UniqueMessageID'
              AppVersionID:
                $ref: '#/components/schemas/AppVersionID'
              PID:
                $ref: '#/components/schemas/PID'
              ExceptionType:
                $ref: '#/components/schemas/ExceptionType'
              OS:
                $ref: '#/components/schemas/OS'
              CrashCount:
                $ref: '#/components/schemas/CrashCount'
              UsersCount:
                $ref: '#/components/schemas/UsersCount'
              DevicesCount:
                $ref: '#/components/schemas/DevicesCount'
              Exception:
                $ref: '#/components/schemas/Exception'
        status:
          type: string
          example: success
    crash_count_by_date_response:
      type: object
      properties:
        data:
          type: object
          properties:
            android:
              type: object
              properties:
                crashcount:
                  type: object
                  properties:
                    1755973800000:
                      type: integer
                      example: 101
                issuecount:
                  type: object
                  properties:
                    1755973800000:
                      type: integer
                      example: 24
                devicecount:
                  type: object
                  properties:
                    1755973800000:
                      type: integer
                      example: 11
                usercount:
                  type: object
                  properties:
                    1755973800000:
                      type: integer
                      example: 3
        status:
          type: string
          example: success
    crash_summary_response:
      type: object
      properties:
        data:
          type: object
          properties:
            precrashcount:
              type: object
              properties:
                appversioncount:
                  $ref: '#/components/schemas/appversioncount'
                userscount:
                  $ref: '#/components/schemas/userscount'
                issuescount:
                  $ref: '#/components/schemas/issuescount'
                crashescount:
                  $ref: '#/components/schemas/crashescount'
                devicescount:
                  $ref: '#/components/schemas/devicescount'
            crashescount:
              type: object
              properties:
                appversioncount:
                  $ref: '#/components/schemas/appversioncount'
                userscount:
                  $ref: '#/components/schemas/userscount'
                issuescount:
                  $ref: '#/components/schemas/issuescount'
                crashescount:
                  $ref: '#/components/schemas/crashescount'
                devicescount:
                  $ref: '#/components/schemas/devicescount'
            crashfreeusers:
              type: integer
              example: 93
            crashfreedevices:
              type: integer
              example: 83
        status:
          type: string
          example: success
    crash_detail_response:
      type: object
      properties:
        data:
          type: object
          properties:
            date:
              type: string
              example: "Aug 01, 12:02:36"
            ExceptionType:
              $ref: '#/components/schemas/ExceptionType'
            Message:
              $ref: '#/components/schemas/Exception'
            Screen:
              $ref: '#/components/schemas/Screen'
            NetworkStatus:
              $ref: '#/components/schemas/NetworkStatus'
            devicecount:
              $ref: '#/components/schemas/devicecount'
            SessionStartTime:
              $ref: '#/components/schemas/SessionStartTime'
            AppVersion:
              $ref: '#/components/schemas/AppVersion'
            UserID:
              $ref: '#/components/schemas/UserID'
            JAnalyticsVersion:
              $ref: '#/components/schemas/JAnalyticsVersion'
            IssueName:
              $ref: '#/components/schemas/IssueName'
            usercount:
              $ref: '#/components/schemas/usercount'
            OSVersion:
              $ref: '#/components/schemas/OSVersion'
            UniqueMessageID:
              $ref: '#/components/schemas/UniqueMessageID'
            AppReleaseVersion:
              $ref: '#/components/schemas/AppReleaseVersion'
            HappenedAt:
              $ref: '#/components/schemas/HappenedAt'
            CustomProperties:
              $ref: '#/components/schemas/CustomProperties'
            OS:
              $ref: '#/components/schemas/OS'
            DeviceID:
              $ref: '#/components/schemas/DeviceID'
            BundleName:
              $ref: '#/components/schemas/BundleName'
            issuecount:
              $ref: '#/components/schemas/issuecount'
            PID:
              $ref: '#/components/schemas/PID'
            Orientation:
              $ref: '#/components/schemas/Orientation'
            AppVersionID:
              $ref: '#/components/schemas/AppVersionID'
            InsertTime:
              $ref: '#/components/schemas/InsertTime'
            crashescount:
              $ref: '#/components/schemas/crashescount'
            BatteryStatus:
              $ref: '#/components/schemas/BatteryStatus'
            Model:
              $ref: '#/components/schemas/Model'
            Edge:
              $ref: '#/components/schemas/Edge'
        status:
          type: string
          example: success
    crashes_by_model_response:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              Model:
                $ref: '#/components/schemas/Model'
              Count:
                type: string
                example: '30'
        status:
          type: string
          example: success 
    crashes_by_os_response:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              OSVersion:
                type: string
                example: '13'
              Count:
                type: string
                example: '100'
        status:
          type: string
          example: success
    affected_devices_response:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              AppVersion:
                $ref: '#/components/schemas/AppVersion'
              UserID:
                $ref: '#/components/schemas/UserID'
              DeviceID:
                $ref: '#/components/schemas/DeviceID'
              Model:
                $ref: '#/components/schemas/Model'
              OSVersion:
                $ref: '#/components/schemas/OSVersion'
              HappenedAt:
                $ref: '#/components/schemas/HappenedAt'
              Date:
                type: integer
                example: 1756175011078
        status:
          type: string
          example: success
    unique_crash_count_by_date_response:
      type: object
      properties:
        data:
          type: object
          properties:
            crashcount:
              type: object
              properties:
                1755973800000:
                  type: integer
                  example: 101
            issuecount:
              type: object
              properties:
                1755973800000:
                  type: integer
                  example: 24
            devicecount:
              type: object
              properties:
                1755973800000:
                  type: integer
                  example: 11
            usercount:
              type: object
              properties:
                1755973800000:
                  type: integer
                  example: 3
        status:
          type: string
          example: success
  securitySchemes:
    Zoho_Auth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: 'https://accounts.zoho.com/oauth/v2/auth'
          scopes:
            JProxy.jmobileapi.ALL: 'Analytics & Insight view'
