NAV
shell php python java javascript ruby

Overview

Welcome to the Bugasura API! You can use our API to access Bugasura API endpoints, which can get information on various features exposed by the Bugasura product.

We have language bindings in Shell, PHP! You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

The below diagram pictorially depicts how each of the endpoint modules is connected and also summarizes the Bugasura API documentation page.

Authentication

The Bugasura API uses API keys to authenticate requests. You can view your API key in the your profile dashboard. We require you to sign up to obtain your API key in order use it in the API endpoints. You can get your API key from here.

We have merged both the API keys and Basic Auth authorization methods. We have placed an API Key in the request header.

Your API keys carry many privileges, so be sure to keep them secure! Do not share your API keys in publicly accessible areas such as GitHub, client-side code, and so forth.

Authentication to the API is performed via HTTP Basic Auth. Provide your API key as the basic Auth API key value. You do not need to provide either username or password.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Handling errors

Our Client libraries raise exceptions for many reasons, such as an invalid input, invalid no parameters, authentication errors, and network unavailability. We recommend writing code that gracefully handles all possible API exceptions.

Operations that result in an error due to a problem on the client's part (e.g. Invalid input) will standard 4xx codes. These 4xx standard HTTP error is sufficiently descriptive (more details in the last section).

In other cases, we will use the generic response code for client error, and the Bugasura API response will include an error entity that gives further details about the error, including an application error code and a human readable error description. An example format of this error entity is shown here.

For Eg: If a user is not the member of a given team, then we will get the below response:

{
    "message": "You do not have permission to perform this operation",
    "status": "UNAUTHORIZED"
}

The Bugasura API uses the following list of error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
404 Not Found -- The specified API endpoint could not be found.
500 Internal Server Error -- We had a problem with our server. Try again later.

USER MANAGEMENT

Teams

teams/list

curl  -H 'Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' \
    -H 'Accept: application/json' \
    -X GET 'https://api.bugasura.io/teams/list?get_invite_accepted_teams_only=1&start_at=0&max_results=10'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/teams/list?get_invite_accepted_teams_only=1&start_at=0&max_results=10');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    'Accept': 'application/json',
}

params = {
    'get_invite_accepted_teams_only': '1',
    'start_at': '0',
    'max_results': '10',
}

response = requests.get('https://api.bugasura.io/teams/list', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/teams/list?get_invite_accepted_teams_only=1&start_at=0&max_results=10");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/teams/list?get_invite_accepted_teams_only=1&start_at=0&max_results=10', {
    headers: {
        'Authorization': 'Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("/teams/list?get_invite_accepted_teams_only=1&start_at=0&max_results=10")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Team list fetched successfully",
    "team_list": [
        {
            "team_id": 30321,
            "team_name": "My Projects",
            "owner_name": "John S",
            "owner_email_id": "john.s@gmail.com",
            "is_owner": 1,
            "is_admin": 1,
            "is_invitation_accepted": 1,
            "team_members_count": 5,
            "plan": "PRO",
            "subscription_end_date": "2031-10-25 23:59:59",
            "subscription_frequency": "YEARLY",
            "licences_allocated": "15",
            "licences_available": "6",
            "standard_status_list": "[{\"name\":\"New\",\"type\":\"new\",\"color\":\"#1ab651\",\"order\":1,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"To DO\",\"type\":\"new\",\"color\":\"#00C39E\",\"order\":2,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"In Progress\",\"color\":\"#f9af2d\",\"type\":\"in-progress\",\"order\":3,\"github_magic_words\":\"\",\"github_actions\":\"New Branch,New Pull Request,Merge Request\",\"assignee_ids\":\"\"},{\"name\":\"Fixed\",\"type\":\"in-progress\",\"color\":\"#3e60df\",\"order\":4,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"Not Fixed\",\"type\":\"in-progress\",\"color\":\"#905fec\",\"order\":5,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"Released\",\"type\":\"in-progress\",\"color\":\"#0091ff\",\"order\":6,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"In Review\",\"type\":\"in-progress\",\"color\":\"#FFC668\",\"order\":7,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"Cancelled\",\"type\":\"closed\",\"color\":\"#979797\",\"order\":8,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"Closed\",\"type\":\"closed\",\"color\":\"#2c2c2c\",\"order\":9,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"}]"
        },
        {
            "team_id": 36806,
            "team_name": "Product Team",
            "owner_name": "Alex T",
            "owner_email_id": "alex.t@gmail.com",
            "is_owner": 0,
            "is_admin": 0,
            "is_invitation_accepted": 1,
            "team_members_count": 3,
            "plan": "PRO",
            "subscription_end_date": "2031-10-25 23:59:59",
            "subscription_frequency": "MONTHLY",
            "licences_allocated": "10",
            "licences_available": "4",
            "standard_status_list": "[{\"name\":\"New\",\"type\":\"new\",\"color\":\"#1ab651\",\"order\":1,\"github_actions\":\"New Branch,Merge Request\",\"github_magic_words\":\"New,Re-open\"},{\"name\":\"In Progress\",\"type\":\"in-progress\",\"color\":\"#f9af2d\",\"order\":2,\"github_actions\":\"\",\"github_magic_words\":\"Picked,In Progress\"},{\"name\":\"Fixed\",\"type\":\"in-progress\",\"color\":\"#3e60df\",\"order\":3,\"github_actions\":\"\",\"github_magic_words\":\"Fixed,Done\"},{\"name\":\"Not Fixed\",\"type\":\"in-progress\",\"color\":\"#905fec\",\"order\":4,\"github_actions\":\"\",\"github_magic_words\":\"Not Fixed,Not Done\"},{\"name\":\"Released\",\"type\":\"in-progress\",\"color\":\"#0091ff\",\"order\":5,\"github_actions\":\"\",\"github_magic_words\":\"Released\"},{\"name\":\"Cancelled\",\"type\":\"closed\",\"color\":\"#979797\",\"order\":6,\"github_actions\":\"\",\"github_magic_words\":\"Cancelled,Not required,Not an issue,Invalid\"},{\"name\":\"Closed\",\"type\":\"closed\",\"color\":\"#2c2c2c\",\"order\":7,\"github_actions\":\"\",\"github_magic_words\":\"Closed,Completed\"}]"
        }
    "nrows": 2,
    "total_rows": 2,
    "start_at": 0,
    "max_results": 10
}

This endpoint gets the list of team details.

HTTP Request

GET https://api.bugasura.io/teams/list

Query Parameters

Parameter Type Default Description
get_invite_accepted_teams_only Integer 1 Pass 1 to get the list of team details of which the team invitation is accepted. Else 0 to get both the accepted and invited team details.
start_at Integer 0 The index of the first item to return in a page of results.
max_results Integer 10 The maximum number of items to return per page. Max value is 100.

teams/get

curl -X GET \
    -H "Authorization: Basic <Your API_KEY goes here>" \
    -H 'Accept: application/json' \
    https://api.bugasura.io/teams/get?team_id=37064
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/teams/get?team_id=37064');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'team_id': '37064',
}

response = requests.get('https://api.bugasura.io/teams/get', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/teams/get?team_id=37064");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/teams/get?team_id=37064', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/teams/get?team_id=37064")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
    use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
    http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
        "status": "OK",
        "message": "Team details fetched successfully",
        "team_details": {
                "team_id": 37064,
                "team_name": "product_team",
                "owner_name": "Anbu S",
                "owner_email_id": "anbu123@gmail.com",
                "is_owner": 1,
                "is_admin": 1,
                "is_invitation_accepted": 1,
                "team_members_count": 3,
                "plan": "PRO",
                "subscription_end_date": "2031-10-25 23:59:59",
                "subscription_frequency": "YEARLY",
                "licences_allocated": "15",
                "licences_available": "11",
                "standard_status_list": "[{\"name\":\"New\",\"type\":\"new\",\"color\":\"#1ab651\",\"order\":1,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"To DO\",\"type\":\"new\",\"color\":\"#00C39E\",\"order\":2,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"In Progress\",\"color\":\"#f9af2d\",\"type\":\"in-progress\",\"order\":3,\"github_magic_words\":\"\",\"github_actions\":\"New Branch,New Pull Request,Merge Request\",\"assignee_ids\":\"\"},{\"name\":\"Fixed\",\"type\":\"in-progress\",\"color\":\"#3e60df\",\"order\":4,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"Not Fixed\",\"type\":\"in-progress\",\"color\":\"#905fec\",\"order\":5,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"Released\",\"type\":\"in-progress\",\"color\":\"#0091ff\",\"order\":6,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"In Review\",\"type\":\"in-progress\",\"color\":\"#FFC668\",\"order\":7,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"Cancelled\",\"type\":\"closed\",\"color\":\"#979797\",\"order\":8,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"},{\"name\":\"Closed\",\"type\":\"closed\",\"color\":\"#2c2c2c\",\"order\":9,\"github_actions\":\"\",\"github_magic_words\":\"\",\"assignee_ids\":\"\"}]"
        }
}

This API endpoint gets the details for the given team id.

HTTP Request

GET https://api.bugasura.io/teams/get

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team for which the details need to be obtained.

teams/add

curl -X POST \
    -H 'Authorization: Basic <Your API_KEY goes here>' \
    -H 'Accept: application/json' \
    -d 'team_name=product_team' \
    https://api.bugasura.io/teams/add
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/teams/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
    'Content-Type' => 'application/x-www-form-urlencoded',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'team_name=product_team');

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

data = {
    'team_name': 'product_team',
}

response = requests.post('https://api.bugasura.io/teams/add', headers=headers, data=data)
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/teams/add");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");
        httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        httpConn.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
        writer.write("team_name=product_team");
        writer.flush();
        writer.close();
        httpConn.getOutputStream().close();

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/teams/add', {
        method: 'POST',
        headers: {
                'Authorization': 'Basic <Your API_KEY goes here>',
                'Accept': 'application/json'
        },
        body: new URLSearchParams({
                'team_name': 'product_team'
        })
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/teams/add")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
    "team_name" => "product_team",
)

req_options = {
    use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
    http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

[
    {
        "status": "OK",
        "message": "Woohoo! You have created a new team!",
        "team_id": 37064,
        "team_name": "product_team"
    }
]

The API will allow you to create a team with the name of your choice.

HTTP Request

POST https://api.bugasura.io/teams/add

Query Parameters

Parameter Type Default Description
team_name* String Name of your team that you want to create.

teams/update

curl -X POST \
    -H "Authorization: Basic <Your API_KEY goes here>" \
    -H 'Accept: application/json' \
    -d 'team_id=37064&team_name=developer_team' \
    https://api.bugasura.io/teams/update
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/teams/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
    'Content-Type' => 'application/x-www-form-urlencoded',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'team_id=37064&team_name=developer_team');

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

data = {
    'team_id': '37064',
    'team_name': 'developer_team',
}

response = requests.post('https://api.bugasura.io/teams/update', headers=headers, data=data)
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/teams/update");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");
        httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        httpConn.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
        writer.write("team_id=37064&team_name=developer_team");
        writer.flush();
        writer.close();
        httpConn.getOutputStream().close();

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/teams/update', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: new URLSearchParams({
        'team_id': '37064',
        'team_name': 'developer_team'
    })
});
require 'net/http'
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/teams/update")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
    "team_id" => "37064",
    "team_name" => "developer_team",
)

req_options = {
    use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
    http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Team details updated successfully."
}

This API endpoint will allow you to update the name of the team.

HTTP Request

POST https://api.bugasura.io/teams/update

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team for which the name needs to be updated.
team_name* String New name for the team.

teams/delete

curl -X POST \
    -H "Authorization: Basic <Your API_KEY goes here>" \
    -H 'Accept: application/json' \
    -d 'team_id=37064' \
    https://api.bugasura.io/teams/delete
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/teams/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
    'Content-Type' => 'application/x-www-form-urlencoded',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'team_id=37064');

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

data = {
    'team_id': '37064',
}

response = requests.post('https://api.bugasura.io/teams/delete', headers=headers, data=data)
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/teams/delete");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");
        httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        httpConn.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
        writer.write("team_id=37064");
        writer.flush();
        writer.close();
        httpConn.getOutputStream().close();

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/teams/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: new URLSearchParams({
        'team_id': '37064'
    })
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/teams/delete")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
    "team_id" => "37064",
)

req_options = {
    use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
    http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "developer_team has been removed"
}

This API endpoint will allows the team admin to delete a given team.

HTTP Request

POST https://api.bugasura.io/teams/delete

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team which needs to be deleted.

Team Users

teamUsers/get

curl -X GET \
  -H "Authorization: Basic <Your API_KEY goes here>" \
  -H 'Accept: application/json' \
  https://api.bugasura.io/teamUsers/get?team_id=37064
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/teamUsers/get?team_id=37064');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'team_id': '37064',
}

response = requests.get('https://api.bugasura.io/teamUsers/get', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/teamUsers/get?team_id=37064");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/teamUsers/get?team_id=37064', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/teamUsers/get?team_id=37064")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status":"OK",
    "message":"Team users details fetched successfully",
    "team_users_details":[
        {
            "user_id":16247,
            "email_id":"john.s@gmail.com",
            "name":"John S",
            "team_name":"product_team",
            "plan":"PRO",
            "is_owner":1,
            "is_admin":1,
            "account_active":1
            "is_invitation_accepted":1
        },
        {
            "user_id":16248,
            "email_id":"alex.t@gmail.com",
            "name":"Alex T",
            "team_name":"product_team",
            "plan":"FREE",
            "is_owner":0,
            "is_admin":0,
            "account_active":1
            "is_invitation_accepted":0
        }
    ]
}

This API endpoint will list all the users for a given team.

HTTP Request

GET https://api.bugasura.io/teamUsers/get

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the users needs to be listed.

teamUsers/add

curl -X POST \
  -H "Authorization: Basic <Your API_KEY goes here>" \
  -H 'Accept: application/json' \
  -d 'team_id=37065,&email_id=anbu432@gmail.com' \
  https://api.bugasura.io/teamUsers/add
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/teamUsers/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
    'Content-Type' => 'application/x-www-form-urlencoded',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'team_id=37065,&email_id=anbu432@gmail.com');

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
    'Content-Type': 'application/x-www-form-urlencoded',
}

data = 'team_id=37065,&email_id=anbu432@gmail.com'

response = requests.post('https://api.bugasura.io/teamUsers/add', headers=headers, data=data)
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/teamUsers/add");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");
        httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        httpConn.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
        writer.write("team_id=37065,&email_id=anbu432@gmail.com");
        writer.flush();
        writer.close();
        httpConn.getOutputStream().close();

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/teamUsers/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    body: 'team_id=37065,&email_id=anbu432@gmail.com'
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/teamUsers/add")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
  "email_id" => "anbu432@gmail.com",
  "team_id" => "37065,",
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Invitation has been sent.",
    "team_count_details": {
        "licences_allocated": "10",
        "licences_available": 8
    },
    "added_team_users_details": [
        {
            "user_id": 16248,
            "email_id": "anbu432@gmail.com",
            "name": "Anbu432 "
        }
    ]
}

This API endpoint will invite user to given team.

HTTP Request

POST https://api.bugasura.io/teamUsers/add

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team for which the user needs to be invited.
email_id* String List of user's email ids to be invited. Each email id should be separated by a comma.

teamUsers/update

curl -X POST \
  -H "Authorization: Basic <Your API_KEY goes here>" \
  -H 'Accept: application/json' \
  -d 'team_id=37062&user_id=16247&is_admin=1' \
  https://api.bugasura.io/teamUsers/update
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/teamUsers/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
    'Content-Type' => 'application/x-www-form-urlencoded',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'team_id=37062&user_id=16247&is_admin=1');

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

data = {
    'team_id': '37062',
    'user_id': '16247',
    'is_admin': '1',
}

response = requests.post('https://api.bugasura.io/teamUsers/update', headers=headers, data=data)
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/teamUsers/update");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");
        httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        httpConn.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
        writer.write("team_id=37062&user_id=16247&is_admin=1");
        writer.flush();
        writer.close();
        httpConn.getOutputStream().close();

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/teamUsers/update', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: new URLSearchParams({
        'team_id': '37062',
        'user_id': '16247',
        'is_admin': '1'
    })
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/teamUsers/update")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
  "is_admin" => "1",
  "team_id" => "37062",
  "user_id" => "16247",
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Team users details updated successfully."
}

This API endpoint will allow the team admins to update the given team user as an admin or not.

HTTP Request

POST https://api.bugasura.io/teamUsers/update

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team for which the user needs to be updated.
user_id* Integer The ID of the user to be updated.
is_admin* Integer Pass 1 to make a user admin and 0 to make a user non-admin.

teamUsers/delete

curl -X POST \
  -H "Authorization: Basic <Your API_KEY goes here>" \
  -H 'Accept: application/json' \
  -d 'team_id=37064&user_id=16248' \
  https://api.bugasura.io/teamUsers/delete
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/teamUsers/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
    'Content-Type' => 'application/x-www-form-urlencoded',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'team_id=37064&user_id=16248');

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

data = {
    'team_id': '37064',
    'user_id': '16248',
}

response = requests.post('https://api.bugasura.io/teamUsers/delete', headers=headers, data=data)
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/teamUsers/delete");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");
        httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        httpConn.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
        writer.write("team_id=37064&user_id=16248");
        writer.flush();
        writer.close();
        httpConn.getOutputStream().close();

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/teamUsers/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: new URLSearchParams({
        'team_id': '37064',
        'user_id': '16248'
    })
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/teamUsers/delete")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
  "team_id" => "37064",
  "user_id" => "16248",
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "The user has been removed.",
    "team_count_details": {
        "licences_allocated": "10",
        "licences_available": 8
    }
}

This API endpoint will allow the user to leave a team and team admin to remove the given user from a team.

HTTP Request

POST https://api.bugasura.io/teamUsers/delete

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team from which the user needs to be removed.
user_id* Integer The ID of the user which need to be removed.

Projects

projects/list

curl -L -X GET 'https://api.bugasura.io/projects/list?team_id=36917&platform_type=Web&platform=Desktop' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/projects/list?team_id=36917&platform_type=Web&platform=Desktop');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'team_id': '36917',
    'platform_type': 'Web',
    'platform': 'Desktop',
}

response = requests.get('https://api.bugasura.io/projects/list', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/projects/list?team_id=36917&platform_type=Web&platform=Desktop");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/projects/list?team_id=36917&platform_type=Web&platform=Desktop', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/projects/list?team_id=36917&platform_type=Web&platform=Desktop")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Project list fetched successfully",
    "project_list": [
        {
            "project_id": 53307,
            "project_name": "My project Bugasura",
            "issue_prefix": "MYB",
            "platform_type": "Web",
            "platform": "Desktop",
            "public_link_url": null,
            "team_id": 36918,
            "team_name": "Team Bugasura",
            "status": "ACTIVE"
        },
        {
            "project_id": 53307,
            "project_name": "My project Bugasura Web",
            "issue_prefix": "MYFW",
            "platform_type": "Web",
            "platform": "Desktop",
            "public_link_url": null,
            "team_id": 36918,
            "team_name": "Team Bugasura",
            "status": "ACTIVE"
        },
        {
            "project_id": 53307,
            "project_name": "My project Bugasura App",
            "issue_prefix": "MYFA",
            "platform_type": "Web",
            "platform": "Desktop",
            "public_link_url": null,
            "team_id": 36918,
            "team_name": "Team Bugasura",
            "status": "ARCHIVE"
        }
    ],
    "nrows": 3,
    "total_rows": 3,
    "start_at": 0,
    "max_results": 10
}

This API end point will list all the projects for a given team and the query parameters.

HTTP Request

GET https://api.bugasura.io/projects/list

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the projects need to be listed.
search_text String A string to match (case-insensitive) against the project name.
start_at Integer The index of the first item to return in a page of results.
max_results Integer The maximum number of items to return per page. Max value is 100.
platform String Platform of the project like ('iOS','Android','Desktop','API','Multiple').
platform_type String Platform type of the project like ('Apps','Mobileweb','Web','API','Multiple').
status String Project status which can be either ACTIVE or ARCHIVE.

projects/get

curl -L -X GET 'https://api.bugasura.io/projects/get?team_id=36917' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/projects/get?team_id=36917');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'team_id': '36917',
}

response = requests.get('https://api.bugasura.io/projects/get', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/projects/get?team_id=36917");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/projects/get?team_id=36917', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/projects/get?team_id=36917")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Project details fetched Successfully",
    "projectDetails": [
        {
            "project_id": 53307,
            "project_name": "My project Bugasura",
            "issue_prefix": "MYB",
            "platform_type": "Web",
            "platform": "Desktop",
            "public_link_url": null,
            "team_id": 36918,
            "team_name": "Team Bugasura",
            "status": "ACTIVE",
            "custom_fields": [
                {
                    "field_id": 134,
                    "field_name": "user name"
                }
            ]
        }
    ]
}

This API end point will get the project details for a given team and the project.

HTTP Request

GET https://api.bugasura.io/projects/get

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the project details need to be obtained.
project_id* Integer ID of the project for which the details need to be obtained.

projects/add

curl -L -X POST 'https://api.bugasura.io/projects/add' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json' \
-F 'project_name="My first Project"' \
-F 'team_id="36917"' \
-F 'platform_type="Web"' \
-F 'platform="Desktop"'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/projects/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'project_name' => '"My first Project"',
    'team_id' => '"36917"',
    'platform_type' => '"Web"',
    'platform' => '"Desktop"',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'project_name': (None, '"My first Project"'),
    'team_id': (None, '"36917"'),
    'platform_type': (None, '"Web"'),
    'platform': (None, '"Desktop"'),
}

