We use cookies to ensure you get the best user experience on our website.Find Out More

Shakebug is a mobile application bug reporting and feedback platform. It allows mobile app developers to easily gather feedback and bug reports from their testers and users, Also includes a suite of tools for analyzing crash reports. The platform supports iOS, Android and React-Native platforms.

Some of the features offered by Shakebug:

Bug Reporting: Allows users reports bug and crash directly from within the app which include a screenshot, screen recording, and device information.

Crash reporting: Automatically captures and reports crashes as they happen, with detailed stack traces and device information using our AI.

User sessions: Records and replays user sessions to help developers understand how users are interacting with their app.

Analytics: Along with bugs and crash reporting, Shakebug analyzes the application usage in different ways like session, language, countries etc. It also allows users to check analytics in the form of graphical representation over the selection period of time.

Events: Developers can add custom events and values for each action of the application easily where they want. In addition to this, users can also check the session of each event and value in graphical form as well.

Integrations: Shakebug can be integrated with other tools such as Trello, Asana, Slack, Wrike, Monday and Jira to help streamline the workflow for any software company.

Collaboration: Allows team members to communicate and collaborate in real-time through comments and notifications via email.

SDK: Shakebug also provides a SDK that can be integrated with the app, which can be used to enable the above-mentioned features. Once Shakebug is integrated, it can be easily triggered by users by shaking their device, hence the name Shake to send bug report.

Shakebug’s goal is to provide developers with all the information they need to understand and fix bugs and crashes, it aims to make the debugging process faster and more efficient by providing detailed information and context on the events leading up to the crash.

API

Shakebug provides a RESTful API that allows developers to access and manipulate data on the platform, such as adding bug and crashes. The Shakebug API is a powerful tool that can be used to automate and integrate Shakebug with other applications and services, and to build custom tools and integrations.

First step is to generate APP key using next section.

Managing your APP Key

Shakebug is a mobile application debugging and feedback platform that uses Auth Token for authentication. To access the Shakebug API, developers will need to obtain an APP Key and by using that APP Key developer can generate Access Token. The process of Generating App Key requires several steps:

1. Login to your shakebug account.

2. Find the “Developer” menu by clicking on user icon on right-top icon. See the attached image:



3. Click “CREATE A NEW APP” and create your first app.



4. Give appropriate name




5. Click Generate

6. It will generate key.

Let’s copy your App key and save it at safe place.



Note

This “App Key” will be used for each request you make, to identify who you are. With this App Key, you'll be ready to start calling Shakebug API.



Authentication

In order to access the Shakebug API, developers will need to use an authentication token. The Shakebug API uses a combination of APP key and OAuth tokens for authentication.

OAuth is an open standard for token-based authentication and authorization. This method allows your users to grant your application access to their Shakebug accounts, so you can perform actions on their behalf.

Once you have an access token, you can include it in the Authorization header of your requests to the API.

For implementing Shakebug API in your project, follows below steps:


1. Requesting authorization Token

To start the authorization process, the user should click on the link in your application that will direct him to the following URL:

 https://app.shakebug.com/authorize?key=<APP_Key>&&return_url=<return_url>

Please replace APP_KEY with your secret APP key, which can be found in your Shakebug website -> developer->App_key

PARAMETER REQUIRED DESCRIPTION
key Required The App-Key you obtained in the Initial Setup while create app from developer tab.
return_url Required URL where the response will be redirected. We assume that you have a working web server with a public address that can correctly handle Shakebug requests.
2. Handling authorization Token

