Skip to content
View as Markdown

ClientReportService

GetIssue

Request: bitdrift.public.unary.client_report.v1.GetIssueRequest

Response: bitdrift.public.unary.client_report.v1.GetIssueResponse

Example CURL

Bash
curl -X POST https://api.bitdrift.io/bitdrift.public.unary.client_report.v1.ClientReportService/GetIssue \
  -H "x-bitdrift-api-key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "b5bb9d80-14a0-f9b1-d61e-21e796d78dcc",
  "issue_group_id": "11937913729565882410"
}'

Example Response

JSON
{
  "issue": {
    "app_id": "com.example.app",
    "app_version": "2.1.0",
    "build_id": "1024",
    "context": "alloc::alloc::handle_alloc_error",
    "details": "Attempted to dereference a null pointer",
    "foreground": false,
    "id": "b5bb9d80-14a0-f9b1-d61e-21e796d78dcc",
    "locale": "en_US",
    "model": "iPhone15,2",
    "network_type": "wifi",
    "platform": {
      "apple": {
        "apps": [
          {
            "app_id": "com.example.app"
          }
        ]
      }
    },
    "radio_type": "LTE",
    "reason": "EXC_BAD_ACCESS",
    "report": {
      "app_metrics": {
        "app_id": "com.example.app",
        "bundle_version": "1024",
        "version": "2.1.0"
      },
      "device_metrics": {
        "architecture": "ARM64",
        "battery_level": 72,
        "manufacturer": "Apple",
        "model": "iPhone15,2",
        "os": "iOS",
        "os_version": "17.4.1",
        "power_state": "RUNNING_ON_BATTERY",
        "time": "2024-01-15T09:30:00Z",
        "user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      },
      "errors": [
        {
          "details": "Attempted to dereference a null pointer",
          "frames": [
            {
              "frame_address": 4376830024,
              "frame_type": "DWARF",
              "image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
              "image_load_address": 4376829952,
              "image_path": "/usr/lib/libSystem.dylib",
              "in_app": false,
              "original_index": 3,
              "source_file": {
                "column": 5,
                "lineno": 42,
                "path": "src/main.rs"
              },
              "state": [
                "crashed"
              ],
              "status": "SYMBOLICATED",
              "symbol_address": 4376829952,
              "symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
              "symbolicated_name": "alloc::alloc::handle_alloc_error"
            }
          ],
          "reason": "EXC_BAD_ACCESS"
        }
      ],
      "fields": [
        {
          "key": "device_orientation",
          "value": "portrait"
        }
      ],
      "thread_details": {
        "threads": [
          {
            "active": true,
            "frames": [
              {
                "frame_address": 4376830024,
                "frame_type": "DWARF",
                "image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
                "image_load_address": 4376829952,
                "image_path": "/usr/lib/libSystem.dylib",
                "in_app": false,
                "original_index": 3,
                "source_file": {
                  "column": 5,
                  "lineno": 42,
                  "path": "src/main.rs"
                },
                "state": [
                  "crashed"
                ],
                "status": "SYMBOLICATED",
                "symbol_address": 4376829952,
                "symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
                "symbolicated_name": "alloc::alloc::handle_alloc_error"
              }
            ],
            "index": 0,
            "name": "com.apple.main-thread",
            "priority": 47.0,
            "quality_of_service": 33,
            "state": "TH_STATE_WAITING"
          }
        ],
        "total_threads": 12
      }
    },
    "report_type": "crash",
    "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "time": "2024-01-15T09:30:00Z"
  },
  "status": "FOUND"
}

GetIssueFeatureFlags

Request: bitdrift.public.unary.client_report.v1.GetIssueFeatureFlagsRequest

Response: bitdrift.public.unary.client_report.v1.GetIssueFeatureFlagsResponse

Example CURL

Bash
curl -X POST https://api.bitdrift.io/bitdrift.public.unary.client_report.v1.ClientReportService/GetIssueFeatureFlags \
  -H "x-bitdrift-api-key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
  "issue_id": "11937913729565882410"
}'

Example Response

JSON
{
  "feature_flags": [
    {
      "modified_at": "2024-01-15T09:30:00Z",
      "name": "Resolved in v2.2.0",
      "variant": "user@example.com"
    }
  ]
}

GetIssueGroup

Request: bitdrift.public.unary.client_report.v1.GetIssueGroupRequest

Response: bitdrift.public.unary.client_report.v1.GetIssueGroupResponse

Example CURL