response = requests.post('https://api.bugasura.io/projects/add', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/projects/add");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        httpConn.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
        writer.write("project_name=my project&team_id=36913&is_public_issues=&is_public_project=&public_project_link=&platform_type=Web&platform=Desktop");
        writer.flush();
        writer.close();
        httpConn.getOutputStream().close();

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('project_name', '"My first Project"');
form.append('team_id', '"36917"');
form.append('platform_type', '"Web"');
form.append('platform', '"Desktop"');

fetch('https://api.bugasura.io/projects/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/projects/add")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
form_data = [['project_name', 'My first Project'],['team_id', '36917'],['platform_type', 'Web'],['platform', 'Desktop']]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Project created successfully",
    "team_id": "36917",
    "project_id": 53275,
    "project_name": "My first Project",
    "platform": "Desktop",
    "platform_type": "Web",
    "default_sprint": {
        "sprint_name": "My First Sprint",
        "sprint_id": 61446
    }
}

This API endpoint will create a project in a given team.

HTTP Request

POST https://api.bugasura.io/projects/add

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team in which the project needs to be created.
project_name* String Name of your project that you want to create.
platform String Multiple Platform of the project like ('iOS','Android','Desktop','API','Multiple').
platform_type String Multiple Platform type of the project like ('Apps','Mobileweb','Web','API','Multiple').
is_public_project Integer 0 By default project will be Private. Pass 1 to make a project Public.
is_public_issues Integer 0 By default all the issues created in a public project will be Private. Pass 1 to make all the issues in a public project Public. This parameter will not be effective for the Private project.
clean_public_project_name String Clean public project name without any special characters. This parameter is unique across Bugasura platform. This parameter will not be effective for the Private project.

projects/update

curl -L -X POST 'https://api.bugasura.io/projects/update' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json' \
-F 'team_id="36917"' \
-F 'project_id="53288"' \
-F 'issue_prefix="SDSWS"' \
-F 'project_name="My project Name"' \
-F 'clean_public_project_name="My_project_Name"' \
-F 'is_public_project="1"' \
-F 'is_public_issues="1"'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/projects/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'team_id' => '"36917"',
    'project_id' => '"53288"',
    'issue_prefix' => '"SDSWS"',
    'project_name' => '"My project Name"',
    'clean_public_project_name' => '"My_project_Name"',
    'is_public_project' => '"1"',
    'is_public_issues' => '"1"',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch);?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'team_id': (None, '"36917"'),
    'project_id': (None, '"53288"'),
    'issue_prefix': (None, '"SDSWS"'),
    'project_name': (None, '"My project Name"'),
    'clean_public_project_name': (None, '"My_project_Name"'),
    'is_public_project': (None, '"1"'),
    'is_public_issues': (None, '"1"'),
}

response = requests.post('https://api.bugasura.io/projects/update', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/projects/update");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('team_id', '"36917"');
form.append('project_id', '"53288"');
form.append('issue_prefix', '"SDSWS"');
form.append('project_name', '"My project Name"');
form.append('clean_public_project_name', '"My_project_Name"');
form.append('is_public_project', '"1"');
form.append('is_public_issues', '"1"');

fetch('https://api.bugasura.io/projects/update', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/projects/update")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
form_data = [['team_id', '36917'],['project_id', '53288'],['issue_prefix', 'SDSWS'],['project_name', 'My project Name'],['clean_public_project_name', 'ererwrwerewr'],['is_public_project', '1'],['is_public_issues', '1']]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Project details updated successfully"
}

This API endpoint will allow the team admins to update the project details.

HTTP Request

POST https://api.bugasura.io/projects/update

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team in which the project needs to be updated.
project_id* Integer ID of the project which needs to be updated.
project_name String New name for the project.
issue_prefix String New issue prefix for the issues in the project.
is_public_project Integer Pass 0 to make a project Private. Pass 1 to make a project Public.
is_public_issues Integer Pass 0 to make all the issues created Private in a public project. Pass 1 to make all the issues created Public in a public project. This parameter will not be effective for the Private project.
clean_public_project_name String New clean public project name without any special characters. This parameter is unique across Bugasura platform. This parameter will not be effective for the Private project.

Note: All the update field parameters cannot be empty. Only include the parameters which you want to update.

projects/delete

curl -L -X POST 'https://api.bugasura.io/projects/delete' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json' \
-F 'project_id="53288"' \
-F 'team_id="36917"'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/projects/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'project_id' => '"53288"',
    'team_id' => '"36917"',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch);?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'project_id': (None, '"53288"'),
    'team_id': (None, '"36917"'),
}

response = requests.post('https://api.bugasura.io/projects/delete', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/projects/delete");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('project_id', '"53288"');
form.append('team_id', '"36917"');

fetch('https://api.bugasura.io/projects/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/projects/delete")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
form_data = [['project_id', '53288'],['team_id', '36917']]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Project deleted successfully."
}

This API endpoint will allow a team admin to delete the project from a team.

HTTP Request

POST https://api.bugasura.io/projects/delete

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team from which the project needs to be deleted.
project_id* Integer The ID of the project which needs to be deleted.

Sprints

sprints/list

curl -L -X GET 'https://api.bugasura.io/sprints/list?project_id=53289&team_id=36917&search_text=&start_at=&max_results=' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/sprints/list?project_id=53289&team_id=36917&search_text=&start_at=&max_results=');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'project_id': '53289',
    'team_id': '36917',
    'search_text': '',
    'start_at': '',
    'max_results': '',
}

response = requests.get('https://api.bugasura.io/sprints/list', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/sprints/list?project_id=53289&team_id=36917&search_text=&start_at=&max_results=");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/sprints/list?project_id=53289&team_id=36917&search_text=&start_at=&max_results=', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/sprints/list?project_id=53289&team_id=36917&search_text=&start_at=&max_results=")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Sprint list fetched successfully",
    "sprintsList": [
        {
            "project_id": 53265,
            "project_name": "My Bugasura Project",
            "team_id": 36913,
            "platform": "Desktop",
            "platform_type": "Web",
            "sprint_id": 61389,
            "sprint_name": "My First sprint",
            "sprint_created": "2022-02-20 16:46:23",
            "start_date": 2022-02-20,
            "end_date": 2022-03-20,
            "sprint_status": "SCHEDULED",
        },
        {
            "project_id": 53265,
            "project_name": "My Bugasura Project",
            "team_id": 36913,
            "platform": "Desktop",
            "platform_type": "Web",
            "sprint_id": 61392,
            "sprint_name": "project test Sprint 15th Jun 6:33 pm",
            "sprint_created": "2022-06-10 16:46:23",
            "start_date": 2022-06-10,
            "end_date": 2022-06-20,
            "sprint_status": "SCHEDULED",
        }
    ],
    "nrows": 2,
    "total_rows": 2,
    "start_at": 0,
    "max_results": 10
}

This API end point will list all the sprints for a given team, project and the query parameters.

HTTP Request

GET https://api.bugasura.io/sprints/list

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the sprints needs to be listed.
project_id* Integer ID of the project for which the sprints needs to be listed.
search_text String A string to match (case-insensitive) against the sprint name.
start_at Integer The index of the first item to return in a page of results.
max_results Integer The maximum number of items to return per page. Max value is 100.

sprints/get

curl -L -X GET 'https://api.bugasura.io/sprints/get?project_id=53289&team_id=36917&sprint_id=61425' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/sprints/get?project_id=53289&team_id=36917&sprint_id=61425');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'project_id': '53289',
    'team_id': '36917',
    'sprint_id': '61425',
}

response = requests.get('https://api.bugasura.io/sprints/get', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/sprints/get?project_id=53289&team_id=36917&sprint_id=61425");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/sprints/get?project_id=53289&team_id=36917&sprint_id=61425', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/sprints/get?project_id=53289&team_id=36917&sprint_id=61425")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Sprint details fetched successfully",
    "sprintDetails": [
        {
            "project_id": 53242,
            "project_name": "MyProject",
            "team_id": 36913,
            "platform": "Desktop",
            "platform_type": "Web",
            "sprint_id": 61362,
            "sprint_name": "My First Sprint",
            "start_date": null,
            "end_date": null,
            "sprint_status": "SCHEDULED"
        }
    ]
}

This API end point will get the sprint details for a given team, project and the sprint.

HTTP Request

GET https://api.bugasura.io/sprints/get

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the sprint details need to be obtained.
project_id* Integer ID of the project for which the sprint details need to be obtained.
sprint_id* Integer ID of the sprint for which the details need to be obtained..

sprints/add

curl -L -X POST 'https://api.bugasura.io/sprints/add' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json' \
-F 'project_id="53305"' \
-F 'team_id="36917"' \
-F 'sprint_name="My Sprint 189"' \
-F 'start_date="2022-sdsadasd-15"' \
-F 'end_date="2022-06-20"' \
-F 'sprint_status=""' \
-F 'duration="0"'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/sprints/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'project_id' => '"53305"',
    'team_id' => '"36917"',
    'sprint_name' => '"My First Sprint"',
    'start_date' => '"2022-02-15"',
    'end_date' => '"2022-06-20"',
    'sprint_status' => '""',
    'duration' => '"0"',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'project_id': (None, '"53305"'),
    'team_id': (None, '"36917"'),
    'sprint_name': (None, '"My First Sprint"'),
    'start_date': (None, '"2022-02-15"'),
    'end_date': (None, '"2022-06-20"'),
    'sprint_status': (None, '""'),
    'duration': (None, '"0"'),
}

response = requests.post('https://api.bugasura.io/sprints/add', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/sprints/add");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('project_id', '"53305"');
form.append('team_id', '"36917"');
form.append('sprint_name', '"My First Sprint"');
form.append('start_date', '"2022-02-15"');
form.append('end_date', '"2022-06-20"');
form.append('sprint_status', '""');
form.append('duration', '"0"');

fetch('https://api.bugasura.io/sprints/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/sprints/add")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
form_data = [['project_id', '53305'],['team_id', '36917'],['sprint_name', 'My Sprint 189'],['start_date', '2022-sdsadasd-15'],['end_date', '2022-06-20'],['sprint_status', ''],['duration', '0']]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Sprint successfully created"
    "project_id": 53253,
    "sprint_id": 61404,
    "platform": "Desktop",
    "platform_type": "Web",
    "project_name": "project123213",
    "sprint_name": "my-sprint-name"
}

This API endpoint will create a sprint in a given team and project.

HTTP Request

POST https://api.bugasura.io/sprints/add

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team in which the sprint needs to be created.
project_id* Integer The ID of the project in which the sprint needs to be created.
sprint_name* String Name of your sprint that you want to create.
start_date String Date on which sprint is scheduled to start or the date on which it started (In YYYY-MM-DD format).
end_date String Date on which sprint is scheduled to end or the date on which it ended (In YYYY-MM-DD format).
duration Integer Duration of the sprint in days.
sprint_status String SCHEDULED Status of the sprint like ('SCHEDULED','IN PROGRESS','CANCELLED','COMPLETED').

sprints/update

curl -L -X POST 'https://api.bugasura.io/sprints/update' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json' \
-F 'sprint_id="61425"' \
-F 'sprint_name="my sprint name update"' \
-F 'start_date="2022-06-08"' \
-F 'end_date="2022-06-11"' \
-F 'duration="0"' \
-F 'sprint_status="SCHEDULED"' \
-F 'team_id="36917"'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/sprints/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'sprint_id' => '"61425"',
    'sprint_name' => '"my sprint name update"',
    'start_date' => '"2022-06-08"',
    'end_date' => '"2022-06-11"',
    'duration' => '"0"',
    'sprint_status' => '"SCHEDULED"',
    'team_id' => '"36917"',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch);?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'sprint_id': (None, '"61425"'),
    'sprint_name': (None, '"my sprint name update"'),
    'start_date': (None, '"2022-06-08"'),
    'end_date': (None, '"2022-06-11"'),
    'duration': (None, '"0"'),
    'sprint_status': (None, '"SCHEDULED"'),
    'team_id': (None, '"36917"'),
}

response = requests.post('https://api.bugasura.io/sprints/update', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/sprints/update");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('sprint_id', '"61425"');
form.append('sprint_name', '"my sprint name update"');
form.append('start_date', '"2022-06-08"');
form.append('end_date', '"2022-06-11"');
form.append('duration', '"0"');
form.append('sprint_status', '"SCHEDULED"');
form.append('team_id', '"36917"');

fetch('https://api.bugasura.io/sprints/update', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/sprints/update")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
form_data = [['sprint_id', '61425'],['sprint_name', 'my sprint name update'],['start_date', '2022-06-08'],['end_date', '2022-06-11'],['duration', '0'],['sprint_status', 'SCHEDULED'],['team_id', '36917']]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Sprint successfully updated",
    "sprint_id": 61425,
    "sprint_name": "my sprint name",
    "start_date": "2022-06-08",
    "end_date": "2022-06-11",
    "duration": 0,
    "sprint_status": "SCHEDULED",
    "days_remaining": "0 days remaining"
}

This API endpoint will allow the team users to update the sprint details.

HTTP Request

POST https://api.bugasura.io/sprints/update

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team in which the sprint needs to be updated.
sprint_id* Integer The ID of the sprint in which the sprint needs to be updated.
sprint_name Integer New name for the sprint.
start_date String Date on which sprint is scheduled to start or the date on which it started (In YYYY-MM-DD format).
end_date String Date on which sprint is scheduled to end or the date on which it ended (In YYYY-MM-DD format).
duration Integer Duration of the sprint in days.
sprint_status String SCHEDULED Status of the sprint like ('SCHEDULED','IN PROGRESS','CANCELLED','COMPLETED').

Note: All the update field parameters cannot be empty. Only include the parameters which you want to update.

sprints/delete

curl -L -X POST 'https://api.bugasura.io/sprints/delete' \
-H 'Authorization: Basic <Your API_KEY goes here>' \
-H 'Accept: application/json' \
-F 'team_id="36913"' \
-F 'sprint_id="61415"' \
-F 'project_id="53253"'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/sprints/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'team_id' => '"36913"',
    'sprint_id' => '"61415"',
    'project_id' => '"53253"',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch);?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'team_id': (None, '"36913"'),
    'sprint_id': (None, '"61415"'),
    'project_id': (None, '"53253"'),
}

response = requests.post('https://api.bugasura.io/sprints/delete', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/sprints/delete");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('team_id', '"36913"');
form.append('sprint_id', '"61415"');
form.append('project_id', '"53253"');

fetch('https://api.bugasura.io/sprints/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/sprints/delete")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
form_data = [['team_id', '36913'],['sprint_id', '61415'],['project_id', '53253']]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Sprint deleted successfully"
}

This API endpoint will allow a team users to delete the sprint from a project.

HTTP Request

POST https://api.bugasura.io/sprints/delete

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team from which the sprint needs to be deleted.
project_id* Integer The ID of the project from which the sprint needs to be deleted.
sprint_id* Integer The ID of the sprint which needs to be deleted.

Users

users/signup

curl -X POST \
  -H 'Accept: application/json' \
  -d 'email=anbu123@gmail.com&password=uye#12&first_name=anbarasu&last_name=s' \
  /users/signup
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '/users/signup');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Accept' => 'application/json',
  'Content-Type' => 'application/x-www-form-urlencoded',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'email=anbu123@gmail.com&password=uye#12&first_name=anbarasu&last_name=s');

$response = curl_exec($ch);

curl_close($ch);?>
import requests

headers = {
  'Accept': 'application/json',
  'Content-Type': 'application/x-www-form-urlencoded',
}

data = 'email=anbu123@gmail.com&password=uye#12&first_name=anbarasu&last_name=s'

response = requests.post('/users/signup', headers=headers, data=data)
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

  public static void main(String[] args) throws IOException {
    URL url = new URL("/users/signup");
    HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
    httpConn.setRequestMethod("POST");

    httpConn.setRequestProperty("Accept", "application/json");
    httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

    httpConn.setDoOutput(true);
    OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
    writer.write("email=anbu123@gmail.com&password=uye#12&first_name=anbarasu&last_name=s");
    writer.flush();
    writer.close();
    httpConn.getOutputStream().close();

    InputStream responseStream = httpConn.getResponseCode() / 100 == 2
        ? httpConn.getInputStream()
        : httpConn.getErrorStream();
    Scanner s = new Scanner(responseStream).useDelimiter("\\A");
    String response = s.hasNext() ? s.next() : "";
    System.out.println(response);
  }
}
fetch('/users/signup', {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: 'email=anbu123@gmail.com&password=uye#12&first_name=anbarasu&last_name=s'
});
require 'net/http'
require 'uri'

uri = URI.parse("/users/signup")
request = Net::HTTP::Post.new(uri)
request["Accept"] = "application/json"
request.set_form_data(
  "email" => "anbu123@gmail.com",
  "first_name" => "anbarasu",
  "last_name" => "s",
  "password" => "uye#12",
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Signed up successfully",
    "user_details": {
    "user_id": 16247,
        "email_id": "anbu123@gmail.com",
        "first_name": "anbarasu",
        "last_name": "s",
        "api_key": "<Your API_KEY goes here>"
    }
}

Sign up to Bugasura for the given email-id and password.

HTTP Request

POST /users/signup

Query Parameters

Parameter Type Default Description
email* String Email-id of the user.
password* String Password for the user.
first_name String First name of the user.
last_name String Last name of the user.

users/get

curl -X GET \
  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  /users/get
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '/users/get');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
  'Authorization': 'Basic <Your API_KEY goes here>',
  'Accept': 'application/json',
}

response = requests.get('/users/get', headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

  public static void main(String[] args) throws IOException {
    URL url = new URL("/users/get");
    HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
    httpConn.setRequestMethod("GET");

    httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
    httpConn.setRequestProperty("Accept", "application/json");

    InputStream responseStream = httpConn.getResponseCode() / 100 == 2
        ? httpConn.getInputStream()
        : httpConn.getErrorStream();
    Scanner s = new Scanner(responseStream).useDelimiter("\\A");
    String response = s.hasNext() ? s.next() : "";
    System.out.println(response);
  }
}
fetch('/users/get', {
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json'
  }
});
require 'net/http'
require 'uri'

uri = URI.parse("/users/get")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Users retrieved successfully.",
    "user_details": {
        "user_id": 16247,
        "first_name": "John",
        "last_name": "S",
        "email_id": "john.s@gmail.com",
        "plan": "PRO",
        "created_date": "2019-03-07 12:54:54",
        "team_details": [
            {
                "team_id": 30321,
                "team_name": "My Projects",
                "owner_id": 16247,
                "owner_name": "John S",
                "owner_email_id": "john.s@gmail.com",
                "plan": "PRO",
                "subscription_end_date": "2031-10-25 23:59:59",
                "subscription_frequency": "YEARLY"
            },
            {
                "team_id": 37064,
                "team_name": "product_team",
                "owner_id": 10642,
                "owner_name": "Alex T",
                "owner_email_id": "alex.t@gmail.com",
                "plan": "PRO",
                "subscription_end_date": "2031-10-25 23:59:59",
                "subscription_frequency": "YEARLY"
            }
        ]
    }
}

Get the user details of the authorized user. It also lists the details of the team in which the user is a member of the team.

HTTP Request

GET /users/get

Query Parameters

None*

users/update

curl -X POST \
  -H "Authorization: Basic <Your API_KEY goes here>" \
  -H 'Accept: application/json' \
  -d  'password=uye#12&first_name=anbu&last_name=s' \
  /users/update
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '/users/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
  'Content-Type' => 'application/x-www-form-urlencoded',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'password=uye#12&first_name=anbu&last_name=s');

$response = curl_exec($ch);

curl_close($ch);
?>
import requests

headers = {
  'Authorization': 'Basic <Your API_KEY goes here>',
  'Accept': 'application/json',
  'Content-Type': 'application/x-www-form-urlencoded',
}

data = 'password=uye#12&first_name=anbu&last_name=s'

response = requests.post('/users/update', headers=headers, data=data)
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

  public static void main(String[] args) throws IOException {
    URL url = new URL("/users/update");
    HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
    httpConn.setRequestMethod("POST");

    httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
    httpConn.setRequestProperty("Accept", "application/json");
    httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

    httpConn.setDoOutput(true);
    OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
    writer.write("password=uye#12&first_name=anbu&last_name=s");
    writer.flush();
    writer.close();
    httpConn.getOutputStream().close();

    InputStream responseStream = httpConn.getResponseCode() / 100 == 2
        ? httpConn.getInputStream()
        : httpConn.getErrorStream();
    Scanner s = new Scanner(responseStream).useDelimiter("\\A");
    String response = s.hasNext() ? s.next() : "";
    System.out.println(response);
  }
}
fetch('/users/update', {
  method: 'POST',
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: 'password=uye#12&first_name=anbu&last_name=s'
});
require 'net/http'
require 'uri'

uri = URI.parse("/users/update")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
  "first_name" => "anbu",
  "last_name" => "s",
  "password" => "uye#12",
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "User profile updated successfully"
}

Update the profile details of the authorized user.

HTTP Request

POST /users/update

Query Parameters

Parameter Type Default Description
password String New password for the user.
first_name String First name of the user.
last_name String Last name of the user.

ISSUE MANAGEMENT

Issues

issues/list

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -X GET 'https://api.bugasura.io/issues/list?team_id=30321&project_id=45971&sprint_id=55833&start_at=0&max_results=10&sort_by=issue_id&search_by_text=BUG2'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/list?team_id=30321&project_id=45971&sprint_id=55833&start_at=0&max_results=10&sort_by=issue_id&search_by_text=BUG2');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
  'Authorization': 'Basic <Your API_KEY goes here>',
  'Accept': 'application/json',
}

params = {
  'team_id': '30321',
  'project_id': '45971',
  'sprint_id': '55833',
  'start_at': '0',
  'max_results': '10',
  'sort_by': 'issue_id',
  'search_by_text': 'BUG2',
}