After clicking the authorization URL from the first step, the user is redirected to the Shakebug login page (if they aren't already logged in).

The user will be asked to enter the email and password they use to log in to Shakebug and then click Login.

After login, the user should be prompted with the following screen:



If the user grants access on the consent page, then they will be redirected to the redirect_url with the token parameter set to the access token.

Once you click Allow you'll grant your own app (identified via your APP key) access to your account and they will be redirected to the redirect_url with the token parameter set to the access token.

This token along with your API key can be used to read and write for your entire Shakebug account. Make sure Tokens should be kept secret!


Here's an example of how to retrieve a list of projects from your Shakebug account:

Get project

Return list of projects.

 
    GET             https://app.shakebug.com/projects?key=<your app key>
    Authorization   Bearer <Your access token> 

 
                        
                        

<?php              

  $curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://app.shakebug.com/projects?key=<your App key>", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer <your access token>" ], ]); $response = curl_exec($curl); $err = curl_error($curl);
curl_close($curl);
if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ?>
Response
 
    {             
        "status": 200,
        "data": {
            "projects":[
                {
                    "id": "ZOqPZJpasBxK5c8MRr5px9rtfg",
                    "name": "test ",
                    "platform": "iOS"
                }
            ]
        }
    }
 

Add Bug

Add bug in specific project.

 
    POST             https://app.shakebug.com/bug
    Authorization   Bearer <Your access token> 

PARAMETER TYPE PLATFORM REQUIRED DESCRIPTION
project String All Required The ID of the Projet.
description String All Required The Description of bug.
bugtypes String All Required Type of bug(either bug or crashed)
email String All Optional Email of user that you want attach with this bug.
batteryLevel String Ios, Android Optional Battery level of device from which bug is reported.
memory String Ios, Android Optional Memory of device from which bug is reported.
devicemodel String Ios, Android Optional Device model of device from which bug is reported.
batteryLevel String Ios, Android Optional Battery level of device from which bug is reported.
osversion String Ios, Android Optional Os version of device from which bug is reported.
internettype String Ios, Android Optional Type of Mobile network.
browser_name String Web Optional Name of browser from which bug is reported.
browser_full_version String Web Optional Full version of browser.
browser_user_agent String Web Optional User agent of browser.
browser_language String Web Optional Name of browser from which bug is reported.
browser_platform String Web Optional Browser’s platform.
browser_height String Web Optional Height of browser.
browser_width String Web Optional Width of browser.
is_web Int ALL Required Possible value 1 or 0. If your project’s platform is web then value of is_web parameter will be 1 otherwise 0.

                        
                        
<?php

  $curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://app.shakebug.com/bug", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\n \"project\" : \"YWjbqL7xzhFIVBMYvwMJzR-NaQ\",\n \"description\" : \"test bug\",\n \"bugtypes\" : \"bug\"\n}", CURLOPT_HTTPHEADER => [ "Authorization: Bearer <your access token>" "content-type: application/json" ], ]); $response = curl_exec($curl); $err = curl_error($curl);
curl_close($curl);
if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ?>
Response
 
{             
    "status": 200,
    "data": {
        "bug_id": "u9mfXevbBDwyYz9zZ0_dKNhmeC1B"
    }
}

Add Attachment

If you task need any image or video then after adding bug you need to call following /attachment API.

 
    POST             https://app.shakebug.com/bug/attachment
    Authorization   Bearer <Your access token> 


This request uses multipart/form-data as the content type.

PARAMETER TYPE PLATFORM REQUIRED DESCRIPTION
bug_id String All Required The id of the bug where the file will be added.
attachment File All Required The file to upload..

                        
                        
<?php
  $curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL =>'https://app.shakebug.com/bug/attachment', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => array('bug_id' => 'Hlmbb7hsmjfBopiS2t9_WWGK2LXu','attachment'=> new CURLFILE('<Your local image path>')), CURLOPT_HTTPHEADER => [ "Authorization: Bearer <your access token>" ], ]); $response = curl_exec($curl); $err = curl_error($curl);
curl_close($curl);
if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ?>
Response
 
{             
    "status": 200,
    "data": {
        "bug_id": "fcp8ThCjkv3hTE011xvVi0xCAsTfYFLe7kgMEqO2iquyA-PFc_jrOaT0_R8"
    }
}