Bash
curl -X POST https://api.bitdrift.io/bitdrift.public.unary.client_report.v1.ClientReportService/GetIssueGroup \
  -H "x-bitdrift-api-key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "com.example.app",
  "issue_query": {
    "advanced_filters": {
      "and_conditions": [
        {
          "or_conditions": [
            {
              "lhs": "app_id",
              "operator": "EQUAL",
              "rhs": "com.example.app"
            }
          ]
        }
      ]
    },
    "feature_flag_filters": [
      {
        "exclusive": false,
        "name": "EXC_BAD_ACCESS",
        "variant": "null pointer"
      }
    ],
    "grouping_key": [
      "EXC_BAD_ACCESS"
    ],
    "platforms": [
      {
        "apple": {
          "apps": [
            {
              "app_id": "com.example.app"
            }
          ]
        }
      }
    ],
    "time_range": {
      "relative_time_range": {
        "duration": "3600s",
        "offset": "3600s"
      }
    }
  }
}'

Example Response

JSON
{
  "issue_group": {
    "assignees": [
      {
        "email": "user@example.com",
        "id": "usr_abc123",
        "name": "Jane Doe"
      }
    ],
    "filtered_stats": {
      "events": [
        {
          "count": 42,
          "period_start": "2024-01-15T09:30:00Z"
        }
      ],
      "first_report_seen": "2024-01-15T09:30:00Z",
      "first_seen": "2024-01-15T09:30:00Z",
      "last_seen": "2024-01-15T09:30:00Z",
      "session_count": 42,
      "user_count": 42
    },
    "id": "11937913729565882410",
    "metadata": {
      "context": "alloc::alloc::handle_alloc_error",
      "details": "Attempted to dereference a null pointer",
      "platform": {
        "apple": {
          "apps": [
            {
              "app_id": "com.example.app"
            }
          ]
        }
      },
      "reason": "KERN_INVALID_ADDRESS",
      "type": "EXC_BAD_ACCESS"
    },
    "platform": [
      {
        "apple": {
          "apps": [
            {
              "app_id": "com.example.app"
            }
          ]
        }
      }
    ],
    "stats": {
      "events": [
        {
          "count": 42,
          "period_start": "2024-01-15T09:30:00Z"
        }
      ],
      "first_report_seen": "2024-01-15T09:30:00Z",
      "first_seen": "2024-01-15T09:30:00Z",
      "last_seen": "2024-01-15T09:30:00Z",
      "session_count": 42,
      "user_count": 42
    },
    "status": "NEW",
    "version": "2.1.0"
  }
}

ListIssueGroups

Request: bitdrift.public.unary.client_report.v1.ListIssueGroupsRequest

Response: bitdrift.public.unary.client_report.v1.ListIssueGroupsResponse

Example CURL

Bash
curl -X POST https://api.bitdrift.io/bitdrift.public.unary.client_report.v1.ClientReportService/ListIssueGroups \
  -H "x-bitdrift-api-key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
  "issue_group_query": {
    "assignee": [
      {
        "email": "user@example.com",
        "id": "usr_abc123",
        "name": "Jane Doe"
      }
    ],
    "issue_group_status": [
      "NEW"
    ]
  },
  "issue_query": {
    "advanced_filters": {
      "and_conditions": [
        {
          "or_conditions": [
            {
              "lhs": "app_id",
              "operator": "EQUAL",
              "rhs": "com.example.app"
            }
          ]
        }
      ]
    },
    "feature_flag_filters": [
      {
        "exclusive": false,
        "name": "EXC_BAD_ACCESS",
        "variant": "null pointer"
      }
    ],
    "grouping_key": [
      "EXC_BAD_ACCESS"
    ],
    "platforms": [
      {
        "apple": {
          "apps": [
            {
              "app_id": "com.example.app"
            }
          ]
        }
      }
    ],
    "time_range": {
      "relative_time_range": {
        "duration": "3600s",
        "offset": "3600s"
      }
    }
  },
  "limit": 25,
  "offset": 1,
  "sort_by": [
    {
      "direction": "ASC",
      "field": "field_name"
    }
  ]
}'

Example Response

JSON
{
  "issue_groups": [
    {
      "assignees": [
        {
          "email": "user@example.com",
          "id": "usr_abc123",
          "name": "Jane Doe"
        }
      ],
      "filtered_stats": {
        "events": [
          {
            "count": 42,
            "period_start": "2024-01-15T09:30:00Z"
          }
        ],
        "first_report_seen": "2024-01-15T09:30:00Z",
        "first_seen": "2024-01-15T09:30:00Z",
        "last_seen": "2024-01-15T09:30:00Z",
        "session_count": 42,
        "user_count": 42
      },
      "id": "11937913729565882410",
      "metadata": {
        "context": "alloc::alloc::handle_alloc_error",
        "details": "Attempted to dereference a null pointer",
        "platform": {
          "apple": {
            "apps": [
              {
                "app_id": "com.example.app"
              }
            ]
          }
        },
        "reason": "KERN_INVALID_ADDRESS",
        "type": "EXC_BAD_ACCESS"
      },
      "platform": [
        {
          "apple": {
            "apps": [
              {
                "app_id": "com.example.app"
              }
            ]
          }
        }
      ],
      "stats": {
        "events": [
          {
            "count": 42,
            "period_start": "2024-01-15T09:30:00Z"
          }
        ],
        "first_report_seen": "2024-01-15T09:30:00Z",
        "first_seen": "2024-01-15T09:30:00Z",
        "last_seen": "2024-01-15T09:30:00Z",
        "session_count": 42,
        "user_count": 42
      },
      "status": "NEW",
      "version": "2.1.0"
    }
  ],
  "total_issue_groups": 42
}