response = requests.get('https://api.bugasura.io/issues/list', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

  public static void main(String[] args) throws IOException {
    URL url = new URL("https://api.bugasura.io/issues/list?team_id=30321&project_id=45971&sprint_id=55833&start_at=0&max_results=10&sort_by=issue_id&search_by_text=BUG2");
    HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
    httpConn.setRequestMethod("GET");

    httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
    httpConn.setRequestProperty("Accept", "application/json");

    InputStream responseStream = httpConn.getResponseCode() / 100 == 2
        ? httpConn.getInputStream()
        : httpConn.getErrorStream();
    Scanner s = new Scanner(responseStream).useDelimiter("\\A");
    String response = s.hasNext() ? s.next() : "";
    System.out.println(response);
  }
}
fetch('https://api.bugasura.io/issues/list?team_id=30321&project_id=45971&sprint_id=55833&start_at=0&max_results=10&sort_by=issue_id&search_by_text=BUG2', {
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json'
  }
});
require 'net/http'
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/list?team_id=30321&project_id=45971&sprint_id=55833&start_at=0&max_results=10&sort_by=issue_id&search_by_text=BUG2")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Issue list fetched successfully",
    "issue_list": [
    {
        "issue_key": 78100,
        "issue_id": "BUG20",
        "summary": "Search Button is not responding.",
        "description": "The search button is not responding when more than 25 characters are typed in the search box.",
        "status": "New",
        "issue_type": "BUG",
        "tags": "Functional,UI,UX",
        "severity": "MEDIUM",
        "device_name": "MacBook Pro",
        "os_name": "macOs",
        "os_version": "Monterey",
        "resolution": "1399 x 769",
        "network_name": "Wifi",
        "browser_name": "Chrome",
        "browser_version": "69",
        "testcase_id": "Search Items",
        "platform_type": "Web",
        "platform": "Desktop",
        "is_public": 0,
        "creator_id": 10642,
        "creator_name": "Arjun Aravindan",
        "created_date": "2022-06-09 19:06:55",
        "last_modified_by": 10642,
        "last_modified_date": "2022-06-09 19:06:56",
        "sprint_id": 55833,
        "sprint_name": "bugasura.io - 10th Dec 9:12 pm",
        "project_id": 45971,
        "project_name": "bugasura.io",
        "is_public_project": 0,
        "public_link_url": null
    },
    {
        "issue_key": 78101,
        "issue_id": "BUG21",
        "summary": "Add Button alignment issue",
        "description": "Add Button alignement is wrong compare to the Design. Please check the screenshots provided.",
        "status": "New",
        "issue_type": "BUG",
        "tags": "UI,UX",
        "severity": "MEDIUM",
        "device_name": "MacBook Pro",
        "os_name": "macOs",
        "os_version": "Monterey",
        "resolution": "1399 x 769",
        "network_name": "Wifi",
        "browser_name": "Chrome",
        "browser_version": "69",
        "testcase_id": "Page 13",
        "platform_type": "Web",
        "platform": "Desktop",
        "is_public": 0,
        "creator_id": 10642,
        "creator_name": "Arjun Aravindan",
        "created_date": "2022-06-09 19:07:53",
        "last_modified_by": 10642,
        "last_modified_date": "2022-06-09 19:07:53",
        "sprint_id": 55833,
        "sprint_name": "bugasura.io - 10th Dec 9:12 pm",
        "project_id": 45971,
        "project_name": "bugasura.io",
        "is_public_project": 0,
        "public_link_url": null
    }
    ],
    "nrows": 2,
    "total_rows": 2,
    "start_at": 0,
    "max_results": 10
}

This API endpoint gets the list of issue details.

HTTP Request

GET https://api.bugasura.io/issues/list

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the issues needs to be listed.
project_id* Integer ID of the project for which the issues needs to be listed.
sprint_id Integer ID of the sprint for which the issues needs to be listed. Pass this parameter to get the list of issues of a particular sprint.
start_at Integer 0 The index of the first item to return in a page of results.
max_results Integer 10 The maximum number of items to return per page. Max value is 100.
sort_by String Sort the results by a field. Valid values are: 'severity', 'sprints', 'browser', 'device', 'status', 'created_date', 'issue_type' and 'issue_id'.
search_by_text String A string to match (case-insensitive) against text fields in the issue such as Summary, Description, Issue Type, Tags, Severity, Status, Sprint Name, Device Name, Browser Name or Issue ID.

issues/get

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -X GET 'https://api.bugasura.io/issues/get?team_id=30321&project_id=45971&issue_key=78100'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/get?team_id=30321&project_id=45971&issue_key=78100');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
  'Authorization': 'Basic <Your API_KEY goes here>',
  'Accept': 'application/json',
}

params = {
  'team_id': '30321',
  'project_id': '45971',
  'issue_key': '78100',
}

response = requests.get('https://api.bugasura.io/issues/get', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

  public static void main(String[] args) throws IOException {
    URL url = new URL("https://api.bugasura.io/issues/get?team_id=30321&project_id=45971&issue_key=78100");
    HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
    httpConn.setRequestMethod("GET");

    httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
    httpConn.setRequestProperty("Accept", "application/json");

    InputStream responseStream = httpConn.getResponseCode() / 100 == 2
        ? httpConn.getInputStream()
        : httpConn.getErrorStream();
    Scanner s = new Scanner(responseStream).useDelimiter("\\A");
    String response = s.hasNext() ? s.next() : "";
    System.out.println(response);
  }
}
fetch('https://api.bugasura.io/issues/get?team_id=30321&project_id=45971&issue_key=78100', {
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json'
  }
});
require 'net/http'
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/get?team_id=30321&project_id=45971&issue_key=78100")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Issue details fetched successfully",
    "issue_details": {
        "issue_key": 78123,
        "issue_id": "BUG31",
        "summary": "Github card design issue.",
        "description": "Github card in the Configure page is not as the Approved Design. Please check the screenshots shared.",
        "status": "New",
        "issue_type": "BUG",
        "tags": "UI,UX",
        "severity": "MEDIUM",
        "device_name": "macOS",
        "os_name": "macOS",
        "os_version": "Monterey",
        "resolution": "1369 x 769",
        "network_name": "WiFi",
        "browser_name": "Chrome",
        "browser_version": "60",
        "testcase_id": "Github Integration",
        "platform_type": "Web",
        "platform": "Desktop",
        "is_public": 0,
        "creator_id": 10642,
        "creator_name": "Arjun Aravindan",
        "created_date": "2022-06-13 23:27:27",
        "last_modified_by": 10642,
        "last_modified_date": "2022-06-17 12:59:56",
        "sprint_id": 55833,
        "sprint_name": "bugasura.io - 10th Dec 9:12 pm",
        "project_id": 45971,
        "project_name": "bugasura.io",
        "is_public_project": 0,
        "public_link_url": null,
        "assignees": [
            {
                "name": "John S",
                "email_id": "john.s@gmail.com",
                "user_id": 10592,
                "profile_image": "https://s3-ap-southeast-1.amazonaws.com/uploads.test.appachhi.com/userProfileImages/10592.1631196941.avatar-2.svg",
                "is_invited_user": 0
            },
            {
                "name": "Alex T",
                "email_id": "alex.t@gmail.com",
                "user_id": 12420,
                "profile_image": "",
                "is_invited_user": 1
            }
        ],
        "custom_fields": [
            {
                "field_id": 75,
                "field_name": "Server Type",
                "field_value": "Stage Server"
            },
            {
                "field_id": 74,
                "field_name": "Impact",
                "field_value": "Bad user expirence"
            }
        ],
        "attachments": [
            {
                "name": "1_design_screenshot.png",
                "url": "https://s3-ap-southeast-1.amazonaws.com/uploads.test.appachhi.com/30321/t50230/r55833/tr78123/1_design_screenshot.png",
                "added_by": "Arjun Aravindan",
                "added_date": "2022-06-17 12:59:54"
            },
            {
                "name": "card_screenshot.png",
                "url": "https://s3-ap-southeast-1.amazonaws.com/uploads.test.appachhi.com/30321/t50230/r55833/tr78123/card_screenshot.png",
                "added_by": "Arjun Aravindan",
                "added_date": "2022-06-17 12:59:54"
            }
        ]
    }
}

This API endpoint gets all the details of an issue.

HTTP Request

GET https://api.bugasura.io/issues/get

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the issue details need to be obtained.
project_id* Integer ID of the project for which the issue details need to be obtained.
issue_key* Integer Issue key of the issue for which the details need to be obtained.

issues/add

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -F 'team_id=30321' \
  -F 'sprint_id=55833' \
  -F 'summary=Github card design issue.' \
  -F 'description=The design of the Github card in the Configure page, is not looking same as the Approved Design. Please check the screenshots shared.' \
  -F 'issue_type=BUG' \
  -F 'status=New' \
  -F 'severity=Medium' \
  -F 'tags=UI,UX' \
  -F 'testcase_id=Github Integration' \
  -F 'device_name=MacBook Pro' \
  -F 'os_name=macOS' \
  -F 'os_version=Monterey' \
  -F 'network_name=Wifi' \
  -F 'browser_name=Chrome' \
  -F 'browser_version=60' \
  -F 'resolution=1369 x 769' \
  -F 'project_test_case_ids=10471' \
  -F 'is_public=0' \
  -F 'custom_fields=[{"field_id": 74,"field_value": "Stage Server"}]' \
  -F 'issue_assignees=10592,12420' \
  -F 'issue_files[]=@"/Users/apple/Desktop/card_screenshot.png"' \
  -F 'issue_files[]=@"/Users/apple/Desktop/design_screenshot.png"' \
  -X POST 'https://api.bugasura.io/issues/add'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
  'team_id' => '30321',
  'sprint_id' => '55833',
  'summary' => 'Github card design issue.',
  'description' => 'The design of the Github card in the Configure page, is not looking same as the Approved Design. Please check the screenshots shared.',
  'issue_type' => 'BUG',
  'status' => 'New',
  'severity' => 'Medium',
  'tags' => 'UI,UX',
  'testcase_id' => 'Github Integration',
  'device_name' => 'MacBook Pro',
  'os_name' => 'macOS',
  'os_version' => 'Monterey',
  'network_name' => 'Wifi',
  'browser_name' => 'Chrome',
  'browser_version' => '60',
  'resolution' => '1369 x 769',
  'project_test_case_ids' => '10471',
  'is_public' => '0',
  'custom_fields' => '[{"field_id": 74,"field_value": "Stage Server"}]',
  'issue_assignees' => '10592,12420',
  'issue_files[]' => new CURLFile('"/Users/apple/Desktop/card_screenshot.png"'),
  'issue_files[]' => new CURLFile('"/Users/apple/Desktop/design_screenshot.png"'),
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
  'Authorization': 'Basic <Your API_KEY goes here>',
  'Accept': 'application/json',
}

files = [
  ('team_id', (None, '30321')),
  ('sprint_id', (None, '55833')),
  ('summary', (None, 'Github card design issue.')),
  ('description', (None, 'The design of the Github card in the Configure page, is not looking same as the Approved Design. Please check the screenshots shared.')),
  ('issue_type', (None, 'BUG')),
  ('status', (None, 'New')),
  ('severity', (None, 'Medium')),
  ('tags', (None, 'UI,UX')),
  ('testcase_id', (None, 'Github Integration')),
  ('device_name', (None, 'MacBook Pro')),
  ('os_name', (None, 'macOS')),
  ('os_version', (None, 'Monterey')),
  ('network_name', (None, 'Wifi')),
  ('browser_name', (None, 'Chrome')),
  ('browser_version', (None, '60')),
  ('resolution', (None, '1369 x 769')),
  ('project_test_case_ids', (None, '10471')),
  ('is_public', (None, '0')),
  ('custom_fields', (None, '[{"field_id": 74,"field_value": "Stage Server"}]')),
  ('issue_assignees', (None, '10592,12420')),
  ('issue_files[]', open('"/Users/apple/Desktop/card_screenshot.png"', 'rb')),
  ('issue_files[]', open('"/Users/apple/Desktop/design_screenshot.png"', 'rb')),
]

response = requests.post('https://api.bugasura.io/issues/add', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

  public static void main(String[] args) throws IOException {
    URL url = new URL("https://api.bugasura.io/issues/add");
    HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
    httpConn.setRequestMethod("POST");

    httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
    httpConn.setRequestProperty("Accept", "application/json");

    InputStream responseStream = httpConn.getResponseCode() / 100 == 2
        ? httpConn.getInputStream()
        : httpConn.getErrorStream();
    Scanner s = new Scanner(responseStream).useDelimiter("\\A");
    String response = s.hasNext() ? s.next() : "";
    System.out.println(response);
  }
}
const form = new FormData();
form.append('team_id', '30321');
form.append('sprint_id', '55833');
form.append('summary', 'Github card design issue.');
form.append('description', 'The design of the Github card in the Configure page, is not looking same as the Approved Design. Please check the screenshots shared.');
form.append('issue_type', 'BUG');
form.append('status', 'New');
form.append('severity', 'Medium');
form.append('tags', 'UI,UX');
form.append('testcase_id', 'Github Integration');
form.append('device_name', 'MacBook Pro');
form.append('os_name', 'macOS');
form.append('os_version', 'Monterey');
form.append('network_name', 'Wifi');
form.append('browser_name', 'Chrome');
form.append('browser_version', '60');
form.append('resolution', '1369 x 769');
form.append('project_test_case_ids', '10471');
form.append('is_public', '0');
form.append('custom_fields', '[{"field_id": 74,"field_value": "Stage Server"}]');
form.append('issue_assignees', '10592,12420');
form.append('issue_files[]', File(['<data goes here>'], '"/Users/apple/Desktop/card_screenshot.png"'));
form.append('issue_files[]', File(['<data goes here>'], '"/Users/apple/Desktop/design_screenshot.png"'));

fetch('https://api.bugasura.io/issues/add', {
  method: 'POST',
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json'
  },
  body: form
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/add")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
  'team_id'=>'30321'
  'sprint_id'=>'55833'
  'summary'=>'Github card design issue.'
  'description'=>'The design of the Github card in the Configure page, is not looking same as the Approved Design. Please check the screenshots shared.'
  'issue_type'=>'BUG'
  'status'=>'New'
  'severity'=>'Medium'
  'tags'=>'UI,UX'
  'testcase_id'=>'Github Integration'
  'device_name'=>'MacBook Pro'
  'os_name'=>'macOS'
  'os_version'=>'Monterey'
  'network_name'=>'Wifi'
  'browser_name'=>'Chrome'
  'browser_version'=>'60'
  'resolution'=>'1369 x 769'
  'project_test_case_ids'=>'10471'
  'is_public'=>'0'
  'custom_fields'=>'[{"field_id": 74,"field_value": "Stage Server"}]'
  'issue_assignees'=>'10592,12420'
  'issue_files[]'=>'@"/Users/apple/Desktop/card_screenshot.png"'
  'issue_files[]'=>'@"/Users/apple/Desktop/design_screenshot.png"'
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Issue added successfully",
    "issue_details": {
        "issue_key": 78120,
        "issue_id": "MUL3",
        "summary": "Github card design issue.",
        "description": "The design of the Github card in the Configure page, is not looking same as the Approved Design. Please check the screenshots shared.",
        "status": "New",
        "issue_type": "BUG",
        "tags": "UI,UX",
        "severity": "MEDIUM",
        "device_name": "MacBook Pro",
        "os_name": "macOS",
        "os_version": "Monterey",
        "resolution": "1369 x 769",
        "network_name": "WiFi",
        "browser_name": "Chrome",
        "browser_version": "60",
        "testcase_id": "Github Integration",
        "platform_type": "Web",
        "platform": "Desktop",
        "is_public": 0,
        "creator_id": 10642,
        "creator_name": "",
        "created_date": "2022-06-17 14:02:57",
        "last_modified_by": 10642,
        "last_modified_date": "2022-06-17 14:02:59",
        "sprint_id": 55833,
        "sprint_name": "bugasura.io - 10th Dec 9:12 pm",
        "project_id": 45971,
        "project_name": "bugasura.io",
        "is_public_project": 0,
        "public_link_url": null
    }
}

This API endpoint adds new issue to the given sprint.

HTTP Request

POST https://api.bugasura.io/issues/add

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the issue need to be added.
sprint_id* Integer ID of the project for which the issue need to be added.
summary* String Short summary of the issue. The summary should have at-least 5 characters and can have max 500 characters.
description String 0 Description about the issue.
issue_type String Issue Type of issue. Valid values are: 'Issue', 'Observation', 'Question', 'Suggestion', 'Improvement' and 'New Feature'.
status String First status of the team's workflow The status of the issue. The value should be one of the team's workflow status. If status is not passed or invalid status is passed, the first status of the team's workflow will be set to the issue.
severity String MEDIUM Severity of the issue. Valid values are: 'LOW', 'MEDIUM', 'HIGH' and 'CRITICAL'.
tags String The tags for the issue. Each tags should be separated by comma and can have max 35 characters. Also maximum 5 tags only can add to an issue.
testcase_id String This field can be used to given the testcase id or feature name or test flow name for the issue.
device_name String None Name of the device. This field is not need to pass for Desktop Web projects issue.
os_name String None OS name of the device/system. Only for Desktop Web and Multi Platform project's issue can set this field value.
os_version String None OS Version of the device/system.
network_name String None The name of the Network which the device/system is connected. Valid values are: 'None', 'Wifi', '4G', '3G' and '2G'.
browser_name String None Name of the browser. For Android App and iOS App Projects, None value will be set for this field.
browser_version String Version name of the browser. For Android App and iOS App Projects, None value will be set for this field
resolution String None x None The screen resolution of the device/system. Other than Desktop Web Projects, this field value will be None. Width and Height of the screen should be provided in width x height format.
project_test_case_ids Integer IDs of test cases linked to the issue via the dropdown when relevant testcase scenarios are associated.
is_public Integer The default issue privacy value set for project Pass 1 to set issue public and 0 to set the privacy of the issue to private. If the project is private then issue privacy will be private only.
custom_fields String Pass the custom fields values in JSON string format. If mandatory custom fields with no default values are there for the project, then this parameter should be passed with those custom fields and values. Also the value of each custom field should be valid for the field.
issue_assignees String List of user's IDs you want to assign the issue. Each user id should be separated by comma and the user should be team member.
issue_files File Issue attachment files. Maximum 10 files can be uploaded and each file's size should be less than or equal to 10MB.

issues/update

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -F 'team_id=30321' \
  -F 'sprint_id=55833' \
  -F 'issue_key=78120' \
  -F 'summary=Card design is not proper in My Integration Page.' \
  -F 'description=The Github card design is not looking same as the provided design. Please check the Approved Design of the My Integration Page.' \
  -F 'tags=Design,UI,UX' \
  -F 'severity=High' \
  -F 'status=New' \
  -F 'issue_type=BUG' \
  -F 'is_public=0' \
  -F 'testcase_id=Github Integration' \
  -F 'device_name=MacBook Pro' \
  -F 'os_name=macOS' \
  -F 'os_version=Monterey' \
  -F 'browser_name=Chrome' \
  -F 'browser_version=61' \
  -F 'network_name=Wifi' \
  -F 'resolution=1369 x 769' \
    -F 'issue_assignees=10592,12420' \
  -F 'custom_fields=[{"field_id": 74,"field_value": "Live Server"}]' \
  -X POST 'https://api.bugasura.io/issues/update'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
  'team_id' => '30321',
  'sprint_id' => '55833',
  'issue_key' => '78120',
  'summary' => 'Card design is not proper in My Integration Page.',
  'description' => 'The Github card design is not looking same as the provided design. Please check the Approved Design of the My Integration Page.',
  'tags' => 'Design,UI,UX',
  'severity' => 'High',
  'status' => 'New',
  'issue_type' => 'BUG',
  'is_public' => '0',
  'testcase_id' => 'Github Integration',
  'device_name' => 'MacBook Pro',
  'os_name' => 'macOS',
  'os_version' => 'Monterey',
  'browser_name' => 'Chrome',
  'browser_version' => '61',
  'network_name' => 'Wifi',
  'resolution' => '1369 x 769',
  'project_test_case_ids' => '10471',
  'custom_fields' => '[{"field_id": 74,"field_value": "Live Server"}]',
]);

$response = curl_exec($ch);
curl_close($ch);?>
import requests

headers = {
  'Authorization': 'Basic <Your API_KEY goes here>',
  'Accept': 'application/json',
}

files = {
  'team_id': (None, '30321'),
  'sprint_id': (None, '55833'),
  'issue_key': (None, '78120'),
  'summary': (None, 'Card design is not proper in My Integration Page.'),
  'description': (None, 'The Github card design is not looking same as the provided design. Please check the Approved Design of the My Integration Page.'),
  'tags': (None, 'Design,UI,UX'),
  'severity': (None, 'High'),
  'status': (None, 'New'),
  'issue_type': (None, 'BUG'),
  'is_public': (None, '0'),
  'testcase_id': (None, 'Github Integration'),
  'device_name': (None, 'MacBook Pro'),
  'os_name': (None, 'macOS'),
  'os_version': (None, 'Monterey'),
  'browser_name': (None, 'Chrome'),
  'browser_version': (None, '61'),
  'network_name': (None, 'Wifi'),
  'resolution': (None, '1369 x 769'),
  ('project_test_case_ids', (None, '10471')),
  'custom_fields': (None, '[{"field_id": 74,"field_value": "Live Server"}]'),
}

