Crashsight OpenAPI
  1. Crash/Exception Analysis
Crashsight OpenAPI
  • API Reference
    • Introduction
    • Overview Statistics
      • Get hourly top issue list
      • Get trend data for the last N days
      • Get overview of data analysis for a single day, including crash, ANR and error
      • Get cumulative trend data
      • Get top issue list
      • Get hourly trend data
    • Crash/Exception Analysis
      • To set issue-level tags.
        POST
      • Get device list based on stack keyword
        POST
      • Get crash user list within a specific time period
        POST
      • Get crash statistics based on stack keyword
        POST
      • Get crash Stat based on device ID
        POST
      • Get crashHash list based on issue ID
        POST
      • Get OpenId base on device ID
        POST
      • Get notes based on issue ID
        GET
      • Get issue details
        GET
      • Get the most recent crash hash based on issue ID
        GET
      • Get the list of crash hashes based on an issue ID
        POST
      • Get the trace data, trace logs, additional information, and custom key-value pairs
        GET
      • Get crash details
        GET
      • Get Issue list
        POST
    • Others
      • Get the list of versions, bundle, and handlers
      • Get the crash details based on OpenID
  1. Crash/Exception Analysis

Get the trace data, trace logs, additional information, and custom key-value pairs

GET
{{env}}/uniform/openapi/appDetailCrash{{signature}}
To get the trace data, trace logs, additional information, and custom key-value pairs
China Website: https://crashsight.qq.com
Overseas website: https://crashsight.wetest.net

Request

Query Params
appId
string 
optional
Project ID
platformId
integer 
optional
Platform ID
crashHash
string 
optional
crashHash
fsn
string 
optional
Request ID
Header Params
Content-Type
string 
required
Example:
application/json
Accept-Encoding
string 
required
Example:
*

Responses