ListIssues

Request: bitdrift.public.unary.client_report.v1.ListIssuesRequest

Response: bitdrift.public.unary.client_report.v1.ListIssuesResponse

Example CURL

Bash
curl -X POST https://api.bitdrift.io/bitdrift.public.unary.client_report.v1.ClientReportService/ListIssues \
  -H "x-bitdrift-api-key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
  "filters": [
    {
      "platform": {
        "value": [
          {
            "apple": {
              "apps": [
                {
                  "app_id": "com.example.app"
                }
              ]
            }
          }
        ]
      }
    }
  ],
  "issue_group_id": "11937913729565882410",
  "issue_query": {
    "advanced_filters": {
      "and_conditions": [
        {
          "or_conditions": [
            {
              "lhs": "app_id",
              "operator": "EQUAL",
              "rhs": "com.example.app"
            }
          ]
        }
      ]
    },
    "feature_flag_filters": [
      {
        "exclusive": false,
        "name": "EXC_BAD_ACCESS",
        "variant": "null pointer"
      }
    ],
    "grouping_key": [
      "EXC_BAD_ACCESS"
    ],
    "platforms": [
      {
        "apple": {
          "apps": [
            {
              "app_id": "com.example.app"
            }
          ]
        }
      }
    ],
    "time_range": {
      "relative_time_range": {
        "duration": "3600s",
        "offset": "3600s"
      }
    }
  },
  "limit": 25,
  "offset": 1,
  "sort_by": [
    {
      "direction": "ASC",
      "field": "field_name"
    }
  ]
}'

Example Response

JSON
{
  "issues": [
    {
      "app_id": "com.example.app",
      "app_version": "2.1.0",
      "build_id": "1024",
      "context": "alloc::alloc::handle_alloc_error",
      "details": "Attempted to dereference a null pointer",
      "foreground": false,
      "id": "b5bb9d80-14a0-f9b1-d61e-21e796d78dcc",
      "locale": "en_US",
      "model": "iPhone15,2",
      "network_type": "wifi",
      "platform": {
        "apple": {
          "apps": [
            {
              "app_id": "com.example.app"
            }
          ]
        }
      },
      "radio_type": "LTE",
      "reason": "EXC_BAD_ACCESS",
      "report": {
        "app_metrics": {
          "app_id": "com.example.app",
          "bundle_version": "1024",
          "version": "2.1.0"
        },
        "device_metrics": {
          "architecture": "ARM64",
          "battery_level": 72,
          "manufacturer": "Apple",
          "model": "iPhone15,2",
          "os": "iOS",
          "os_version": "17.4.1",
          "power_state": "RUNNING_ON_BATTERY",
          "time": "2024-01-15T09:30:00Z",
          "user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        },
        "errors": [
          {
            "details": "Attempted to dereference a null pointer",
            "frames": [
              {
                "frame_address": 4376830024,
                "frame_type": "DWARF",
                "image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
                "image_load_address": 4376829952,
                "image_path": "/usr/lib/libSystem.dylib",
                "in_app": false,
                "original_index": 3,
                "source_file": {
                  "column": 5,
                  "lineno": 42,
                  "path": "src/main.rs"
                },
                "state": [
                  "crashed"
                ],
                "status": "SYMBOLICATED",
                "symbol_address": 4376829952,
                "symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
                "symbolicated_name": "alloc::alloc::handle_alloc_error"
              }
            ],
            "reason": "EXC_BAD_ACCESS"
          }
        ],
        "fields": [
          {
            "key": "device_orientation",
            "value": "portrait"
          }
        ],
        "thread_details": {
          "threads": [
            {
              "active": true,
              "frames": [
                {
                  "frame_address": 4376830024,
                  "frame_type": "DWARF",
                  "image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
                  "image_load_address": 4376829952,
                  "image_path": "/usr/lib/libSystem.dylib",
                  "in_app": false,
                  "original_index": 3,
                  "source_file": {
                    "column": 5,
                    "lineno": 42,
                    "path": "src/main.rs"
                  },
                  "state": [
                    "crashed"
                  ],
                  "status": "SYMBOLICATED",
                  "symbol_address": 4376829952,
                  "symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
                  "symbolicated_name": "alloc::alloc::handle_alloc_error"
                }
              ],
              "index": 0,
              "name": "com.apple.main-thread",
              "priority": 47.0,
              "quality_of_service": 33,
              "state": "TH_STATE_WAITING"
            }
          ],
          "total_threads": 12
        }
      },
      "report_type": "crash",
      "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "time": "2024-01-15T09:30:00Z"
    }
  ],
  "total_issues": 42
}