response = requests.post('https://api.bugasura.io/issues/update', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

  public static void main(String[] args) throws IOException {
    URL url = new URL("https://api.bugasura.io/issues/update");
    HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
    httpConn.setRequestMethod("POST");

    httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
    httpConn.setRequestProperty("Accept", "application/json");

    InputStream responseStream = httpConn.getResponseCode() / 100 == 2
        ? httpConn.getInputStream()
        : httpConn.getErrorStream();
    Scanner s = new Scanner(responseStream).useDelimiter("\\A");
    String response = s.hasNext() ? s.next() : "";
    System.out.println(response);
  }
}
const form = new FormData();
form.append('team_id', '30321');
form.append('sprint_id', '55833');
form.append('issue_key', '78120');
form.append('summary', 'Card design is not proper in My Integration Page.');
form.append('description', 'The Github card design is not looking same as the provided design. Please check the Approved Design of the My Integration Page.');
form.append('tags', 'Design,UI,UX');
form.append('severity', 'High');
form.append('status', 'New');
form.append('issue_type', 'BUG');
form.append('is_public', '0');
form.append('testcase_id', 'Github Integration');
form.append('device_name', 'MacBook Pro');
form.append('os_name', 'macOS');
form.append('os_version', 'Monterey');
form.append('browser_name', 'Chrome');
form.append('browser_version', '61');
form.append('network_name', 'Wifi');
form.append('resolution', '1369 x 769');
form.append('project_test_case_ids', '10471');
form.append('custom_fields', '[{"field_id": 74,"field_value": "Live Server"}]');

fetch('https://api.bugasura.io/issues/update', {
  method: 'POST',
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json'
  },
  body: form
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/update")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
  'team_id'=>'30321'
  'sprint_id'=>'55833'
  'issue_key'=>'78120'
  'summary'=>'Card design is not proper in My Integration Page.'
  'description'=>'The Github card design is not looking same as the provided design. Please check the Approved Design of the My Integration Page.'
  'tags'=>'Design,UI,UX'
  'severity'=>'High'
  'status'=>'New'
  'issue_type'=>'BUG'
  'is_public'=>'0'
  'testcase_id'=>'Github Integration'
  'device_name'=>'MacBook Pro'
  'os_name'=>'macOS'
  'os_version'=>'Monterey'
  'browser_name'=>'Chrome'
  'browser_version'=>'61'
  'network_name'=>'Wifi'
  'resolution'=>'1369 x 769'
  'project_test_case_ids'=>'10471'
  'custom_fields'=>'[{"field_id": 74,"field_value": "Live Server"}]'
  'https://api.bugasura.io/issues/update'
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "Issue updated successfully",
  "issueDetails": {
    "issue_key": "78099",
    "issue_id": "BUG28",
    "summary": "Card design is not proper in My Integration Page.",
    "description": "The Github card design is not looking same as the provided design. Please check the Approved Design of the My Integration Page.",
    "tags": "Design,UI,UX",
    "severity": "High",
    "status": "New",
    "issue_type": "BUG",
    "is_public": 0,
    "testcase_id": "Github Integration",
    "device_name": "MacBook Pro",
    "os_name": "macOS",
    "os_version": "Monterey",
    "browser_name": "Chrome",
    "browser_version": "61",
    "network_name": "Wifi",
    "resolution": "1369 x 769",
    "cust_field_74": "Live Server"
  }
}

This API endpoint update the issue details.

HTTP Request

POST https://api.bugasura.io/issues/update

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the issue details needs to be updated.
sprint_id* Integer ID of the sprint for which the issue details needs to be updated.
issue_key* Integer Issue key of the issue for which the details needs to be updated.
summary String Summary of the issue to be updated. If summary parameter is passed, then it should have at-least 5 characters and can have max 500 characters.
description String Description of the issue to be updated.
issue_type String Type of issue to be updated. Valid values are: 'Bug', 'Observation', 'Question', 'Suggestion', 'Improvement' and 'New Feature'.
status String The status of the issue to be updated. The value should be one of the team's workflow status.
severity String MEDIUM Severity of the issue to be updated. Valid values are: 'LOW', 'MEDIUM', 'HIGH' and 'CRITICAL'.
tags String The tags for the issue to be updated. Each tags should be separated by comma and can have max 35 characters. Also maximum 5 tags only can add to an issue.
testcase_id String This field can be used to update the issue's testcase id or feature name or test flow name .
device_name String Name of the device.
os_name String OS name of the device/system.
os_version String OS Version of the device/system.
network_name String The name of the Network which the device/system is connected. Valid values are: 'None', 'Wifi', '4G', '3G' and '2G'.
browser_name String Name of the browser.
browser_version String The version of the browser.
resolution String The screen resolution of the device/system. Width and Height of the screen should be provided in width x height format.
project_test_case_ids Integer IDs of test cases linked to the issue via the dropdown when relevant testcase scenarios are associated.
is_public Integer Pass 1 to set issue public and 0 to set the privacy of the issue to private. If the project is Public and updating user is issue creator or team admin, then only issue privacy can be updated.
custom_fields String Pass the custom fields values in JSON string format to update. The value of each custom field should be valid for the field.

Note: All the update field parameters cannot be empty. Only include the parameters which you want to update.

issues/delete

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -F 'team_id=30321' \
  -F 'issue_key_list=78120,78121' \
  -X POST 'https://api.bugasura.io/issues/delete'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
  'team_id' => '30321',
  'issue_key_list' => '78120,78121',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
  'Authorization': 'Basic <Your API_KEY goes here>',
  'Accept': 'application/json',
}

files = {
  'team_id': (None, '30321'),
  'issue_key_list': (None, '78120,78121'),
}

response = requests.post('https://api.bugasura.io/issues/delete', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

  public static void main(String[] args) throws IOException {
    URL url = new URL("https://api.bugasura.io/issues/delete");
    HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
    httpConn.setRequestMethod("POST");

    httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
    httpConn.setRequestProperty("Accept", "application/json");

    InputStream responseStream = httpConn.getResponseCode() / 100 == 2
        ? httpConn.getInputStream()
        : httpConn.getErrorStream();
    Scanner s = new Scanner(responseStream).useDelimiter("\\A");
    String response = s.hasNext() ? s.next() : "";
    System.out.println(response);
  }
}
const form = new FormData();
form.append('team_id', '30321');
form.append('issue_key_list', '78120,78121');

fetch('https://api.bugasura.io/issues/delete', {
  method: 'POST',
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json'
  },
  body: form
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/delete")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
  'team_id'=>'30321'
  'issue_key_list'=>'78120,78121'
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "Issue deleted Successfully",
  "deleted_issue_keys": [
      78120,
      78121
  ]
}

This API endpoint deletes the issues.

HTTP Request

POST https://api.bugasura.io/issues/delete

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the issues need to be deleted.
issue_key_list* Integer List of issue keys of issues which need to be deleted.

Issue Assignees

assignees/get

curl    -H 'Authorization: Basic <Your API_KEY goes here>' \
    -H 'Accept: application/json' \
    -X GET 'https://api.bugasura.io/issues/assignees/get?team_id=30321&issue_key=78123'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/assignees/get?team_id=30321&issue_key=78123');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'team_id': '30321',
    'issue_key': '78123',
}

response = requests.get('https://api.bugasura.io/issues/assignees/get', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/assignees/get?team_id=30321&issue_key=78123");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/issues/assignees/get?team_id=30321&issue_key=78123', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/assignees/get?team_id=30321&issue_key=78123")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Issue assignees details fetched successfully",
    "issue_assignees": [
        {
            "name": "John S",
            "email_id": "john.s@gamil.com",
            "user_id": 10592,
            "profile_image": "https://s3-ap-southeast-1.amazonaws.com/uploads.test.appachhi.com/userProfileImages/10592.1631196941.avatar-2.svg",
            "is_invited_user": 0
        },
        {
            "name": "Alex T",
            "email_id": "alex.t@gmail.com",
            "user_id": 10592,
            "profile_image": "https://s3-ap-southeast-1.amazonaws.com/uploads.test.appachhi.com/userProfileImages/10592.1631196941.avatar-2.svg",
            "is_invited_user": 1
        }
    ],
    "nrows": 2
}

This API endpoint gets the assignees details of an issue.

HTTP Request

GET https://api.bugasura.io/issues/assignees/get

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which issue's assignees details needs to be obtained.
issue_key* Integer Issue key of the issue for which the assignees details need to be obtained.

assignees/add

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
    -H 'Accept: application/json' \
    -F 'team_id=30321' \
    -F 'issue_key=78123' \
    -F 'assignees_list=12420,10642' \
    -X POST 'https://api.bugasura.io/issues/assignees/add'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/assignees/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'team_id' => '30321',
    'issue_key' => '78123',
    'assignees_list' => '12420,10642',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'team_id': (None, '30321'),
    'issue_key': (None, '78123'),
    'assignees_list': (None, '12420,10642'),
}

response = requests.post('https://api.bugasura.io/issues/assignees/add', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/assignees/add");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('team_id', '30321');
form.append('issue_key', '78123');
form.append('assignees_list', '12420,10642');

fetch('https://api.bugasura.io/issues/assignees/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/assignees/get?team_id=30321&issue_key=78123")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
    'team_id'=>'30321'
    'issue_key'=>'78123'
    'assignees_list'=>'12420,10642'
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Assignees updated successfully"
}

This API endpoint assigns the issue to the given users.

HTTP Request

POST https://api.bugasura.io/issues/assignees/add

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team for which the assignees need to be added for an issue.
issue_key* Integer Issue key of the issue which need to be assigned.
assignees_list* String List of user's IDs whom needs to be assigned to an issue. Each user id should be separated by a comma and the user should be a team member.

assignees/remove

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
    -H 'Accept: application/json' \
    -F 'team_id=30321' \
    -F 'issue_key=78123' \
    -F 'assignees_list=10592,10642' \
    -X POST 'https://api.bugasura.io/issues/assignees/remove'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/assignees/remove');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'team_id' => '30321',
    'issue_key' => '78123',
    'assignees_list' => '10592,10642',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'team_id': (None, '30321'),
    'issue_key': (None, '78123'),
    'assignees_list': (None, '10592,10642'),
}

response = requests.post('https://api.bugasura.io/issues/assignees/remove', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/assignees/remove");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('team_id', '30321');
form.append('issue_key', '78123');
form.append('assignees_list', '10592,10642');

fetch('https://api.bugasura.io/issues/assignees/remove', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/assignees/remove")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
    'team_id'=>'30321'
    'issue_key'=>'78123'
    'assignees_list'=>'10592,10642'
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Assignees updated successfully"
}

This API endpoint un-assigns the given users from an issue.

HTTP Request

POST https://api.bugasura.io/issues/assignees/remove

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team for which the assignees need to be removed for an issue.
issue_key* Integer Issue key of the issue which need to be un-assigned.
assignees_list* String List of user's IDs whom needs to be un-assigned from the issue. Each user id should be separated by comma and the user should be team member.

Issue Comments

comments/list

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -X GET 'https://api.bugasura.io/issues/comments/list/?team_id=30321&issue_key=78023&creator_id=10642&get_user_comments_only=0&start_at=0&max_results=10'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/comments/list/?team_id=30321&issue_key=78023&creator_id=10642&get_user_comments_only=0&start_at=0&max_results=10');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch);?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'team_id': '30321',
    'issue_key': '78023',
    'creator_id': '10642',
    'get_user_comments_only': '0',
    'start_at': '0',
    'max_results': '10',
}

response = requests.get('https://api.bugasura.io/issues/comments/list/', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/comments/list/?team_id=30321&issue_key=78023&creator_id=10642&get_user_comments_only=0&start_at=0&max_results=10");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/issues/comments/list/?team_id=30321&issue_key=78023&creator_id=10642&get_user_comments_only=0&start_at=0&max_results=10', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/comments/list/?team_id=30321&issue_key=78023&creator_id=10642&get_user_comments_only=0&start_at=0&max_results=10")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Issue comment list fetched successfully",
    "comment_list": [
        {
            "comment_id": 174069,
            "issue_key": 78123,
            "comment": "<strong>Arjun P</strong> updated the Status to <strong class='badge comment__badge--status new comment__badge--inprogress' style='color:#f9af2d !important;'>Not Reproducible</strong>"
            "plain_text_comment": "Arjun P updated the Status to Not Reproducible",
            "is_system_comment": 1,
            "creator_id": "10591",
            "created_date": "2022-02-25 13:53:52",
            "is_public_comment": 1,
            "last_modified": "2022-02-25 13:53:52",
            "author": "Arjun P"
        }
        {
            "comment_id": 174092,
            "issue_key": 78123,
            "comment": "<p>This issue is not reproduciable. Please provide step to reproduce this issue.</p>",
            "plain_text_comment": "This issue is not reproduciable. Please provide step to reproduce this issue.",
            "is_system_comment": 0,
            "creator_id": "10642",
            "created_date": "2022-06-17 12:51:21",
            "is_public_comment": 1,
            "last_modified": "2022-06-17 12:51:21",
            "author": "Arjun P"
        },
    ],
    "nrows": 2,
    "total_rows": 2,
    "start_at": 0,
    "max_results": 10
}

This API endpoint gets the list of comments details of a given issue.

HTTP Request

GET https://api.bugasura.io/issues/comments/list

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the comment details to be listed.
issue_key* Integer Key of the issue for which the comment details to be listed.
creator_id Integer ID of the user whom the issue comments are added.
get_user_comments_only Integer 0 Pass 0 to get both the users added comments and system comments details. Pass 1 to get only the the users added issue comments.
start_at Integer 0 The index of the first item to return in a page of results.
max_results Integer 10 The maximum number of items to return per page. Max value is 100.

comments/get

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -X GET 'https://api.bugasura.io//issues/comments/get/?team_id=36552&issue_key=78123&comment_id=174092'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io//issues/comments/get/?team_id=36552&issue_key=78123&comment_id=174092');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch);?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'team_id': '36552',
    'issue_key': '78123',
    'comment_id': '174092',
}

response = requests.get('https://api.bugasura.io//issues/comments/get/', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io//issues/comments/get/?team_id=36552&issue_key=78123&comment_id=174092");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io//issues/comments/get/?team_id=36552&issue_key=78123&comment_id=174092', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io//issues/comments/get/?team_id=36552&issue_key=78123&comment_id=174092")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Issue comment details fetched successfully",
    "comment_details": {
        "comment_id": 174092,
        "issue_key": 78123,
        "comment": "<p>This issue is not reproduciable. Please provide step to reproduce this issue.</p>",
        "plain_text_comment": "This issue is not reproduciable. Please provide step to reproduce this issue.",
        "is_system_comment": 0,
        "creator_id": "10642",
        "created_date": "2022-06-17 12:51:21",
        "is_public_comment": 1,
        "last_modified": "2022-06-17 12:51:21",
        "author": "Arjun P"
    }
}

This API endpoint get the details of a given issue comment.

HTTP Request

GET https://api.bugasura.io/issues/comments/get

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the comment details to be obtained.
issue_key* Integer Key of the issue for which the comment details to be obtained.
comment_id* Integer ID of the issue comment for which the details need to be obtained.

comments/add

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -F 'team_id=30321' \
  -F 'issue_key=78123' \
  -F 'comment=This issue is not reproducible. Please provide step to reproduce this issue.' \
  -F 'is_public_comment=1' \
  -X POST 'https://api.bugasura.io/issues/comments/add'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/comments/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'team_id' => '30321',
    'issue_key' => '78123',
    'comment' => 'This issue is not reproducible. Please provide step to reproduce this issue.',
    'is_public_comment' => '1',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'team_id': (None, '30321'),
    'issue_key': (None, '78123'),
    'comment': (None, 'This issue is not reproducible. Please provide step to reproduce this issue.'),
    'is_public_comment': (None, '1'),
}

response = requests.post('https://api.bugasura.io/issues/comments/add', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/comments/add");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('team_id', '30321');
form.append('issue_key', '78123');
form.append('comment', 'This issue is not reproducible. Please provide step to reproduce this issue.');
form.append('is_public_comment', '1');

fetch('https://api.bugasura.io/issues/comments/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/comments/add")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body
{
    "status": "OK",
    "message": "Issue comment added successfully",
    "created_date": "2022-06-17 12:51:21",
    "comment_id": 174092,
    "comment": "<p>This issue is not reproducible. Please provide step to reproduce this issue.</p>",
    "is_system_comment": 0,
    "is_public_comment": "1"
}

This API endpoint will create a comment in a given issue.

HTTP Request

POST https://api.bugasura.io/issues/comments/add

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team in which the comment needs to be created.
issue_key* Integer Key of the issue which you want to add a comment.
comment* String Body of the comment.
is_public_comment Integer 0 By default all the comments added in a public issue of a public project will be Private. Pass 1 to make the comment Public. This parameter will not be effective for the Private issue.

comments/update

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -F 'team_id=30321' \
  -F 'comment_id=174092' \
  -F 'comment=This issue is not reproducible. Please provide step to reproduce this issue or add an video attachment file.' \
  -X POST 'https://api.bugasura.io/issues/comments/update'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://https://api.bugasura.io/issues/comments/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'team_id' => '30321',
    'comment_id' => '174092',
    'comment' => 'This issue is not reproducible. Please provide step to reproduce this issue or add an video attachment file.',
]);

$response = curl_exec($ch);

curl_close($ch);?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'team_id': (None, '30321'),
    'comment_id': (None, '174092'),
    'comment': (None, 'This issue is not reproducible. Please provide step to reproduce this issue or add an video attachment file.'),
}

response = requests.post('https://api.bugasura.io/issues/comments/update', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/comments/update");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('team_id', '30321');
form.append('comment_id', '174092');
form.append('comment', 'This issue is not reproducible. Please provide step to reproduce this issue or add an video attachment file.');

fetch('https://api.bugasura.io/issues/comments/update', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/issues/comments/update")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Basic b6fe5f522e824db5fde009150847e85dc2418ce1"
request["Accept"] = "application/json"
form_data = [['comment_id', '174842'],['comment', 'Comment update content'],['team_id', '36552'],['issue_key', '78457']]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Issue comment updated successfully",
    "comment_id": 174092,
    "last_modified": "2022-06-21 02:45:21",
    "created_date": "2022-06-21 02:32:01",
    "comment": "<p>This issue is not reproducible. Please provide step to reproduce this issue or add an video attachment file.</p>"
}

This API endpoint will allow the comment authors to update the comment.

HTTP Request

POST https://api.bugasura.io/issues/comments/update

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team in which the comment needs to be updated.
comment_id* Integer The ID of the comment which needs to be updated.
comment* String Updated comment.

comments/delete

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
  -H 'Accept: application/json' \
  -F 'team_id=30321' \
  -F 'comment_id=174092' \
  -X POST 'https://api.bugasura.io/issues/comments/delete'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/comments/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'team_id' => '30321',
    'comment_id' => '174092',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'team_id': (None, '30321'),
    'comment_id': (None, '174092'),
}

response = requests.post('https://api.bugasura.io/issues/comments/delete', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/comments/delete");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
require "uri"
require "net/http"

url = URI("http://https://api.bugasura.io/comments/delete")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Basic b6fe5f522e824db5fde009150847e85dc2418ce1"
request["Accept"] = "application/json"
form_data = [['comment_id', '174858'],['team_id', '36552'],['issue_key', '78457']]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Issue comment got deleted successfully"
}

This API endpoint allows a comment author or team admins to delete the comment from an issue.

HTTP Request

POST https://api.bugasura.io/issues/comments/delete

Query Parameters

Parameter Type Default Description
team_id* Integer The ID of the team from which the comment needs to be deleted.
comment_id* Integer The ID of the comment which needs to be deleted.

Issue Attachments

attachments/get

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
    -H 'Accept: application/json' \
    -X GET 'https://api.bugasura.io/issues/attachments/get?team_id=30321&issue_key=78123'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/attachments/get?team_id=30321&issue_key=78123');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

params = {
    'team_id': '30321',
    'issue_key': '78123',
}

response = requests.get('https://api.bugasura.io/issues/attachments/get', params=params, headers=headers)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/attachments/get?team_id=30321&issue_key=78123");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("GET");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
fetch('https://api.bugasura.io/issues/attachments/get?team_id=30321&issue_key=78123', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/attachments/get?team_id=30321&issue_key=78123")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Issue attachment files details fetched successfully",
    "issue_attachments": [
        {
            "name": "card_screenshot.png",
            "url": "https://s3-ap-southeast-1.amazonaws.com/uploads.test.appachhi.com/30321/t50230/r55833/tr78123/card_screenshot.png",
            "added_by": "Arjun Aravindan",
            "added_date": "2022-06-13 23:27:28"
        },
        {
            "name": "design_screenshot.png",
            "url": "https://s3-ap-southeast-1.amazonaws.com/uploads.test.appachhi.com/30321/t50230/r55833/tr78123/design_screenshot.png",
            "added_by": "Arjun Aravindan",
            "added_date": "2022-06-13 23:27:28"
        }
    ]
}

This API endpoint gets the attachment files details of an issue.

HTTP Request

GET https://api.bugasura.io/issues/attachments/get

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which issue's attachments details needs to be obtained.
issue_key* Integer Issue key of the issue for which the attachment files details needs to be obtained.

attachments/add

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
    -H 'Accept: application/json' \
    -F 'team_id=30321' \
    -F 'issue_key=78123' \
    -F 'issue_files[]=@"/Users/apple/Desktop/card_screenshot.png"' \
    -F 'issue_files[]=@"/Users/apple/Desktop/design_screenshot.png"' \
    -X POST 'https://api.bugasura.io/issues/attachments/add'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/attachments/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'team_id' => '30321',
    'issue_key' => '78123',
    'issue_files[]' => new CURLFile('"/Users/apple/Desktop/card_screenshot.png"'),
    'issue_files[]' => new CURLFile('"/Users/apple/Desktop/design_screenshot.png"'),
]);