🟢200成功
application/json
Body
status
integer 
required
ret
object 
required
attachName
string 
required
stackName
string 
required
attachList
array [object {3}] 
required
sysLogs
array[string]
required
userLogs
array[string]
required
Example
{
  "status": 200,
  "ret": {
    "attachName": "valueMapOthers.txt;log.txt;",
    "stackName": "FileObserver(202);main(1);FinalizerWatchdogDaemon(191);crashsightThread-1(200);OkHttp ConnectionPool(219);Signal Catcher(187);AsyncTask #3(196);Binder_2(193);crashsightThread-2(201);JDWP(188);AsyncTask #2(195);FinalizerDaemon(190);ReferenceQueueDaemon(189);crashsightThread-3(203);java.lang.ProcessManager(206);Thread-220(220);Binder_3(207);Binder_1(192);AsyncTask #1(194);GC(186);",
    "attachList": [
      {
        "fileName": "valueMapOthers.txt",
        "fileType": 3,
        "content": "A23:3.2.5;A24:Android 4.4.2,level 16;A25:hx6DLV78mm9ChnvC;F09:1;C03_testkey:testvalue;C04_APP_ID:a81f9c7e38;"
      },
      {
        "fileName": "log.txt",
        "fileType": 1,
        "content": "Report: stack frame :2, has cause false\n05-07 17:20:13.626  4883  5108 I CrashReport: try to upload right now\n05-07 17:20:13.626  4883  5108 D CrashReport: Uploading frequency will not be checked if SDK is in debug mode.\n05-07 17:20:13.626  4883  5108 D CrashReport: java.lang.RuntimeException rid:af4470df-c99f-4553-8c64-7c4cc44ecc44 sess:1264696e-5c31-4370-a7ac-f80e08352557 ls:5328s isR:false isF:true isM:false isN:false mc:0 ,null ,isUp:false ,vm:33\n"
      },
      {
        "fileName": "testkey",
        "fileType": 6,
        "content": "testvalue"
      },
      {
        "fileName": "APP_ID",
        "fileType": 7,
        "content": "a81f9c7e38"
      },
      {
        "fileName": "main(1)",
        "fileType": 2,
        "content": "android.os.MessageQueue.nativePollOnce(Native Method)\nandroid.os.MessageQueue.next(MessageQueue.java:138)\nandroid.os.Looper.loop(Looper.java:123)\nandroid.app.ActivityThread.main(ActivityThread.java:5019)\njava.lang.reflect.Method.invokeNative(Native Method)\njava.lang.reflect.Method.invoke(Method.java:515)\ncom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)\ncom.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)\ndalvik.system.NativeStart.main(Native Method)\n"
      },
      {
        "fileName": "GC(186)",
        "fileType": 2,
        "content": "dalvik.system.NativeStart.run(Native Method)\n"
      },
      {
        "fileName": "Signal Catcher(187)",
        "fileType": 2,
        "content": "dalvik.system.NativeStart.run(Native Method)\n"
      },
      {
        "fileName": "JDWP(188)",
        "fileType": 2,
        "content": "dalvik.system.NativeStart.run(Native Method)\n"
      },
      {
        "fileName": "ReferenceQueueDaemon(189)",
        "fileType": 2,
        "content": "java.lang.Object.wait(Native Method)\njava.lang.Object.wait(Object.java:364)\njava.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:130)\njava.lang.Thread.run(Thread.java:841)\n"
      },
      {
        "fileName": "FinalizerDaemon(190)",
        "fileType": 2,
        "content": "java.lang.Object.wait(Native Method)\njava.lang.Object.wait(Object.java:401)\njava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)\njava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)\njava.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)\njava.lang.Thread.run(Thread.java:841)\n"
      },
      {
        "fileName": "FinalizerWatchdogDaemon(191)",
        "fileType": 2,
        "content": "java.lang.VMThread.sleep(Native Method)\njava.lang.Thread.sleep(Thread.java:1013)\njava.lang.Thread.sleep(Thread.java:995)\njava.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:248)\njava.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:258)\njava.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:212)\njava.lang.Thread.run(Thread.java:841)\n"
      },
      {
        "fileName": "Binder_1(192)",
        "fileType": 2,
        "content": "dalvik.system.NativeStart.run(Native Method)\n"
      },
      {
        "fileName": "Binder_2(193)",
        "fileType": 2,
        "content": "dalvik.system.NativeStart.run(Native Method)\n"
      },
      {
        "fileName": "AsyncTask #1(194)",
        "fileType": 2,
        "content": "java.lang.Object.wait(Native Method)\njava.lang.Thread.parkFor(Thread.java:1205)\nsun.misc.Unsafe.park(Unsafe.java:325)\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:157)\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\njava.lang.Thread.run(Thread.java:841)\n"
      },
      {
        "fileName": "AsyncTask #2(195)",
        "fileType": 2,
        "content": "java.lang.Object.wait(Native Method)\njava.lang.Thread.parkFor(Thread.java:1205)\nsun.misc.Unsafe.park(Unsafe.java:325)\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:157)\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\njava.lang.Thread.run(Thread.java:841)\n"
      },
      {
        "fileName": "AsyncTask #3(196)",
        "fileType": 2,
        "content": "java.lang.Object.wait(Native Method)\njava.lang.Thread.parkFor(Thread.java:1205)\nsun.misc.Unsafe.park(Unsafe.java:325)\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:157)\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\njava.lang.Thread.run(Thread.java:841)\n"
      },
      {
        "fileName": "crashsightThread-1(200)",
        "fileType": 2,
        "content": "java.lang.Object.wait(Native Method)\njava.lang.Thread.parkFor(Thread.java:1205)\nsun.misc.Unsafe.park(Unsafe.java:325)\njava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2056)\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1062)\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:778)\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\njava.lang.Thread.run(Thread.java:841)\n"
      },
      {
        "fileName": "crashsightThread-2(201)",
        "fileType": 2,
        "content": "java.lang.Object.wait(Native Method)\njava.lang.Thread.parkFor(Thread.java:1205)\nsun.misc.Unsafe.park(Unsafe.java:325)\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:157)\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1057)\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:778)\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\njava.lang.Thread.run(Thread.java:841)\n"
      }
    ],
    "sysLogs": [
      "Report: stack frame :2, has cause false",
      "05-07 17:20:13.626  4883  5108 I CrashReport: try to upload right now",
      "05-07 17:20:13.626  4883  5108 D CrashReport: Uploading frequency will not be checked if SDK is in debug mode.",
      "05-07 17:20:13.626  4883  5108 D CrashReport: java.lang.RuntimeException rid:af4470df-c99f-4553-8c64-7c4cc44ecc44 sess:1264696e-5c31-4370-a7ac-f80e08352557 ls:5328s isR:false isF:true isM:false isN:false mc:0 ,null ,isUp:false ,vm:33",
      "05-07 17:20:13.646  4883  5108 D dalvikvm: GC_FOR_ALLOC freed 494K, 54% free 4512K/9704K, paused 4ms, total 4ms",
      "05-07 17:20:13.646  4883  5108 D CrashReport: [UploadManager] Add upload task (pid=4883 | tid=5108)",
      "05-07 17:20:13.646  4883  5108 D CrashReport: [UploadManager] Sucessfully got session ID, try to execute upload task now (pid=4883 | tid=5108)"
    ],
    "userLogs": [
      ""
    ]
  }
}
Previous
Get the list of crash hashes based on an issue ID
Next
Get crash details
Built with