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.

Users

users/signup

curl -X POST \
  -H 'Accept: application/json' \
  -d 'email=anbu123@gmail.com&password=uye#12&first_name=anbarasu&last_name=s' \
  https://api.bugasura.io/users/signup
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/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('https://api.bugasura.io/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("https://api.bugasura.io/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('https://api.bugasura.io/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("https://api.bugasura.io/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 https://api.bugasura.io/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' \
  https://api.bugasura.io/users/get
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/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('https://api.bugasura.io/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("https://api.bugasura.io/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('https://api.bugasura.io/users/get', {
  headers: {
    'Authorization': 'Basic <Your API_KEY goes here>',
    'Accept': 'application/json'
  }
});
require 'net/http'
require 'uri'

uri = URI.parse("https://api.bugasura.io/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 https://api.bugasura.io/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' \
  https://api.bugasura.io/users/update
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.bugasura.io/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('https://api.bugasura.io/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("https://api.bugasura.io/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('https://api.bugasura.io/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("https://api.bugasura.io/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 https://api.bugasura.io/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.

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("https://api.bugasura.io/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.

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 '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',
  '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')),
  ('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('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'
  '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.
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 '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',
  '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'),
  '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('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'
  '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.
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 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.

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://localhost/api.appachhi.com/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.

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.