$response = curl_exec($ch);

curl_close($ch);
 ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = [
    ('team_id', (None, '30321')),
    ('issue_key', (None, '78123')),
    ('issue_files[]', open('"/Users/apple/Desktop/card_screenshot.png"', 'rb')),
    ('issue_files[]', open('"/Users/apple/Desktop/design_screenshot.png"', 'rb')),
]

response = requests.post('https://api.bugasura.io/issues/attachments/add', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/attachments/add");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('team_id', '30321');
form.append('issue_key', '78123');
form.append('issue_files[]', File(['<data goes here>'], '"/Users/apple/Desktop/card_screenshot.png"'));
form.append('issue_files[]', File(['<data goes here>'], '"/Users/apple/Desktop/design_screenshot.png"'));

fetch('https://api.bugasura.io/issues/attachments/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/attachments/add")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
    'team_id'=>'30321'
    'issue_key'=>'78123'
    'issue_files[]'=>'@"/Users/apple/Desktop/card_screenshot.png"'
    'issue_files[]'=>'@"/Users/apple/Desktop/design_screenshot.png"'
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Files card_screenshot.png and design_screenshot.png got uploaded successfully"
}

This API endpoint adds the attachment files to an issue.

HTTP Request

POST https://api.bugasura.io/issues/attachments/add

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the attachment files needs to be uploaded for an issue.
issue_key* Integer Issue key of the issue for which the attachment files needs to be uploaded.
issue_files* File Issue attachment files. Maximum 10 files can be uploaded and each file's size should be less than or equal to 10MB.

attachments/delete

curl  -H 'Authorization: Basic <Your API_KEY goes here>' \
    -H 'Accept: application/json' \
    -F 'team_id=30321' \
    -F 'issue_key=78123' \
    -F 'file_names=card_screenshot.png, design_screenshot.png' \
    -X POST 'https://api.bugasura.io/issues/attachments/delete'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/issues/attachments/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'team_id' => '30321',
    'issue_key' => '78123',
    'file_names' => 'card_screenshot.png, design_screenshot.png',
]);

$response = curl_exec($ch);

curl_close($ch);
 ?>
import requests

headers = {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
}

files = {
    'team_id': (None, '30321'),
    'issue_key': (None, '78123'),
    'file_names': (None, 'card_screenshot.png, design_screenshot.png'),
}

response = requests.post('https://api.bugasura.io/issues/attachments/delete', headers=headers, files=files)
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://api.bugasura.io/issues/attachments/delete");
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setRequestMethod("POST");

        httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>");
        httpConn.setRequestProperty("Accept", "application/json");

        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
                ? httpConn.getInputStream()
                : httpConn.getErrorStream();
        Scanner s = new Scanner(responseStream).useDelimiter("\\A");
        String response = s.hasNext() ? s.next() : "";
        System.out.println(response);
    }
}
const form = new FormData();
form.append('team_id', '30321');
form.append('issue_key', '78123');
form.append('file_names', 'card_screenshot.png, design_screenshot.png');

fetch('https://api.bugasura.io/issues/attachments/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: form
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/issues/attachments/delete")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Basic <Your API_KEY goes here>"
request["Accept"] = "application/json"
request.set_form_data(
    'team_id'=>'30321'
    'issue_key'=>'78123'
    'file_names'=>'card_screenshot.png, design_screenshot.png'
)

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

# response.code
# response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Files card_screenshot.png and design_screenshot.png got deleted successfully"
}

This API endpoint deletes the attachment files of an issue.

HTTP Request

POST https://api.bugasura.io/issues/attachments/delete

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which an issue's attachment files needs to be deleted.
issue_key* Integer Issue key of the issue for which the attachment files needs to be deleted.
file_names* String Name of the issue's attachment files which you want to delete. Each file names should be separated by comma and the file should be exist for the issue.

TEST MANAGEMENT

Requirements

requirements/list

curl  -H 'Authorization: Basic <Your API_KEY goes here>'
  -H 'Accept: application/json'
  -X GET 'https://api.bugasura.io/requirements/list?appId=47223&teamId=30321'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/requirements/list?appId=47223&teamId=30321');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Basic <Your API_KEY goes here>',
    'Accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'appId': '47223', 'teamId': '30321' }

response = requests.get('requirements/list', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/requirements/list?appId=47223&teamId=30321"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('requirements/list?appId=47223&teamId=30321', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/requirements/list?appId=47223&teamId=30321") request = Net::HTTP::Get.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "Requirements list fetched successfully",
  "requirementsList": [
    {
      "requirement_id": 1520,
      "app_id": 47223,
      "folder_id": 8887,
      "title": "Document -1",
      "details": null,
      "source": "CUSTOM",
      "priority": "HIGH",
      "tags": null,
      "creator_id": 10642,
      "created_date": "2025-06-12 10:48:01",
      "last_modified_by": 10642,
      "last_modified": "2025-06-12 10:48:01",
      "creator_name": "Arjun P",
      "creator_profile_image": "10642.1748926935.avatar-1.png",
      "tc_count": 0,
      "NROWS": 3,
      "STATUS": "OK"
    },
    {
      "requirement_id": 1519,
      "app_id": 47223,
      "folder_id": 8887,
      "title": "Document",
      "details": null,
      "source": "CUSTOM",
      "priority": "HIGH",
      "tags": null,
      "creator_id": 10642,
      "created_date": "2025-06-12 10:47:39",
      "last_modified_by": 10642,
      "last_modified": "2025-06-12 10:47:39",
      "creator_name": "Arjun P",
      "creator_profile_image": "10642.1748926935.avatar-1.png",
      "tc_count": 0
    },
    {
      "requirement_id": 1518,
      "app_id": 47223,
      "folder_id": 8890,
      "title": "Ts-1",
      "details": null,
      "source": "CUSTOM",
      "priority": "HIGH",
      "tags": null,
      "creator_id": 10642,
      "created_date": "2025-06-12 10:42:04",
      "last_modified_by": 10642,
      "last_modified": "2025-06-12 10:42:04",
      "creator_name": "Arjun P",
      "creator_profile_image": "10642.1748926935.avatar-1.png",
      "tc_count": 0
    }
  ],
  "totalRequirementsCount": 3,
  "isAdminUser": 1
}

This API endpoint will get list of requirements within a specified app and team.

HTTP Request

GET requirements/list

Query Parameters

Parameter Type Default Description
app_id* Integer ID for the application from which the requirements need to be fetched.
team_id* Integer ID of the team whose requirements needs to be retrieved.
report_id Integer ID of the sprint associated with the requirement. Provides additional context filtering and validation for sprint-specific requirement retrieval.
folder_id Integer ID of a specific folder to filter requirements. When provided, only returns requirements organized within that folder structure.

requirement/get

curl -H 'Authorization: Basic <Your API_KEY goes here>'
    -H 'Accept: application/json'
    -X GET 'requirement/get?appId=47223&teamId=30321&requirementId=1523'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/requirement/get?appId=47223&teamId=30321&requirementId=1523');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Basic <Your API_KEY goes here>',
    'Accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'appId': '47223', 'teamId': '30321', 'requirementId': '1523' }

response = requests.get('requirement/get', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/requirement/get?appId=47223&teamId=30321&requirementId=1523"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('requirement/get?appId=47223&teamId=30321&requirementId=1523', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/requirement/get?appId=47223&teamId=30321&requirementId=1523") request = Net::HTTP::Get.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "Requirement details fetched successfully",
  "requirementDetails": [
    {
      "requirement_id": 1523,
      "app_id": 47223,
      "folder_id": 8887,
      "folder_name": "Test Flow",
      "title": "API testings",
      "details": null,
      "source": "CUSTOM",
      "priority": "HIGH",
      "connection_details": "null",
      "files_available": "{"files_details":[]}",
      "tools_project_name": null,
      "tools_project_id": null,
      "assignees": null,
      "tags": null,
      "creator_id": 10642,
      "created_date": "2025-06-12 12:34:42",
      "last_modified_by": 10642,
      "last_modified": "2025-06-12 12:34:42",
      "creator_name": "Arjun P",
      "tc_count": 0,
      "NROWS": 1,
      "STATUS": "OK"
    }
  ]
}

This API endpoint will get a specific requirement within the specific app based on the requirement ID.

HTTP Request

GET requirement/get

Query Parameters

Parameter Type DEfault Description
team_id* Integer ID of the team for which the specific requirement need to be retrieved.
app_id* Integer ID of the application containing the requirement.
requirement_id* Integer ID of the specific requirement to be retrieved.
report_id Integer ID of the sprint associated with the requirement. Provides additional context for sprint-specific requirement retrieval.

requirement/add

curl -L -X POST 'https://api.bugasura.io/requirement/add'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
    "teamId": "30321",
    "appId": "47223",
    "folderId": "8887",
    "isQuickAdd": "0",
    "priority": "HIGH",
    "source": "custom",
    "title": "Team Management"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/requirement/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Basic <Your API_KEY goes here>',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'appId' => '47223',
    'teamId' => '30321',
    'folderId' => '8887',
    'isQuickAdd' => '0',
    'priority' => 'HIGH',
    'source' => 'custom',
    'title' => 'Team Management'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json' }

data = { 'appId': '47223', 'teamId': '30321', 'folderId': '8887', 'isQuickAdd': '0', 'priority': 'HIGH', 'source': 'custom', 'title': 'Team Management' }

response = requests.post('https://api.bugasura.io/requirement/add', headers=headers, json=data)

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/requirement/add"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

String jsonInputString = "{\"appId\":\"47223\",\"teamId\":\"30321\",\"folderId\":\"8887\",\"isQuickAdd\":\"0\",\"priority\":\"HIGH\",\"source\":\"custom\",\"title\":\"Team Management\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

int responseCode = httpConn.getResponseCode(); System.out.println("Response Code: " + responseCode); } }

fetch('https://api.bugasura.io/requirement/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    },
    body: JSON.stringify({
        appId: '47223',
        teamId: '30321',
        folderId: '8887',
        isQuickAdd: '0',
        priority: 'HIGH',
        source: 'custom',
        title: 'Team Management'
    })
});
require 'net/http'
require 'uri'
require 'json'

url = URI("https://api.bugasura.io/requirement/add") request = Net::HTTP::Post.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "appId" => "47223", "teamId" => "30321", "folderId" => "8887", "isQuickAdd" => "0", "priority" => "HIGH", "source" => "custom", "title" => "Team Management" })

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "Requirement added successfully",
  "requirement_id": 1520
}

This API endpoint will add a requirement within the specific app.

HTTP Request

POST requirement/add

Request Parameters

Parameter Type Default Description
app_id* Integer ID for the application where the requirement will be added.
team_id* Integer ID of the team that owns the requirement.
folder_id* Integer ID of the folder where the requirement will be organized within the project structure
isQuickAdd* Integer Flag to indicate if this is a quick add operation. Set to 0 for full requirement creation, 1 for simplified quick add
priority* enum Priority level of the requirement. Accepted values('CRITICAL', 'HIGH', 'MEDIUM', 'LOW')
source* enum Source of the requirement. Accepted values (JIRA', 'ASANA', 'GITHUB', 'CUSTOM', 'FILE_UPLOAD', 'API_DOCS', 'IMAGES', 'ARCHITECTURE_IMAGES', 'DB_SCHEMA_IMAGES', 'WIREFRAME_IMAGES', 'DESIGN_IMAGES', 'FLOW_IMAGES', 'FIGMA', 'GOOGLE_DOCS')
title* String Clear and concise title of the requirement. This will be the main identifier for the requirement
assignees String Usernames who are assigned to work on this requirement
tags String Tags for categorizing and filtering requirements
details text Comprehensive description of the requirement including acceptance criteria, specifications, and any additional context (if any)

requirement/update

curl -H 'Authorization: 'Basic <Your API_KEY goes here>'
    -H 'Accept: application/json'
    -X POST 'https://api.bugasura.io/requirement/update'
    -d '{
        "appId": "47223",
        "requirementId": "1520",
        "folderId": "8887",
        "title": "Team Management-1"
    }'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/requirement/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: 'Basic <Your API_KEY goes here>',
    'Accept: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'appId' => '47223',
    'requirementId' => '1520',
    'folderId' => '8887',
    'title' => 'Team Management-1'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'appId': '47223', 'requirementId': '1520', 'folderId': '8887', 'title': 'Team Management-1' }

response = requests.post('https://api.bugasura.io/requirement/update', headers=headers, json=data)

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/requirement/update"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

String jsonInputString = "{\"appId\":\"47223\",\"requirementId\":\"1520\",\"folderId\":\"8887\",\"title\":\"Team Management-1\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

int responseCode = httpConn.getResponseCode(); System.out.println("Response Code: " + responseCode); } }

fetch('https://api.bugasura.io/requirement/update', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        appId: '47223',
        requirementId: '1520',
        folderId: '8887',
        title: 'Team Management-1'
    })
});
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://api.bugasura.io/requirement/update") request = Net::HTTP::Post.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "appId" => "47223", "requirementId" => "1520", "folderId" => "8887", "title" => "Team Management-1" })

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "Requirement updated successfully"
}

This API endpoint will update the specific requirement.

HTTP Request

POST requirement/update

Request Parameters

Parameter Type Default Description
app_id* Integer ID of the application containing the requirement to be updated
requirement_id* Integer ID of the specific requirement to be updated.
folder_id* Integer ID of the folder where the requirement should be moved.
report_id Integer ID of the sprint to reassign this requirement to.
title String Updated title of the requirement. Provide only if changing the current title
details String Updated comprehensive description including acceptance criteria and specifications. Provide only if modifying existing details
priority enum Updated priority level of the requirement. Accepted values: CRITICAL', 'HIGH', 'MEDIUM', 'LOW
assignees String Updated username(s) who should be assigned to work on this requirement
tag String Updated tag(s) for categorizing and filtering requirements.

requirement/delete

curl -H 'Authorization: Basic <Your API_KEY goes here>'
    -H 'Accept: application/json'
    -X POST 'https://api.bugasura.io/requirement/delete'
    -d '{
        "appId": "47223",
        "requirementId": "1520"
    }'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/requirement/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Basic <Your API_KEY goes here>',
    'Accept: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'appId' => '47223',
    'requirementId' => '1520'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'appId': '47223', 'requirementId': '1520' }

response = requests.post('https://api.bugasura.io/requirement/delete', headers=headers, json=data)

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/requirement/delete"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>); httpConn.setRequestProperty("Accept", "application/json");

String jsonInputString = "{</span>"appId\":\"47223\",\"requirementId\":\"1520\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

int responseCode = httpConn.getResponseCode(); System.out.println("Response Code: " + responseCode); } }

fetch('requirement/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        appId: '47223',
        requirementId: '1520'
    })
});
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://api.bugasura.io/requirement/delete") request = Net::HTTP::Post.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "appId" => "47223", "requirementId" => "1520" })

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "Requirement deleted successfully"
}

This API endpoint will delete a requirement.

HTTP Request

POST requirement/delete

Request Parameters

Parameter Type Default Description
app_id* Integer ID for the application containing the requirement to be deleted.
requirement_id* Integer ID of the specific requirement to be permanently deleted.
report_id Integer ID of the sprint containing the requirement. Provide for additional validation or to optimize deletion when requirement is part of a specific sprint
folder_id Integer ID of the folder containing the requirement. Used for additional validation and to ensure proper cleanup of folder associations.

requirement/linkUnlinkRequirementTestCases

curl  -H 'Authorization: Basic <Your API_KEY goes here>'
    -H 'Accept: application/json'

-X POST 'https://api.bugasura.io/requirement/linkUnlinkRequirementTestCases' -d '{ "appId": "47223", "teamId": "30321", "requirementId": "1525", "testCaseId": "6928" }'

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/requirement/linkUnlinkRequirementTestCases');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'appId' => '47223',
    'teamId' => '30321',
    'requirementId' => '1525',
    'testCaseId' => '6928'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'appId': '47223', 'teamId': '30321', 'requirementId': '1525', 'testCaseId': '6928' }

response = requests.post('https://api.bugasura.io/requirement/linkUnlinkRequirementTestCases', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/requirement/linkUnlinkRequirementTestCases"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

String jsonInputString = "{\"appId\": \"47223\", \"teamId\": \"30321\", \"requirementId\": \"1525\", \"testCaseId\": \"6928\"}";

try(OutputStream os = httpConn.getOutputStream()) { byte[] input = jsonInputString.getBytes("utf-8"); os.write(input, 0, input.length);
}

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('requirement/linkUnlinkRequirementTestCases', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        'appId': '47223',
        'teamId': '30321',
        'requirementId': '1525',
        'testCaseId': '6928'
    })
});
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://api.bugasura.io/requirement/linkUnlinkRequirementTestCases") request = Net::HTTP::Post.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.generate({ "appId" => "47223", "teamId" => "30321", "requirementId" => "1525", "testCaseId" => "6928" })

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

Response when the testcase is linked with a requirement:
{
    "status": "OK",
    "message": "Test case linked successfully"
}

Response when the testcase is unlinked from a requirement: { "status": "OK", "message": "Test case unlinked successfully" }

This endpoint will link/unlink test cases from requirements, enabling traceability between requirements and their corresponding test cases.

HTTP Request

POST requirement/linkUnlinkRequirementTestCases

Request Parameters

Parameter Type Default Description
app_id* Integer ID of the application containing the requirement. This specifies which application's requirements and test cases are being managed.
team_id* Integer ID of the team that owns the requirement. This ensures the operation is performed within the correct team context and access permissions.
testCaseId* Integer ID of the test case being processed in the link/unlink operation. This specifies which test case is the subject of the association change.
requirement_id* Integer ID of the requirement to which test cases will be linked/unlinked.
sprint_id Integer ID of the sprint. Include this when linking test cases within a specific sprint context for better organization.
folder_id Integer ID of the test case folder. Use this to organize linked test cases within specific folder structures.
deleteTestCaseId Integer ID of a test case to be unlinked from the requirement. Use this parameter when removing an existing association between a requirement and test case.
isDelete Integer Flag to link/unlink requirement testcase. Pass 1 to unlink and 0 to link the testcase.

Test Cases

testcases/list

curl -L -X GET 'https://api.bugasura.io/testcases/list?app_id=47223&team_id=30321'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testcases/list?app_id=47223&team_id=30321&suites_id=123&folder_id=771&sortBy=created_date&searchText=login&groupBy=priority');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'app_id': '47223', 'team_id': '30321', }

response = requests.get('https://api.bugasura.io/testcases/list', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testcases/list?app_id=47223&team_id=30321"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('https://api.bugasura.io/testcases/list?app_id=47223&team_id=30321', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/testcases/list?app_id=47223&team_id=30321")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Get.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Test cases list fetched successfully",
    "testCaseDetails": [
        {
            "app_id": 47223,
            "app_name": "Flipkart",
            "team_id": 30321,
            "test_case_id": 6930,
            "test_case_number": "TES3",
            "id": "3",
            "folder_id": 771,
            "scenario": "API tset case",
            "testing_type": "Functional,API",
            "source": "USER",
            "priority": "MEDIUM",
            "feature_name": "Feature",
            "sub_feature_name": "Feature",
            "creator_id": 10642,
            "creator_name": "Arjun P",
            "creator_profile_image": "10642.1748926935.avatar-1.png",
            "NROWS": 3,
            "STATUS": "OK"
        },
        {
            "app_id": 47223,
            "app_name": "Flipkart",
            "team_id": 30321,
            "test_case_id": 6929,
            "test_case_number": "TES2",
            "id": "2",
            "folder_id": 769,
            "scenario": "Test caes tsetinf",
            "testing_type": "Functional",
            "source": "USER",
            "priority": "MEDIUM",
            "feature_name": "faeture",
            "sub_feature_name": "sub feature",
            "creator_id": 10642,
            "creator_name": "Arjun P",
            "creator_profile_image": "10642.1748926935.avatar-1.png"
        },
        {
            "app_id": 47223,
            "app_name": "Flipkart",
            "team_id": 30321,
            "test_case_id": 6928,
            "test_case_number": "TES1",
            "id": "1",
            "folder_id": 767,
            "scenario": "login page",
            "testing_type": "UI",
            "source": "USER",
            "priority": "MEDIUM",
            "feature_name": "feature",
            "sub_feature_name": "sub feature",
            "creator_id": 10642,
            "creator_name": "Arjun P",
            "creator_profile_image": "10642.1748926935.avatar-1.png"
        }
    ],
    "totalTestCasesCount": 3
}

This API endpoint gets the list of test case details.

HTTP Request

GET https://api.bugasura.io/testcases/list

Query Parameters

Parameter Type Default Description
app_id* Integer ID of the application for which test cases need to be listed.
team_id* Integer ID of the team for which the test cases need to be listed.
suites_id Integer ID of the test suite to filter test cases.
folder_id Integer ID of the folder to filter test cases from specific folder.
tag_id Integer ID of the tag to filter test cases by tag.
totalLoadedCount Integer Number of test cases already loaded (for pagination).

testcases/get

curl -L -X GET 'https://api.bugasura.io/testcases/get?app_id=47223&report_id=5678&testcase_id=6930'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testcases/get?app_id=47223&report_id=5678&testcase_id=6930');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'app_id': '47223', 'report_id': '5678', 'testcase_id': '6930', }

response = requests.get('https://api.bugasura.io/testcases/get', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testcases/get?app_id=47223&report_id=5678&testcase_id=6930"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('https://api.bugasura.io/testcases/get?app_id=47223&report_id=5678&testcase_id=6930', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/testcases/get?app_id=47223&report_id=5678&testcase_id=6930")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Get.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Test case details fetched successfully",
    "testCaseDetails": [
        {
            "app_id": 47223,
            "app_name": "Flipkart",
            "team_id": 30321,
            "folder_id": 771,
            "test_case_id": 6930,
            "test_case_number": "TES3",
            "id": "3",
            "tc_prefix": null,
            "testing_type": "Functional,API",
            "source": "USER",
            "priority": "MEDIUM",
            "scenario": "API tset case",
            "feature_name": "Feature",
            "sub_feature_name": "Feature",
            "test_conditions": null,
            "test_idea": null,
            "test_data": null,
            "test_steps": null,
            "acceptance_criteria": null,
            "execution_status": "NEW",
            "test_case_status": "PENDING",
            "assignee": null,
            "device_details": "[]",
            "is_api_test_case": 1,
            "api_request_method": "GET",
            "api_end_point_url": "bugasura.com",
            "request_code": null,
            "advanced_testcase_details": null,
            "created_date": "2025-03-27 18:51:55",
            "last_modified": "2025-03-27 18:51:55",
            "creator_id": 10642,
            "last_modified_by": 10642,
            "approval_status": null,
            "approved_by": null,
            "approved_on": null,
            "approved_by_name": null,
            "total_pass_count": "0",
            "total_fail_count": "0",
            "creator_name": "Arjun P",
            "creator_email_id": "arjun@appachhi.com",
            "creator_profile_image": "10642.1748926935.avatar-1.png",
            "custom_tags": null,
            "sprint_ids": null,
            "NROWS": 1,
            "STATUS": "OK",
            "flows": "{"scenarios":[{"name":"API tset case","request_method":"GET","api_end_point_url":"bugasura.com","request_code":null,"required_params":null,"required_flow_response":-1,"expected_output":null}]}"
        }
    ]
}

This API endpoint gets all the details related to a specific testcase.

HTTP Request

GET https://api.bugasura.io/testcases/get

Query Parameters

Parameter Type Default Description
app_id* Integer ID of the application for which test case need to be obtained.
testcase_id* Integer TestCase ID of the specific testcase for which the details need to be obtained.
team_id Integer ID of the team for which the testcase details need to be obtained.
report_id Integer ID of the report associated with the test case.

testcases/add

curl -L -X POST 'https://api.bugasura.io/testcases/add'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "app_id": 12345,
  "isAIGenerated": 0,
  "testCaseDetails": [{"feature_name":"TEST","sub_feature_name":"API","test_case_scenario":"Feature 1","testing_type":"Functional","severity":"low","test_conditions":"","test_steps":"","test_idea":"","test_data":"","acceptance_criteria":"","assignee":"","custom_tags":"","is_api_test_case":"0"}]
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testcases/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'app_id' => 12345,
    'isAIGenerated' => 0,
    'testCaseDetails' => [{"feature_name":"TEST","sub_feature_name":"API","test_case_scenario":"Feature 1","testing_type":"Functional","severity":"low","test_conditions":"","test_steps":"","test_idea":"","test_data":"","acceptance_criteria":"","assignee":"","custom_tags":"","is_api_test_case":"0"}]
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'app_id': 12345, 'isAIGenerated': 0, 'testCaseDetails': [{"feature_name":"TEST","sub_feature_name":"API","test_case_scenario":"Feature 1","testing_type":"Functional","severity":"low","test_conditions":"","test_steps":"","test_idea":"","test_data":"","acceptance_criteria":"","assignee":"","custom_tags":"","is_api_test_case":"0"}] }

response = requests.post('https://api.bugasura.io/testcases/add', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testcases/add"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

String jsonPayload = "{" + "\"app_id\": 12345," + "\"isAIGenerated\": 0," + "\"testCaseDetails\": [{"feature_name":"TEST","sub_feature_name":"API","test_case_scenario":"Feature 1","testing_type":"Functional","severity":"low","test_conditions":"","test_steps":"","test_idea":"","test_data":"","acceptance_criteria":"","assignee":"","custom_tags":"","is_api_test_case":"0"}]" + "}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = jsonPayload.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

int responseCode = httpConn.getResponseCode(); System.out.println("Response Code: " + responseCode); } }

fetch('https://api.bugasura.io/testcases/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        app_id: 12345,
        isAIGenerated: 0,
        testCaseDetails: [{"feature_name":"TEST","sub_feature_name":"API","test_case_scenario":"Feature 1","testing_type":"Functional","severity":"low","test_conditions":"","test_steps":"","test_idea":"","test_data":"","acceptance_criteria":"","assignee":"","custom_tags":"","is_api_test_case":"0"}]
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testcases/add")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json" request.body = JSON.dump({ "app_id" => 12345, "isAIGenerated" => 0, "testCaseDetails" => [{"feature_name":"TEST","sub_feature_name":"API","test_case_scenario":"Feature 1","testing_type":"Functional","severity":"low","test_conditions":"","test_steps":"","test_idea":"","test_data":"","acceptance_criteria":"","assignee":"","custom_tags":"","is_api_test_case":"0"}] })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Test case added successfully",
    "testCaseDetails": [
        {
            "feature_name": "TEST",
            "sub_feature_name": "API",
            "test_case_scenario": "Feature 1",
            "testing_type": "Functional",
            "severity": "LOW",
            "test_conditions": "",
            "test_steps": "",
            "test_idea": "",
            "test_data": "",
            "acceptance_criteria": "",
            "assignee": "",
            "custom_tags": "",
            "is_api_test_case": "0",
            "device_system_details": "[]",
            "test_case_id": 33216,
            "id": 5,
            "source": "USER",
            "creator_id": 10642,
            "last_modified_by": 10642,
            "created_date": "2025-06-11 19:39:45",
            "last_modified": "2025-06-11 19:39:45",
            "tc_prefix": "TES",
            "app_name": "Flipkart"
        }
    ]
}

This API endpoint adds a testcase to the specified application and team.

HTTP Request

POST https://api.bugasura.io/testcases/add

Request Parameters

Parameter Type Default Description
app_id* Integer ID of the application where the test case will be added.
testCaseDetails* String Pass the testCaseDetails values in JSON string format to add testcase. The value of each testCaseDetails should be valid for the field.
isAiGenerated Integer 0 Flag to make AI generate the testcase. By default the value is 0. Pass 1 to make AI generate the testcase.
folder_id Integer ID of the folder to which the testcase need to be added.

testcases/update

curl  -H 'Authorization: Basic <Your API_KEY goes here>'
    -H 'Accept: application/json'
    -X POST 'https://api.bugasura.io/testcases/update'
    -d '{
        "team_id": 12345,
        "app_id": 56789,
        "testcase_id": 6968,
        "executionStatus": "NEW"
    }'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testcases/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);

$data = json_encode([ 'team_id' => 12345, 'app_id' => 56789, 'testcase_id' => 6968, 'executionStatus' => 'NEW' ]);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'team_id': 12345, 'app_id': 56789, 'testcase_id': 6968, 'executionStatus': 'NEW' }

response = requests.post('https://api.bugasura.io/testcases/update', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL('https://api.bugasura.io/testcases//update'); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

String data = "{\"team_id\":12345,\"app_id\":56789,\"testcase_id\":6968,\"executionStatus":</span>"NEW\"}";

try(OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length);
}

Scanner s = new Scanner(httpConn.getInputStream()).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

const data = {
    team_id: 12345,
    app_id: 56789,
    testcase_id: 6968,
    executionStatus: "NEW"
};

fetch('https://api.bugasura.io/testcases/update', { method: 'POST', headers: { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }, body: JSON.stringify(data) });

require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("/testcases/update") request = Net::HTTP::Post.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

data = { team_id: 12345, app_id: 56789, testcase_id: 6968, executionStatus: "NEW" }

request.body = data.to_json

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Test case details updated successfully",
    "testCaseDetails": {
        "app_id": 47223,
        "app_name": "Flipkart",
        "team_id": 30321,
        "folder_id": 771,
        "test_case_id": 6930,
        "test_case_number": "TES3",
        "id": "3",
        "tc_prefix": null,
        "testing_type": "Functional,API",
        "source": "USER",
        "priority": "MEDIUM",
        "scenario": "API tset case",
        "feature_name": "Feature",
        "sub_feature_name": "Feature",
        "test_conditions": null,
        "test_idea": null,
        "test_data": null,
        "test_steps": null,
        "acceptance_criteria": null,
        "execution_status": "NEW",
        "test_case_status": "PENDING",
        "assignee": null,
        "device_details": "[]",
        "is_api_test_case": 1,
        "api_request_method": "GET",
        "api_end_point_url": "bugasura.com",
        "request_code": null,
        "advanced_testcase_details": null,
        "created_date": "2025-03-27 18:51:55",
        "last_modified": "2025-06-11 15:49:17",
        "creator_id": 10642,
        "last_modified_by": 10642,
        "approval_status": null,
        "approved_by": null,
        "approved_on": null,
        "approved_by_name": null,
        "total_pass_count": "0",
        "total_fail_count": "0",
        "creator_name": "Arjun P",
        "creator_email_id": "arjun@appachhi.com",
        "creator_profile_image": "10642.1748926935.avatar-1.png",
        "custom_tags": null,
        "sprint_ids": null,
        "NROWS": 1,
        "STATUS": "OK",
        "flows": "{"scenarios</span>":[{"name":"API tset case","request_method":"GET","api_end_point_url":"bugasura.com","request_code":null,"required_params":null,"required_flow_response":-1,"expected_output":null}]}"
    }
}

This API endpoint will allow user to update the testcase details.

HTTP Request

POST https://api.bugasura.io/testcases/update

Query Parameters

Parameter Type Default Description
team_id* integer The ID of the team for which the testcase details need to be updated
app_id* integer The ID of the application in which the testcses are available
testcase_id* integer The ID of the specific test case that needs to be updated
testCaseDetails string Updated test case details
executionStatus enum Execution status of the testcase and it takes either 'NEW', 'IN_PROGRESS', 'ERROR', 'CANCELLED', 'COMPLETED'or 'BLOCKED'
testCaseStatus enum Status of the test cases. Accepted values are 'PENDING', 'PASS', 'FAIL'
testCaseAssignees array List of assignees for the test case
testCaseSeverity string Severity level of the test case
isTestCaseAssigneesUpdate false Flag to indicate if assignees are being updated
folderId integer ID of the folder containing the test case

testcases/delete

curl -L -X POST 'https://api.bugasura.io/testcases/delete'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "team_id": 36917,
  "app_id": 12345,
  "testcaseids": [33216, 33217, 33218],
  "isDeleteTestCases": 1
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testcases/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'team_id' => 36917,
    'app_id' => 12345,
    'testcaseids' => [33216, 33217, 33218],
    'isDeleteTestCases' => 1
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'team_id': 36917, 'app_id': 12345, 'testcaseids': [33216, 33217, 33218], 'isDeleteTestCases': 1 }

response = requests.post('https://api.bugasura.io/testcases/delete', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testcases/delete"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

String jsonPayload = "{" + "\"team_id\": 36917," + "\"app_id\": 12345," + "\"testcaseids\": [33216, 33217, 33218]," + "\"isDeleteTestCases\": 1" + "}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = jsonPayload.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

int responseCode = httpConn.getResponseCode(); System.out.println("Response Code: " + responseCode); } }

fetch('https://api.bugasura.io/testcases/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        team_id: 36917,
        app_id: 12345,
        testcaseids: [33216, 33217, 33218],
        isDeleteTestCases: 1
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testcases/delete")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json" request.body = JSON.dump({ "team_id" => 36917, "app_id" => 12345, "testcaseids" => [33216, 33217, 33218], "isDeleteTestCases" => 1 })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Successfully deleted the test case details."
}

This API endpoint deletes a specific testcase based on the testcase ID.

HTTP Request

POST https://api.bugasura.io/testcases/delete

Request Parameters

Parameter Type Default Description
team_id* Integer ID of the team that owns the test cases.
app_id* Integer ID of the application containing the test cases to be deleted.
testcaseids* Integer ID of the testcase to be deleted.
isDeleteTestCases Integer 1 Flag to confirm deletion of test cases.

Test Case Comments

testcasecomments/list

curl  -H 'Authorization: Basic <Your API_KEY goes here>'
  -H 'Accept: application/json'
  -X GET 'https://api.bugasura.io/testcasecomments/list?team_id=37669&app_id=54525&testCaseId=4532'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testcasecomments/list?team_id=37669&app_id=54525&testCaseId=4532');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'team_id': '37669', 'app_id': '54525', 'testCaseId': '4532', }

response = requests.get('https://api.bugasura.io/testcasecomments/list', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testcasecomments/list?team_id=37669&app_id=54525&testCaseId=4532"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('https://api.bugasura.io/testcasecomments/list?team_id=37669&app_id=54525&testCaseId=4532', {
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json'
  }
});
require 'net/http'
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/testcasecomments/list?team_id=37669&app_id=54525&testCaseId=4532") request = Net::HTTP::Get.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "TestCaseComments list fetched successfully",
  "testCaseCommentsList": [
    {
      "test_case_id": 4532,
      "id": "1478",
      "scenario": "Submitting a form with required fields left empty in Bugasura.",
      "comment_id": 42,
      "comment": "comment 2 from test case sprint",
      "comment_report_id": 63212,
      "parent_comment_id": null,
      "comment_images": null,
      "comment_attachments": null,
      "creator_id": 10642,
      "created_dt": "2025-06-17 11:36:28",
      "modified_by": null,
      "last_modified": "2025-06-17 11:36:28",
      "is_deleted": 0,
      "comment_creator_id": 10642,
      "comment_creator_name": "Arjun P",
      "comment_creator_email_id": "arjun@appachhi.com",
      "profile_image": "10642.1749032173.avatar-19.png",
      "comment_creator_profile_image": "10642.1749032173.avatar-19.png",
      "comment_modified_by_id": null,
      "comment_modified_by_name": null,
      "comment_modified_by_email_id": null,
      "comment_modified_by_profile_image": null,
      "NROWS": 4,
      "STATUS": "OK"
    },
    {
      "test_case_id": 4532,
      "id": "1478",
      "scenario": "Submitting a form with required fields left empty in Bugasura.",
      "comment_id": 41,
      "comment": "comment1 from test case sprint",
      "comment_report_id": 63212,
      "parent_comment_id": null,
      "comment_images": null,
      "comment_attachments": null,
      "creator_id": 10642,
      "created_dt": "2025-06-17 11:34:59",
      "modified_by": null,
      "last_modified": "2025-06-17 11:34:59",
      "is_deleted": 0,
      "comment_creator_id": 10642,
      "comment_creator_name": "Arjun P",
      "comment_creator_email_id": "arjun@appachhi.com",
      "profile_image": "10642.1749032173.avatar-19.png",
      "comment_creator_profile_image": "10642.1749032173.avatar-19.png",
      "comment_modified_by_id": null,
      "comment_modified_by_name": null,
      "comment_modified_by_email_id": null,
      "comment_modified_by_profile_image": null
    },
    {
      "test_case_id": 4532,
      "id": "1478",
      "scenario": "Submitting a form with required fields left empty in Bugasura.",
      "comment_id": 40,
      "comment": "comment2",
      "comment_report_id": 63408,
      "parent_comment_id": null,
      "comment_images": null,
      "comment_attachments": null,
      "creator_id": 10642,
      "created_dt": "2025-06-17 11:19:53",
      "modified_by": null,
      "last_modified": "2025-06-17 11:19:53",
      "is_deleted": 0,
      "comment_creator_id": 10642,
      "comment_creator_name": "Arjun P",
      "comment_creator_email_id": "arjun@appachhi.com",
      "profile_image": "10642.1749032173.avatar-19.png",
      "comment_creator_profile_image": "10642.1749032173.avatar-19.png",
      "comment_modified_by_id": null,
      "comment_modified_by_name": null,
      "comment_modified_by_email_id": null,
      "comment_modified_by_profile_image": null
    },
    {
      "test_case_id": 4532,
      "id": "1478",
      "scenario": "Submitting a form with required fields left empty in Bugasura.",
      "comment_id": 39,
      "comment": "comment1",
      "comment_report_id": 63408,
      "parent_comment_id": null,
      "comment_images": null,
      "comment_attachments": null,
      "creator_id": 10642,
      "created_dt": "2025-06-17 11:19:47",
      "modified_by": null,
      "last_modified": "2025-06-17 11:19:47",
      "is_deleted": 0,
      "comment_creator_id": 10642,
      "comment_creator_name": "Arjun P",
      "comment_creator_email_id": "arjun@appachhi.com",
      "profile_image": "10642.1749032173.avatar-19.png",
      "comment_creator_profile_image": "10642.1749032173.avatar-19.png",
      "comment_modified_by_id": null,
      "comment_modified_by_name": null,
      "comment_modified_by_email_id": null,
      "comment_modified_by_profile_image": null
    }
  ]
}

This API endpoint will get the list of testcase comments details from testCaseComments Table.

HTTP Request

GET https://api.bugasura.io/testcasecomments/list

Query Parameters

Parameter Type Default Description
team_id Integer ID of the team for which the testcase comments need to be listed.
app_id Integer ID of the application for which the testcase comments need to be listed.
testCaseId Integer ID of the test case for which the comments need to be listed.
report_id Integer ID of the report to filter comments by specific report.

testcasecomments/add

curl  -H 'Authorization: Basic <Your API_KEY goes here>'
    -H 'Accept: application/json'
    -X POST '/testcasecomments/add'
    -d '{
        "team_id": 12345,
        "user_id": 10642,
        "app_id": 56789,
        "testCaseId": 6968,
        "comment": "This is a test comment"
    }'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '/testcasecomments/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'team_id' => 12345,
    'user_id' => 10642,
    'app_id' => 56789,
    'testCaseId' => 6968,
    'comment' => 'This is a test comment'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'team_id': 12345, 'user_id': 10642, 'app_id': 56789, 'testCaseId': 6968, 'comment': 'This is a test comment' }

response = requests.post('/testcasecomments/add', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("/testcasecomments/add"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

String jsonInputString = "{\"team_id\": 12345, \"user_id\": 10642, \"app_id\": 56789, \"testCaseId\": 6968, \"comment\": \"This is a test comment\"}";

try(OutputStream os = httpConn.getOutputStream()) { byte[] input = jsonInputString.getBytes("utf-8"); os.write(input, 0, input.length); }

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('/testcasecomments/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        'team_id': 12345,
        'user_id': 10642,
        'app_id': 56789,
        'testCaseId': 6968,
        'comment': 'This is a test comment'
    })
});
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("/testcasecomments/add") request = Net::HTTP::Post.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.generate({ "team_id" => 12345, "user_id" => 10642, "app_id" => 56789, "testCaseId" => 6968, "comment" => "This is a test comment" })

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Comment added successfully",
    "testCaseCommentsDetails": {
        "test_case_id": 6930,
        "id": "3",
        "testing_type": "Functional,API",
        "source": "USER",
        "priority": "MEDIUM",
        "scenario": "API test case",
        "comment_id": 1,
        "comment": "Completed",
        "comment_report_id": null,
        "parent_comment_id": null,
        "comment_images": null,
        "comment_attachments": null,
        "creator_id": 10642,
        "created_dt": "2025-06-12 15:18:03",
        "modified_by": null,
        "last_modified": "2025-06-12 15:18:03",
        "is_deleted": 0,
        "comment_creator_id": 10642,
        "comment_creator_name": "Arjun P",
        "comment_creator_email_id": "arjun@appachhi.com",
        "profile_image": "10642.1748926935.avatar-1.png",
        "comment_creator_profile_image": "10642.1748926935.avatar-1.png",
        "comment_modified_by_id": null,
        "comment_modified_by_name": null,
        "comment_modified_by_email_id": null,
        "comment_modified_by_profile_image": null,
        "NROWS": 1,
        "STATUS": "OK"
    }
}

This endpoint will insert both system and user's comments into testCaseComments table.

HTTP Request

POST /testcasecomments/add

Request Parameters

Parameter Type Default Description
team_id* Integer ID of the team to which the test case belongs. This associates the comment with the specific team.
app_id* Integer ID of the application containing the testcase. This links the comment to the specific application being tested.
testCaseId* Integer ID of the test case to which the comment is being added. This determines to which the comment gets added.
comment* String The actual comment text content that will be stored and displayed. This can include feedback, notes, observations, or any relevant information about the test case.
report_id Integer ID of the sprint. Provides additional context for sprint-specific addition of comments under testcase.
parentCommentId Integer ID of a parent comment when creating threaded/nested comments. Include this to create a reply to an existing comment.

testcasecomments/get

curl  -H 'Authorization: Basic <Your API_KEY goes here>'
    -H 'Accept: application/json'
    -X GET '/testcasecomments/get?team_id=12345&app_id=56789&testCaseId=6968&comment_id=33218&parentCommentId=5'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '/testcasecomments/get?team_id=12345&app_id=56789&testCaseId=6968&comment_id=33218&parentCommentId=5');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'team_id': '12345', 'app_id': '56789', 'testCaseId': '6968', 'comment_id': '33218', 'parentCommentId': '5', }

response = requests.get('/testcasecomments/get', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("/testcasecomments/get?team_id=12345&app_id=56789&testCaseId=6968&comment_id=33218&parentCommentId=5"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('/testcasecomments/get?team_id=12345&app_id=56789&testCaseId=6968&comment_id=33218&parentCommentId=5', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require 'net/http'
require 'uri'

uri = URI.parse("/testcasecomments/get?team_id=12345&app_id=56789&testCaseId=6968&comment_id=33218&parentCommentId=5") request = Net::HTTP::Get.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "TestCaseComments fetched successfully",
    "testCaseCommentsDetails": [
        {
            "test_case_id": 33218,
            "id": "7",
            "testing_type": "Functional",
            "source": "USER",
            "priority": "MEDIUM",
            "scenario": "Feature 1",
            "comment_id": 5,
            "comment": "This is parent comment edited",
            "comment_report_id": null,
            "parent_comment_id": 5,
            "comment_images": null,
            "comment_attachments": null,
            "creator_id": 10642,
            "created_dt": "2025-06-13 00:00:50",
            "modified_by": 10642,
            "last_modified": "2025-06-13 08:31:30",
            "is_deleted": 0,
            "comment_creator_id": 10642,
            "comment_creator_name": "Arjun P",
            "comment_creator_email_id": "arjun@appachhi.com",
            "profile_image": "10642.1748926935.avatar-1.png",
            "comment_creator_profile_image": "10642.1748926935.avatar-1.png",
            "comment_modified_by_id": 10642,
            "comment_modified_by_name": "Arjun P",
            "comment_modified_by_email_id": "arjun@appachhi.com",
            "comment_modified_by_profile_image": "10642.1748926935.avatar-1.png",
            "NROWS": 1,
            "STATUS": "OK"
        }
    ],
    "lastCommentId": 0
}

This endpoint will get the testCaseComments details with comprehensive information about comments, their creators, and associated test case metadata.

HTTP Request

GET /testcasecomments/get

Query Parameters

Parameter Type DEfault Description
team_id* Integer ID of the team that owns the testcase. This ensures access to comments within the correct team context and validates user permissions for the team.
app_id* Integer ID of the application that contains testcase. This helps filter comments to those associated with a specific application and provides additional context for comment organization.
testCaseId* Integer ID of the specific test case whose comments need to be retrieved. Include this to get all comments associated with a particular test case.
commentId* Integer ID of a specific comment to retrieve. Use this parameter when you need to fetch details of a specific comment.
parentCommentId Integer Identifier of the parent comment in a threaded conversation. Use this to retrieve replies or child comments that belong to a specific parent comment thread.

testcase/comments/update

curl  -H 'Authorization: Basic <Your API_KEY goes here>'
  -H 'Accept: application/json'
  -X POST 'https://api.bugasura.io/testcasecomments/update' </span>
  -d '{
    "team_id": 30321,
    "app_id": 47223,
    "testCaseId": 12353,
    "comment_id": "33",
    "comment": "Sample comment added"
  }'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testcasecomments/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
  'team_id' => 30321,
  'app_id' => 47223,
  'testCaseId' => 12353,
  'comment_id' => '33',
  'comment' => 'Sample comment added'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'team_id': 30321, 'app_id': 47223, 'testCaseId': 12353, 'comment_id': '33', 'comment': 'Sample comment added' }

response = requests.post('https://api.bugasura.io/testcasecomments/update', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testcasecomments/update"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

String data = "{\"team_id\": 30321, \"app_id\": 47223, \"testCaseId\": 12353, \"comment_id\": \"33\", \"comment\": \"Sample comment added\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

int responseCode = httpConn.getResponseCode(); System.out.println("Response Code: " + responseCode); } }

fetch('https://api.bugasura.io/testcase/comments/update', {
  method: 'POST',
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    team_id: 30321,
    app_id: 47223,
    testCaseId: 12353,
    comment_id: '33',
    comment: 'Sample comment added'
  })
});
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://api.bugasura.io/testcase/comments/update") request = Net::HTTP::Post.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "team_id" => 30321, "app_id" => 47223, "testCaseId" => 12353, "comment_id" => "33", "comment" => "Sample comment added" })

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "Comment details updated successfully",
  "testCaseCommentsDetails": {
    "test_case_id": 12353,
    "id": "4",
    "scenario": "TestCase Sample Scenario",
    "comment_id": 33,
    "comment": "Sample comment added",
    "comment_report_id": null,
    "parent_comment_id": null,
    "comment_images": null,
    "comment_attachments": null,
    "creator_id": 10642,
    "created_dt": "2025-06-16 10:25:40",
    "modified_by": 10642,
    "last_modified": "2025-06-16 10:32:10",
    "is_deleted": 0,
    "comment_creator_id": 10642,
    "comment_creator_name": "Arjun P",
    "comment_creator_email_id": "arjun@appachhi.com",
    "profile_image": "10642.1749032173.avatar-19.png",
    "comment_creator_profile_image": "10642.1749032173.avatar-19.png",
    "comment_modified_by_id": 10642,
    "comment_modified_by_name": "Arjun P",
    "comment_modified_by_email_id": "arjun@appachhi.com",
    "comment_modified_by_profile_image": "10642.1749032173.avatar-19.png",
    "NROWS": 1,
    "STATUS": "OK"
  },
  "comment_attachments_files": null
}

This end-point will update the testCaseComments details in testCaseComments Table.

HTTP Request

POST https://api.bugasura.io/testcase/comments/update

Request Body Parameters

Parameter Type Required Description
testCaseId* Integer Yes ID of the test case for which the comment needs to be updated.
comment_id* Integer Yes ID of the comment that needs to be updated.
team_id* Integer Yes ID of the team for which the comment needs to be updated.
app_id* Integer Yes ID of the application for which the comment needs to be updated.
comment* String Yes The updated comment text.
commentAttachments Array No Array of comment attachments (if any).

testcasecomments/delete

curl  -H 'Authorization: Basic <Your API_KEY goes here>'
  -H 'Accept: application/json'
  -X POST 'https://api.bugasura.io/testcasecomments/delete'
  -d '{
    "team_id": 30321,
    "app_id": 47223,
    "testCaseId": 12353,
    "comment_id": "33"
  }'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testcasecomments/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization' => 'Basic <Your API_KEY goes here>',
  'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
  'team_id' => 30321,
  'app_id' => 47223,
  'testCaseId' => 12353,
  'comment_id' => '33'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'team_id': 30321, 'app_id': 47223, 'testCaseId': 12353, 'comment_id': '33' }

response = requests.post('https://api.bugasura.io/testcasecomments/delete', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testcasecomments/delete"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.setDoOutput(true);

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

String data = "{\"team_id\": 30321, \"app_id\": 47223, \"testCaseId\": 12353, \"comment_id\": \"33\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

int responseCode = httpConn.getResponseCode(); System.out.println("Response Code: " + responseCode); } }

fetch('https://api.bugasura.io/testcasecomments/delete', {
  method: 'POST',
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    team_id: 30321,
    app_id: 47223,
    testCaseId: 12353,
    comment_id: '33'
  })
});
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://api.bugasura.io/testcasecomments/delete") request = Net::HTTP::Post.new(uri) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "team_id" => 30321, "app_id" => 47223, "testCaseId" => 12353, "comment_id" => "33" })

req_options = { use_ssl: uri.scheme == "https", }

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end

# response.code # response.body

The above command returns JSON structured like this:

{
  "status": "OK",
  "message": "Test Case comment got deleted successfully",
  "testCaseCommentsDetails": {
    "test_case_id": 12353,
    "id": "4",
    "scenario": "TestCase Sample Scenario",
    "comment_id": 34,
    "comment": "This comment is deleted by <strong>Arjun P</strong>",
    "comment_report_id": null,
    "parent_comment_id": null,
    "comment_images": null,
    "comment_attachments": null,
    "creator_id": 10642,
    "created_dt": "2025-06-16 10:49:04",
    "modified_by": 10642,
    "last_modified": "2025-06-16 11:04:38",
    "is_deleted": 1,
    "comment_creator_id": 10642,
    "comment_creator_name": "Arjun P",
    "comment_creator_email_id": "arjun@appachhi.com",
    "profile_image": "10642.1749032173.avatar-19.png",
    "comment_creator_profile_image": "10642.1749032173.avatar-19.png",
    "comment_modified_by_id": 10642,
    "comment_modified_by_name": "Arjun P",
    "comment_modified_by_email_id": "arjun@appachhi.com",
    "comment_modified_by_profile_image": "10642.1749032173.avatar-19.png",
    "NROWS": 1,
    "STATUS": "OK"
  }
}

This end-point will delete the testCaseComments details from testCaseComments Table.

HTTP Request

POST https://api.bugasura.io/testcasecomments/delete

Request Body Parameters

Parameter Type Required Description
team_id* Integer Yes ID of the team for which the comment needs to be deleted.
app_id* Integer Yes ID of the application for which the comment needs to be deleted.
comment_id* Integer Yes ID of the comment that needs to be deleted.
testCaseId* Integer Yes ID of the test case for which the comment needs to be deleted.
parentCommentId Integer No ID of the parent comment (if applicable).
report_id Integer No ID of the report (if applicable).

Test Repo

testRepo/get

curl -L -X GET 'https://api.bugasura.io/testRepo/get?appId=54701&team_id=37779&folderId=2447&parentFolderId=2446&isGetReportList='
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testRepo/get?appId=54701&team_id=37779&folderId=2447&parentFolderId=2446&isGetReportList=');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'appId': '54701', 'team_id': '37779', 'folderId': '2447', 'parentFolderId': '2446', 'isGetReportList': '', }

response = requests.get('https://api.bugasura.io/testRepo/get', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testRepo/get?appId=54701&team_id=37779&folderId=2447&parentFolderId=2446&isGetReportList="); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('https://api.bugasura.io/testRepo/get?appId=54701&team_id=37779&folderId=2447&parentFolderId=2446&isGetReportList=', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/testRepo/get?appId=54701&team_id=37779&folderId=2447&parentFolderId=2446&isGetReportList=")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Get.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Test Repo folder details fetched successfully",
    "folderStructure": {
        "id": 2447,
        "name": "f2",
        "parent_id": 2446,
        "tc_count": 1,
        "total_tc_count": 1,
        "children": []
    },
    "folderDetails": {
        "app_id": 54701,
        "app_name": "My First Project",
        "tc_repo_structure": "[{"id":2446,"name":"f1","parent_id":null,"tc_count":0,"total_tc_count":1,"children":[{"id":2447,"name":"f2","parent_id":2446,"tc_count":1,"total_tc_count":1,"children":[]}]}]",
        "folder_id": 2447,
        "folder_name": "f2",
        "parent_folder_id": 2446,
        "disp_order": 100,
        "tc_count": 1
    },
    "tcRepoStructure": [
        {
            "id": 2446,
            "name": "f1",
            "parent_id": null,
            "tc_count": 0,
            "total_tc_count": 1,
            "children": [
                {
                    "id": 2447,
                    "name": "f2",
                    "parent_id": 2446,
                    "tc_count": 1,
                    "total_tc_count": 1,
                    "children": []
                }
            ]
        }
    ]
}

This API endpoint gets the test repository folder details for the given project.

HTTP Request

GET https://api.bugasura.io/testRepo/get

Query Parameters

Parameter Type Default Description
appId* Integer ID of the application for which the testrepo details need to be fetched.
team_id* Integer ID of the team for which the testrepo details need to be fetched.
folderId* Integer ID of the folder for which the details need to be fetched.
parentFolderId* Integer ID of the parent folder.
isGetReportList Boolean Flag to determine if report list should be included in the response.

testRepo/add

curl -L -X POST 'https://api.bugasura.io/testRepo/add'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "appId": "54701",
  "teamId": "37779",
  "parenetFolderId": "2446",
  "folderId": "2447"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testRepo/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'appId' => '54701',
    'teamId' => '37779',
    'parenetFolderId' => '2446',
    'folderId' => '2447'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'appId': '54701', 'teamId': '37779', 'parenetFolderId': '2446', 'folderId': '2447' }

response = requests.post('https://api.bugasura.io/testRepo/add', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testRepo/add"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

httpConn.setDoOutput(true); String data = "{\"appId\":\"54701\",\"teamId\":\"37779\",\"parenetFolderId\":\"2446\",\"folderId\":\"2447\"}";

try(OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes("utf-8"); os.write(input, 0, input.length);
}

System.out.println(httpConn.getResponseCode()); } }

fetch('https://api.bugasura.io/testRepo/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        'appId': '54701',
        'teamId': '37779',
        'parenetFolderId': '2446',
        'folderId': '2447'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testRepo/add")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "appId" => "54701", "teamId" => "37779", "parenetFolderId" => "2446", "folderId" => "2447" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Folder added successfully",
    "folderDetails": {
        "id": 2450,
        "name": "Sample Folder -1",
        "parent_id": "2446",
        "tc_count": 0,
        "total_tc_count": 0,
        "children": []
    },
    "tcRepoStructure": [
        {
            "id": 2446,
            "name": "f1",
            "parent_id": null,
            "tc_count": 0,
            "total_tc_count": 1,
            "children": [
                {
                    "id": 2447,
                    "name": "f2",
                    "parent_id": 2446,
                    "tc_count": 1,
                    "total_tc_count": 1,
                    "children": []
                },
                {
                    "id": 2449,
                    "name": "Folder 3",
                    "parent_id": 2446,
                    "tc_count": 0,
                    "total_tc_count": 0,
                    "children": []
                },
                {
                    "id": 2450,
                    "name": "Sample Folder -1",
                    "parent_id": "2446",
                    "tc_count": 0,
                    "total_tc_count": 0,
                    "children": []
                }
            ]
        }
    ]
}

This API endpoint will add folder into test repository for the given project.

HTTP Request

POST https://api.bugasura.io/testRepo/add

Request Parameters

Parameter Type Default Description
appId* Integer ID of the application for which the test repo need to be added.
team_id* Integer ID of the team for which the test repo needs to be added.
folderName* String Name of the folder that need to be added.
parentFolderId* Integer Parent folder ID (required if isParentIdReq is true).
isRootFolder Boolean Flag to indicate if this is a root folder.
isGetReportList Boolean 0 Flag to indicate if report list should be returned.

testRepo/update

curl -L -X POST 'https://api.bugasura.io/testRepo/update'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "appId": "54701",
  "teamId": "37779",
  "parentFolderId": "2446",
  "folderId": "2447",
  "folderName": "Sample Folder - Updated",
  "updateType": "NAME_UPDATE"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testRepo/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'appId' => '54701',
    'teamId' => '37779',
    'parentFolderId' => '2446',
    'folderId' => '2447',
    'folderName' => 'Sample Folder - Updated',
    'updateType' => 'NAME_UPDATE'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'appId': '54701', 'teamId': '37779', 'parentFolderId': '2446', 'folderId': '2447', 'folderName': 'Sample Folder - Updated', 'updateType': 'NAME_UPDATE' }

response = requests.post('https://api.bugasura.io/testRepo/update', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testRepo/update"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json"); httpConn.setRequestProperty("Content-Type", "application/json");

httpConn.setDoOutput(true); String data = "{\"appId\":\"54701\",\"teamId\":\"37779\",\"parentFolderId\":\"2446\",\"folderId\":\"2447\",\"folderName\":\"Sample Folder - Updated\",\"updateType\":\"NAME_UPDATE\"}";

try(OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes("utf-8"); os.write(input, 0, input.length);
}

System.out.println(httpConn.getResponseCode()); } }

fetch('https://api.bugasura.io/testRepo/update', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        'appId': '54701',
        'teamId': '37779',
        'parentFolderId': '2446',
        'folderId': '2447',
        'folderName': 'Sample Folder - Updated',
        'updateType': 'NAME_UPDATE'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testRepo/update")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "appId" => "54701", "teamId" => "37779", "parentFolderId" => "2446", "folderId" => "2447", "folderName" => "Sample Folder - Updated", "updateType" => "NAME_UPDATE" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Folder updated successfully",
    "folderDetails": {
        "app_id": 54701,
        "app_name": "My First Project",
        "tc_repo_structure": "[{"id":2446,"name":"f1","parent_id":null,"tc_count":0,"total_tc_count":1,"children":[{"id":2447,"name":"Sample Folder - Update","parent_id":"2446","tc_count":1,"total_tc_count":1,"children":[]},{"id":2449,"name":"Folder 3","parent_id":2446,"tc_count":0,"total_tc_count":0,"children":[]},{"id":2450,"name":"Sample Folder -1","parent_id":2446,"tc_count":0,"total_tc_count":0,"children":[]}]}]",
        "folder_id": 2447,
        "folder_name": "Sample Folder - Updated",
        "parent_folder_id": "2446",
        "disp_order": 100,
        "tc_count": 1
    },
    "tcRepoStructure": [
        {
            "id": 2446,
            "name": "f1",
            "parent_id": null,
            "tc_count": 0,
            "total_tc_count": 1,
            "children": [
                {
                    "id": 2447,
                    "name": "Sample Folder - Updated",
                    "parent_id": "2446",
                    "tc_count": 1,
                    "total_tc_count": 1,
                    "children": []
                },
                {
                    "id": 2449,
                    "name": "Folder 3",
                    "parent_id": 2446,
                    "tc_count": 0,
                    "total_tc_count": 0,
                    "children": []
                },
                {
                    "id": 2450,
                    "name": "Sample Folder -1",
                    "parent_id": 2446,
                    "tc_count": 0,
                    "total_tc_count": 0,
                    "children": []
                }
            ]
        }
    ]
}

This API endpoint will update folder name/position in the test repository for the given project.

HTTP Request

POST https://api.bugasura.io/testRepo/update

Request Parameters

Parameter Type Default Description
appId* Integer ID for the application where the testrepo needs to be updated.
team_id* Integer ID of the team for which the testrepo needs to be updated.
folderId* Integer ID of the folder to be updated.
folder_name* String New name of the folder that needs to be updated.
parentFolderId* Integer Parent folder ID for repositioning the folder.
updateType* Enum Type of update operation. Accepted values are 'NAME_UPDATE','COPY_FOLDER','MOVE_FOLDER','MOVE_POSITION'

testRepo/delete

curl -L -X POST 'https://api.bugasura.io/testRepo/delete'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "appId": "54524",
  "teamId": "37669",
  "folderId": "2447"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testRepo/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'appId' => '54524',
    'teamId' => '37669',
    'folderId' => '2447'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'appId': '54524', 'teamId': '37669', 'folderId': '2447' }

response = requests.post('https://api.bugasura.io/testRepo/delete', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testRepo/delete"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

httpConn.setDoOutput(true); String data = "{\"appId\":\"54524\",\"teamId\":\"37669\",\"folderId\":\"2447\"}";

try(OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes("utf-8"); os.write(input, 0, input.length);
}

System.out.println(httpConn.getResponseCode()); } }

fetch('https://api.bugasura.io/testRepo/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        'appId': '54524',
        'teamId': '37669',
        'folderId': '2447'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testRepo/delete")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "appId" => "54524", "teamId" => "37669", "folderId" => "2447" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Folder deleted successfully",
    "folderDetails": {
        "app_id": 54701,
        "app_name": "My First Project",
        "tc_repo_structure": "[{"id":2446,"name":"f1","parent_id":null,"tc_count":0,"total_tc_count":1,"children":[{"id":2447,"name":"Sample Folder - Updated","parent_id":"2446","tc_count":1,"total_tc_count":1,"children":[]},{"id":2449,"name":"Folder 3","parent_id":2446,"tc_count":0,"total_tc_count":0,"children":[]},{"id":2450,"name":"Sample Folder -1","parent_id":2446,"tc_count":0,"total_tc_count":0,"children":[]}]}]"
        "folder_id": 2447,
        "folder_name": "Sample Folder - Updated",
        "parent_folder_id": 2446,
        "disp_order": 100,
        "tc_count": 1
    },
    "deletingFolderStructure": [
        {
            "id": 2447,
            "name": "Sample Folder - Updated",
            "parent_id": 2446,
            "tc_count": 1,
            "total_tc_count": 1,
            "children": []
        }
    ],
    "tcRepoStructure": [
        {
            "id": 2446,
            "name": "f1",
            "parent_id": null,
            "tc_count": 0,
            "total_tc_count": 0,
            "children": [
                {
                    "id": 2449,
                    "name": "Folder 3",
                    "parent_id": 2446,
                    "tc_count": 0,
                    "total_tc_count": 0,
                    "children": []
                },
                {
                    "id": 2450,
                    "name": "Sample Folder -1",
                    "parent_id": 2446,
                    "tc_count": 0,
                    "total_tc_count": 0,
                    "children": []
                }
            ]
        }
    ]
}

This API endpoint will delete a folder from the test repository for the given project.

HTTP Request

POST https://api.bugasura.io/testRepo/delete

Request Parameters

Parameter Type Default Description
appId* Integer ID for the application where the testrepo needs to be deleted.
team_id* Integer ID of the team for which the testrepo needs to be deleted.
folder_id* Integer ID of the testrepo to be deleted.

testRepo/getTestCases

curl -L -X GET 'https://api.bugasura.io/testRepo/getTestCases?appId=54524&teamId=37669&folderId=2450'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testRepo/getTestCases?appId=54524&teamId=37669&folderId=2450');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'appId': '54524', 'teamId': '37669', 'folderId': '2450', }

response = requests.get('https://api.bugasura.io/testRepo/getTestCases', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testRepo/getTestCases?appId=54524&teamId=37669&folderId=2450"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('https://api.bugasura.io/testRepo/getTestCases?appId=54524&teamId=37669&folderId=2450', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/testRepo/getTestCases?appId=54524&teamId=37669&folderId=2450")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Get.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Repo folder's Test Cases list fetched successfully",
    "testRepoFoldersDetails": [
        {
            "id": 2446,
            "name": "f1",
            "parent_id": null,
            "tc_count": 1
        },
        {
            "id": 2449,
            "name": "Folder 3",
            "parent_id": 2446,
            "tc_count": 1
        },
        {
            "id": 2450,
            "name": "Sample Folder -1",
            "parent_id": 2446,
            "tc_count": 1
        }
    ],
    "tcRepoStructure": [
        {
            "id": 2446,
            "name": "f1",
            "parent_id": null,
            "tc_count": 1,
            "total_tc_count": 3,
            "children": [
                {
                    "id": 2449,
                    "name": "Folder 3",
                    "parent_id": 2446,
                    "tc_count": 1,
                    "total_tc_count": 1,
                    "children": []
                },
                {
                    "id": 2450,
                    "name": "Sample Folder -1",
                    "parent_id": 2446,
                    "tc_count": 1,
                    "total_tc_count": 1,
                    "children": []
                }
            ]
        }
    ],
    "testCaseDetails": {
        "testCaseDetails": [
            {
                "app_id": 54701,
                "app_name": "My First Project",
                "team_id": 37779,
                "test_case_id": 12363,
                "test_case_number": "TES5",
                "id": "5",
                "folder_id": 2450,
                "scenario": "Scenario 3",
                "testing_type": "Functional",
                "source": "USER",
                "priority": "MEDIUM",
                "feature_name": "Login",
                "sub_feature_name": "Validate Credentials",
                "creator_id": 17112,
                "creator_name": "Testgg01int",
                "creator_profile_image": "17112.1749814025.avatar-16.png",
                "NROWS": 1,
                "STATUS": "OK"
            }
        ],
        "totalTestCasesCount": 1
    },
    "folderId": "2450",
    "folderName": "Sample Folder -1"
}

This API endpoint will get the test repository folders test cases details list.

HTTP Request

GET https://api.bugasura.io/testRepo/getTestCases

Query Parameters

Parameter Type Default Description
appId* Integer ID for the application where the testcases will be fetched.
team_id* Integer ID of the team for which the test cases need to be fetched.
folder_id* Integer ID of the folder from which test cases need to be retrieved.
isAllFolders Boolean Flag to indicate if test cases from all folders should be fetched.
isFirstLoad Boolean Flag to indicate if this is the fresh login for the user.
totalLoadedCount Integer Number of test cases already loaded for pagination.

testRepo/addFeatureFolder

curl -L -X POST 'https://api.bugasura.io/testRepo/addFeatureFolder'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "appId": "54524",
  "teamId": "37669",
  "featureName": "Create Project",
  "subFeatureName": "Validate the user actions"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testRepo/addFeatureFolder');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'appId' => '54524',
    'teamId' => '37669',
    'featureName' => 'Create Project',
    'subFeatureName' => 'Validate the user actions'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'appId': '54524', 'teamId': '37669', 'featureName': 'Create Project', 'subFeatureName': 'Validate the user actions' }

response = requests.post('https://api.bugasura.io/testRepo/addFeatureFolder', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testRepo/addFeatureFolder"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

httpConn.setDoOutput(true);

String jsonInputString = "{\"appId\":\"54524\",\"teamId\":\"37669\",\"featureName\":\"Create Project\",\"subFeatureName\":\"Validate the user actions\"}";

try(OutputStream os = httpConn.getOutputStream()) { byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

Scanner s = new Scanner(httpConn.getInputStream()).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('https://api.bugasura.io/testRepo/addFeatureFolder', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        'appId': '54524',
        'teamId': '37669',
        'featureName': 'Create Project',
        'subFeatureName': 'Validate the user actions'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testRepo/addFeatureFolder")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "appId" => "54524", "teamId" => "37669", "featureName" => "Create Project", "subFeatureName" => "Validate the user actions" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Test Case's Feature folder created successfully",
    "tcRepoStructure": [
        {
            "id": 2446,
            "name": "f1",
            "parent_id": null,
            "tc_count": 1,
            "total_tc_count": 3,
            "children": [
                {
                    "id": 2449,
                    "name": "Folder 3",
                    "parent_id": 2446,
                    "tc_count": 1,
                    "total_tc_count": 1,
                    "children": []
                },
                {
                    "id": 2450,
                    "name": "Sample Folder -1",
                    "parent_id": 2446,
                    "tc_count": 1,
                    "total_tc_count": 1,
                    "children": []
                }
            ]
        },
        {
            "id": 2459,
            "name": "Create Project",
            "parent_id": null,
            "tc_count": 0,
            "total_tc_count": 0,
            "children": [
                {
                    "id": 2460,
                    "name": "Validate the user actions",
                    "parent_id": 2459,
                    "tc_count": 0,
                    "total_tc_count": 0,
                    "children": []
                }
            ]
        }
    ],
    "featureFolderId": 2459,
    "featureFolderDetails": {
        "app_id": 54701,
        "app_name": "My First Project",
        "tc_repo_structure": "[{"id":2446,"name":"f1","parent_id":null,"tc_count":1,"total_tc_count":3,"children":[{"id":2449,"name":"Folder 3","parent_id":2446,"tc_count":1,"total_tc_count":1,"children":[]},{"id":2450,"name":"Sample Folder -1","parent_id":2446,"tc_count":1,"total_tc_count":1,"children":[]}]},{"id":2459,"name":"Create Project","parent_id":"","tc_count":0,"total_tc_count":0,"children":[{"id":2460,"name":"Validate the user actions","parent_id":2459,"tc_count":0,"total_tc_count":0,"children":[]}]}]"
        "folder_id": 2459,
        "folder_name": "Create Project",
        "parent_folder_id": null,
        "disp_order": 100,
        "tc_count": 0
    },
    "subFeatureFolderId": 2460,
    "subFeatureFolderDetails": {
        "app_id": 54701,
        "app_name": "My First Project",
        "tc_repo_structure": "[{"id":2446,"name":"f1","parent_id":null,"tc_count":1,"total_tc_count":3,"children":[{"id":2449,"name":"Folder 3","parent_id":2446,"tc_count":1,"total_tc_count":1,"children":[]},{"id":2450,"name":"Sample Folder -1","parent_id":2446,"tc_count":1,"total_tc_count":1,"children":[]}]},{"id":2459,"name":"Create Project","parent_id":"","tc_count":0,"total_tc_count":0,"children":[{"id":2460,"name":"Validate the user actions","parent_id":2459,"tc_count":0,"total_tc_count":0,"children":[]}]}]"
        "folder_id": 2460,
        "folder_name": "Validate the user actions",
        "parent_folder_id": 2459,
        "disp_order": 100,
        "tc_count": 0
    }
}

This API endpoint will add a test case feature and sub-feature folders to the test repository for the given project.

HTTP Request

POST https://api.bugasura.io/testRepo/addFeatureFolder

Request Body Parameters

Parameter Type Default Description
appId* Integer ID of the application for which the feature folder needs to be added.
team_id* Integer ID of the team for which the feature folder needs to be created.
featureName* String Name of the feature folder to be created.
subFeatureName* String Name of the sub-feature folder to be created under the feature folder.
isAIGenerated Boolean Flag to indicate if the folder is AI generated.

Test Suites

testSuites/list

curl -L -X GET 'https://api.bugasura.io/testSuites/list?teamId=37779&appId=54701'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testSuites/list?teamId=37779&appId=54701');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'teamId': '37779', 'appId': '54701', }

response = requests.get('https://api.bugasura.io/testSuites/list', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testSuites/list?teamId=37779&appId=54701"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('https://api.bugasura.io/testSuites/list?teamId=37779&appId=54701', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/testSuites/list?teamId=37779&appId=54701")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Get.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Successfully fetched testsuite list details.",
    "testSuiteListDetails": {
        "116397": [
            {
                "app_id": 54701,
                "app_name": "My First Project",
                "suite_id": 116397,
                "suite_name": "Sprints",
                "suite_type": "SPRINT",
                "tag_id": 4227,
                "tag_name": "My First Sprint",
                "tag_type": "SPRINT",
                "report_id": 63835,
                "assignee_id": null,
                "requirement_id": null,
                "tc_count": 0,
                "NROWS": 15,
                "STATUS": "OK",
                "total_tc_count": 0
            }
        ],
        "116398": [
            {
                "app_id": 54701,
                "app_name": "My First Project",
                "suite_id": 116398,
                "suite_name": "Features",
                "suite_type": "FEATURE",
                "tag_id": 4255,
                "tag_name": "Login",
                "tag_type": "FEATURE",
                "report_id": null,
                "assignee_id": null,
                "requirement_id": null,
                "tc_count": 3,
                "total_tc_count": 3
            },
            {
                "app_id": 54701,
                "app_name": "My First Project",
                "suite_id": 116398,
                "suite_name": "Features",
                "suite_type": "FEATURE",
                "tag_id": 4234,
                "tag_name": "Repo SampleF--1 Folder",
                "tag_type": "FEATURE",
                "report_id": null,
                "assignee_id": null,
                "requirement_id": null,
                "tc_count": 0,
                "total_tc_count": 3
            }
        ],
        "116399": [
            {
                "app_id": 54701,
                "app_name": "My First Project",
                "suite_id": 116399,
                "suite_name": "Sub Features",
                "suite_type": "SUB_FEATURE",
                "tag_id": 4256,
                "tag_name": "validate credentials",
                "tag_type": "SUB_FEATURE",
                "report_id": null,
                "assignee_id": null,
                "requirement_id": null,
                "tc_count": 3,
                "total_tc_count": 3
            }
        ]
    },
    "isTestSuiteExists": 1,
    "totalTestCasesCount": null
}

This end-point will list all testsuites available for a project.

HTTP Request

GET https://api.bugasura.io/testSuites/list

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the testsuites need to be listed.
appId* Integer ID of the application for which the testsuites need to be listed.

testSuites/get

curl -L -X GET 'https://api.bugasura.io/testSuites/get?team_id=37779&appId=54701&suites_id=116400&suite_type=TESTING_TYPE'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testSuites/get?team_id=37779&appId=54701&suites_id=116400&suite_type=TESTING_TYPE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch); ?>

import requests

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

params = { 'team_id': '37779', 'appId': '54701', 'suites_id': '116400', 'suite_type': 'TESTING_TYPE', }

response = requests.get('https://api.bugasura.io/testSuites/get', params=params, headers=headers)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testSuites/get?team_id=37779&appId=54701&suites_id=116400&suite_type=TESTING_TYPE"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

InputStream responseStream = httpConn.getResponseCode() / 100 == 2 ? httpConn.getInputStream() : httpConn.getErrorStream(); Scanner s = new Scanner(responseStream).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('https://api.bugasura.io/testSuites/get?team_id=37779&appId=54701&suites_id=116400&suite_type=TESTING_TYPE', {
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json'
    }
});
require "uri"
require "net/http"

url = URI("https://api.bugasura.io/testSuites/get?team_id=37779&appId=54701&suites_id=116400&suite_type=TESTING_TYPE")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Get.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Successfully fetched testsuite details.",
    "testSuiteDetails": [
        {
            "app_id": 54701,
            "app_name": "My First Project",
            "suite_id": 116400,
            "suite_name": "Testing Types",
            "suite_type": "TESTING_TYPE",
            "NROWS": 1,
            "STATUS": "OK"
        }
    ]
}

This end-point will get a testsuite details.

HTTP Request

GET https://api.bugasura.io/testSuites/get

Query Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the testsuite details needs to be fetched.
appId* Integer ID of the application for which the testsuite details needs to be fetched.
suites_id* Integer ID of the testsuite for which the details needs to be fetched.
suite_type String Type of the testsuite to be fetched.

testSuites/add

curl -L -X POST 'https://api.bugasura.io/testSuites/add'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "teamId": "37779",
  "appId": "54701",
  "suiteName": "SPRINT"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testSuites/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'teamId' => '37779',
    'appId' => '54701',
    'suiteName' => 'SPRINT'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'teamId': '37779', 'appId': '54701', 'suiteName': 'SPRINT' }

response = requests.post('https://api.bugasura.io/testSuites/add', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testSuites/add"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json"); httpConn.setRequestProperty("Content-Type", "application/json");

httpConn.setDoOutput(true);

String jsonInputString = "{\"teamId\":\"37779\",\"appId\":\"54701\",\"suiteName\":\"SPRINT\"}";

try(OutputStream os = httpConn.getOutputStream()) { byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

Scanner s = new Scanner(httpConn.getInputStream()).useDelimiter("\A"); String response = s.hasNext() ? s.next() : ""; System.out.println(response); } }

fetch('https://api.bugasura.io/testSuites/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        'teamId': '37779',
        'appId': '54701',
        'suiteName': 'SPRINT'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testSuites/add")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json" request["Content-Type"] = "application/json"

request.body = JSON.dump({ "teamId" => "37779", "appId" => "54701", "suiteName" => "SPRINT" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Successfully added new testsuite.",
    "suiteId": 116417,
    "suiteType": "CUSTOM"
}

This end-point will add a new testsuite.

HTTP Request

POST https://api.bugasura.io/testSuites/add

Request Body Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the testsuite needs to be created.
appId* Integer ID of the application for which the testsuite needs to be created.
suiteName* String Name of the testsuite that needs to be added.
suiteType Enum Type of the testsuite to be created. Accepted suite types are SPRINT','FEATURE','SUB_FEATURE','TESTING_TYPE','PRIORITY','STATUS','ASSIGNEE','SOURCE','REQUIREMENT','CUSTOM','OTHER'

testSuites/update

curl -L -X POST 'https://api.bugasura.io/testSuites/update'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "teamId": "37779",
  "appId": "54701",
  "suiteName": "PRIORITY",
  "suiteId": "116418"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testSuites/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'teamId' => '37779',
    'appId' => '54701',
    'suiteName' => 'PRIORITY',
    'suiteId' => '116418'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', 'Content-Type': 'application/json', }

data = { 'teamId': '37779', 'appId': '54701', 'suiteName': 'PRIORITY', 'suiteId': '116418' }

response = requests.post('https://api.bugasura.io/testSuites/update', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testSuites/update"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json"); httpConn.setRequestProperty("Content-Type", "application/json");

httpConn.setDoOutput(true); String data = "{\"teamId\":\"37779\",\"appId\":\"54701\",\"suiteName\":\"PRIORITY\",\"suiteId\":\"116418\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

System.out.println(httpConn.getResponseCode()); } }

fetch('https://api.bugasura.io/testSuites/update', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        'teamId': '37779',
        'appId': '54701',
        'suiteName': 'PRIORITY',
        'suiteId': '116418'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testSuites/update")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json" request["Content-Type"] = "application/json" request.body = JSON.dump({ "teamId" => "37779", "appId" => "54701", "suiteName" => "PRIORITY", "suiteId" => "116418" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Successfully updated testsuite."
}

This end-point will update a testsuite.

HTTP Request

POST https://api.bugasura.io/testSuites/update

Request Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the testsuite needs to be updated.
app_id* Integer ID of the application for which the testsuite needs to be updated.
suite_id* Integer ID of the testsuite to be updated.
suite_name String Name of the testsuite to be updated.
suite_type String Type of the testsuite to be updated.

testSuites/delete

curl -L -X POST 'https://api.bugasura.io/testSuites/delete'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "teamId": "37779",
  "appId": "54701",
  "suiteId": "116418"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testSuites/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'teamId' => '37779',
    'appId' => '54701',
    'suiteId' => '116418'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', 'Content-Type': 'application/json', }

data = { 'teamId': '37779', 'appId': '54701', 'suiteId': '116418' }

response = requests.post('https://api.bugasura.io/testSuites/delete', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testSuites/delete"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json"); httpConn.setRequestProperty("Content-Type", "application/json");

httpConn.setDoOutput(true); String data = "{\"teamId\":\"37779\",\"appId\":\"54701\",\"suiteId\":\"116418\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

System.out.println(httpConn.getResponseCode()); } }

fetch('https://api.bugasura.io/testSuites/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        'teamId': '37779',
        'appId': '54701',
        'suiteId': '116418'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testSuites/delete")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json" request["Content-Type"] = "application/json" request.body = JSON.dump({ "teamId" => "37779", "appId" => "54701", "suiteId" => "116418" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Successfully deleted test suite."
}

This end-point will delete a testsuite.

HTTP Request

POST https://api.bugasura.io/testSuites/delete

Request Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the testsuite needs to be deleted.
appId* Integer ID of the application for which the testsuite needs to be deleted.
suite_id* Integer ID of the testsuite to be deleted.

testSuites/tag/add

curl -L -X POST 'https://api.bugasura.io/testSuites/tag/add'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "appId": "54701",
  "suiteId": "116420",
  "tagName": "NEW"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testSuites/tag/add');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'appId' => '54701',
    'suiteId' => '116420',
    'tagName' => 'NEW'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'appId': '54701', 'suiteId': '116420', 'tagName': 'NEW' }

response = requests.post('https://api.bugasura.io/testSuites/tag/add', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testSuites/tag/add"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

httpConn.setDoOutput(true); String data = "{\"appId\":\"54701\",\"suiteId\":\"116420\",\"tagName\":\"NEW\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

System.out.println(httpConn.getResponseCode()); } }

fetch('https://api.bugasura.io/testSuites/tag/add', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        'appId': '54701',
        'suiteId': '116420',
        'tagName': 'NEW'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testSuites/tag/add")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json" request["Content-Type"] = "application/json" request.body = JSON.dump({ "appId" => "54701", "suiteId" => "116420", "tagName" => "NEW" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Successfully created a new tag.",
    "tagId": 4257,
    "tagType": "OTHER"
}

This end-point will add a tag to testsuite.

HTTP Request

POST https://api.bugasura.io/testSuites/tag/add

Request Parameters

Parameter Type Default Description
appId* Integer ID of the application for which the tag needs to be added.
suite_id* Integer ID of the testsuite to which the tag needs to be added.
tag_name* String Name of the tag to be added to the testsuite.

testSuites/tag/update

curl -L -X POST 'https://api.bugasura.io/testSuites/tag/update'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "teamId": "37779",
  "appId": "54701",
  "suiteId": "116420",
  "tagName": "PRIORITY",
  "tagId": "4257"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testSuites/tag/update');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'teamId' => '37779',
    'appId' => '54701',
    'suiteId' => '116420',
    'tagName' => 'PRIORITY',
    'tagId' => '4257'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'teamId': '37779', 'appId': '54701', 'suiteId': '116420', 'tagName': 'PRIORITY', 'tagId': '4257' }

response = requests.post('https://api.bugasura.io/testSuites/tag/update', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testSuites/tag/update"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

httpConn.setDoOutput(true); String data = "{\"teamId\":\"37779\",\"appId\":\"54701\",\"suiteId\":\"116420\",\"tagName\":\"PRIORITY\",\"tagId\":\"4257\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

System.out.println(httpConn.getResponseCode()); } }

fetch('https://api.bugasura.io/testSuites/tag/update', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        'teamId': '37779',
        'appId': '54701',
        'suiteId': '116420',
        'tagName': 'PRIORITY',
        'tagId': '4257'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testSuites/tag/update")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "teamId" => "37779", "appId" => "54701", "suiteId" => "116420", "tagName" => "PRIORITY", "tagId" => "4257" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Successfully updated tag."
}

This end-point will update a tag name of a testsuite.

HTTP Request

POST https://api.bugasura.io/testSuites/tag/update

Request Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the tag needs to be updated in the testsuite.
appId* Integer ID of the application for which the tag needs to be updated in the testsuite.
suite_id* Integer ID of the testsuite for which the tag needs to be updated.
tag_id* Integer ID of the tag to be updated.
tag_name* String New name of the tag to be updated.

testSuites/tag/delete

curl -L -X POST 'https://api.bugasura.io/testSuites/tag/delete'
-H 'Authorization: Basic <Your API_KEY goes here>'
-H 'Accept: application/json'
-d '{
  "teamId": "37779",
  "appId": "54701",
  "suiteId": "116420",
  "tagId": "4257"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/testSuites/tag/delete');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization' => 'Basic <Your API_KEY goes here>',
    'Accept' => 'application/json',
]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'teamId' => '37779',
    'appId' => '54701',
    'suiteId' => '116420',
    'tagId' => '4257'
]));

$response = curl_exec($ch);

curl_close($ch); ?>

import requests
import json

headers = { 'Authorization': 'Basic <Your API_KEY goes here>', 'Accept': 'application/json', }

data = { 'teamId': '37779', 'appId': '54701', 'suiteId': '116420', 'tagId': '4257' }

response = requests.post('https://api.bugasura.io/testSuites/tag/delete', headers=headers, data=json.dumps(data))

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

class Main {

public static void main(String[] args) throws IOException { URL url = new URL("https://api.bugasura.io/testSuites/tag/delete"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST");

httpConn.setRequestProperty("Authorization", "Basic <Your API_KEY goes here>"); httpConn.setRequestProperty("Accept", "application/json");

httpConn.setDoOutput(true); String data = "{\"teamId\":\"37779\",\"appId\":\"54701\",\"suiteId\":\"116420\",\"tagId\":\"4257\"}";

try (OutputStream os = httpConn.getOutputStream()) { byte[] input = data.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); }

System.out.println(httpConn.getResponseCode()); } }

fetch('https://api.bugasura.io/testSuites/tag/delete', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic <Your API_KEY goes here>',
        'Accept': 'application/json',
    },
    body: JSON.stringify({
        'teamId': '37779',
        'appId': '54701',
        'suiteId': '116420',
        'tagId': '4257'
    })
});
require "uri"
require "net/http"
require "json"

url = URI("https://api.bugasura.io/testSuites/tag/delete")

http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic <Your API_KEY goes here>" request["Accept"] = "application/json"

request.body = JSON.dump({ "teamId" => "37779", "appId" => "54701", "suiteId" => "116420", "tagId" => "4257" })

response = http.request(request) puts response.read_body

The above command returns JSON structured like this:

{
    "status": "OK",
    "message": "Successfully delete tag from testsuite."
}

This end-point will delete a tag name of a testsuite.

HTTP Request

POST https://api.bugasura.io/testSuites/tag/delete

Request Parameters

Parameter Type Default Description
team_id* Integer ID of the team for which the tag needs to be deleted from the testsuite.
appId* Integer ID of the application for which the tag needs to be deleted from the testsuite.
suite_id* Integer ID of the testsuite from which the tag needs to be deleted.
tag_id* Integer ID of the tag to be deleted.