For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/api/latest/error-tracking/search-error-tracking-issues.md. A documentation index is available at /llms.txt.

Search error tracking issues

POST https://api.ap1.datadoghq.com/api/v2/error-tracking/issues/searchhttps://api.ap2.datadoghq.com/api/v2/error-tracking/issues/searchhttps://api.datadoghq.eu/api/v2/error-tracking/issues/searchhttps://api.ddog-gov.com/api/v2/error-tracking/issues/searchhttps://api.us2.ddog-gov.com/api/v2/error-tracking/issues/searchhttps://api.uk1.datadoghq.com/api/v2/error-tracking/issues/searchhttps://api.datadoghq.com/api/v2/error-tracking/issues/searchhttps://api.us3.datadoghq.com/api/v2/error-tracking/issues/searchhttps://api.us5.datadoghq.com/api/v2/error-tracking/issues/search

Overview

Search issues endpoint allows you to programmatically search for issues within your organization. This endpoint returns a list of issues that match a given search query, following the event search syntax. The search results are limited to a maximum of 100 issues per request.

OAuth apps require the error_tracking_read authorization scope to access this endpoint.

Arguments

Query Strings

Name

Type

Description

include

array

Comma-separated list of relationship objects that should be included in the response. Possible values are issue, issue.assignee, issue.case, and issue.team_owners.

Request

Body Data (required)

Search issues request payload.

Expand All

Field

Type

Description

data [required]

object

Search issues request.

attributes [required]

object

Object describing a search issue request.

assignee_ids

[string]

Filter issues by assignee IDs. Multiple values are combined with OR logic.

from [required]

int64

Start date (inclusive) of the query in milliseconds since the Unix epoch.

order_by

enum

The attribute to sort the search results by. Allowed enum values: TOTAL_COUNT,FIRST_SEEN,IMPACTED_SESSIONS,PRIORITY

persona

enum

Persona for the search. Either track(s) or persona(s) must be specified. Allowed enum values: ALL,BROWSER,MOBILE,BACKEND

query [required]

string

Search query following the event search syntax.

states

[string]

Filter issues by state. Multiple values are combined with OR logic.

team_ids

[string]

Filter issues by team IDs. Multiple values are combined with OR logic.

to [required]

int64

End date (exclusive) of the query in milliseconds since the Unix epoch.

track

enum

Track of the events to query. Either track(s) or persona(s) must be specified. Allowed enum values: trace,logs,rum

type [required]

enum

Type of the object. Allowed enum values: search_request

{
  "data": {
    "attributes": {
      "query": "service:orders-* AND @language:go",
      "from": 1671612804000,
      "to": 1671620004000,
      "track": "trace"
    },
    "type": "search_request"
  }
}

Response

OK

Search issues response payload.

Expand All

Field

Type

Description

data

[object]

Array of results matching the search query.

attributes [required]

object

Object containing the information of a search result.

impacted_sessions

int64

Count of sessions impacted by the issue over the queried time window.

impacted_users

int64

Count of users impacted by the issue over the queried time window.

total_count

int64

Total count of errors that match the issue over the queried time window.

id [required]

string

Search result identifier (matches the nested issue's identifier).

relationships

object

Relationships between the search result and other resources.

issue

object

Relationship between the search result and the corresponding issue.

data [required]

object

The issue the search result corresponds to.

id [required]

string

Issue identifier.

type [required]

enum

Type of the object. Allowed enum values: issue

type [required]

enum

Type of the object. Allowed enum values: error_tracking_search_result

included

[ <oneOf>]

Array of resources related to the search results.

<type=issue>

object

The issue matching the request.

attributes [required]

object

Object containing the information of an issue.

error_message

string

Error message associated with the issue.

error_type

string

Type of the error that matches the issue.

file_path

string

Path of the file where the issue occurred.

first_seen

int64

Timestamp of the first seen error in milliseconds since the Unix epoch.

first_seen_version

string

The application version (for example, git commit hash) where the issue was first observed.

function_name

string

Name of the function where the issue occurred.

is_crash

boolean

Error is a crash.

languages

[string]

Array of programming languages associated with the issue.

last_seen

int64

Timestamp of the last seen error in milliseconds since the Unix epoch.

last_seen_version

string

The application version (for example, git commit hash) where the issue was last observed.

platform

enum

Platform associated with the issue. Allowed enum values: ANDROID,BACKEND,BROWSER,FLUTTER,IOS,REACT_NATIVE,ROKU,UNKNOWN

regression

object

Regression information for an issue that was previously resolved and then reopened.

regressed_at [required]

date-time

Timestamp when the issue was reopened (regressed).

regressed_at_version

string

Application version where the regression was observed.

resolved_at [required]

date-time

Timestamp when the issue was resolved before the regression.

service

string

Service name.

state

enum

State of the issue Allowed enum values: OPEN,ACKNOWLEDGED,RESOLVED,IGNORED,EXCLUDED

id [required]

string

Issue identifier.

relationships

object

Relationship between the issue and an assignee, case and/or teams.

assignee

object

Relationship between the issue and assignee.

data [required]

object

The user the issue is assigned to.

id [required]

string

User identifier.

type [required]

enum

Type of the object Allowed enum values: user

case

object

Relationship between the issue and case.

data [required]

object

The case the issue is attached to.

id [required]

string

Case identifier.

type [required]

enum

Type of the object. Allowed enum values: case

team_owners

object

Relationship between the issue and teams.

data [required]

[object]

Array of teams that are owners of the issue.

id [required]

string

Team identifier.

type [required]

enum

Type of the object. Allowed enum values: team

type [required]

enum

Type of the object. Allowed enum values: issue

<type=case>

object

The case attached to the issue.

attributes [required]

object

Object containing the information of a case.

archived_at

date-time

Timestamp of when the case was archived.

closed_at

date-time

Timestamp of when the case was closed.

created_at

date-time

Timestamp of when the case was created.

creation_source

string

Source of the case creation.

description

string

Description of the case.

due_date

string

Due date of the case.

insights

[object]

Insights of the case.

ref

string

Reference of the insight.

resource_id

string

Insight identifier.

type

string

Type of the insight.

jira_issue

object

Jira issue of the case.

error_message

string

Error message set when the Jira issue creation fails.

result

object

Contains the identifiers and URL for a successfully created Jira issue.

account_id

string

Jira account identifier.

issue_id

string

Jira issue identifier.

issue_key

string

Jira issue key.

issue_url

string

Jira issue URL.

project_id

string

Jira project identifier.

project_key

string

Jira project key.

status

string

Creation status of the Jira issue.

key

string

Key of the case.

linear_issue

object

Linear issue of the case.

error_message

string

Error message set when the Linear issue creation fails.

result

object

Contains the identifiers and URL for a successfully created Linear issue.

account_id

string

Linear account identifier.

issue_id

string

Linear issue identifier.

issue_key

string

Linear issue key.

issue_url

string

Linear issue URL.

team_id

string

Linear team identifier.

status

string

Creation status of the Linear issue.

modified_at

date-time

Timestamp of when the case was last modified.

priority

enum

Case priority Allowed enum values: NOT_DEFINED,P1,P2,P3,P4,P5

default: NOT_DEFINED

status

enum

DEPRECATED: Deprecated way of representing the case status, which only supports OPEN, IN_PROGRESS, and CLOSED statuses. Use status_name instead. Allowed enum values: OPEN,IN_PROGRESS,CLOSED

title

string

Title of the case.

type

string

Type of the case.

id [required]

string

Case identifier.

relationships

object

Resources related to a case.

assignee

object

Relationship to user.

data [required]

object

Relationship to user object.

id [required]

string

A unique identifier that represents the user.

type [required]

enum

User resource type. Allowed enum values: user

default: user

created_by

object

Relationship to user.

data [required]

object

Relationship to user object.

id [required]

string

A unique identifier that represents the user.

type [required]

enum

User resource type. Allowed enum values: user

default: user

modified_by

object

Relationship to user.

data [required]

object

Relationship to user object.

id [required]

string

A unique identifier that represents the user.

type [required]

enum

User resource type. Allowed enum values: user

default: user

project

object

Relationship to project.

data [required]

object

Relationship to project object.

id [required]

string

A unique identifier that represents the project.

type [required]

enum

Project resource type. Allowed enum values: project

default: project

type [required]

enum

Type of the object. Allowed enum values: case

<type=user>

object

The user to whom the issue is assigned.

attributes [required]

object

Object containing the information of a user.

email

string

Email of the user.

handle

string

Handle of the user.

name

string

Name of the user.

id [required]

string

User identifier.

type [required]

enum

Type of the object Allowed enum values: user

<type=team>

object

A team that owns an issue.

attributes [required]

object

Object containing the information of a team.

handle

string

The team's identifier.

name

string

The name of the team.

summary

string

A brief summary of the team, derived from its description.

id [required]

string

Team identifier.

type [required]

enum

Type of the object. Allowed enum values: team

{
  "data": [
    {
      "attributes": {
        "impacted_sessions": 12,
        "impacted_users": 4,
        "total_count": 82
      },
      "id": "c1726a66-1f64-11ee-b338-da7ad0900002",
      "relationships": {
        "issue": {
          "data": {
            "id": "c1726a66-1f64-11ee-b338-da7ad0900002",
            "type": "issue"
          }
        }
      },
      "type": "error_tracking_search_result"
    }
  ],
  "included": [
    {
      "attributes": {
        "error_message": "object of type 'NoneType' has no len()",
        "error_type": "builtins.TypeError",
        "file_path": "/django-email/conduit/apps/core/utils.py",
        "first_seen": 1671612804001,
        "first_seen_version": "aaf65cd0",
        "function_name": "filter_forbidden_tags",
        "is_crash": false,
        "languages": [
          "PYTHON",
          "GO"
        ],
        "last_seen": 1671620003100,
        "last_seen_version": "b6199f80",
        "platform": "BACKEND",
        "regression": {
          "regressed_at": "2024-01-03T08:00:00Z",
          "regressed_at_version": "v2.5.2",
          "resolved_at": "2024-01-01T10:00:00Z"
        },
        "service": "email-api-py",
        "state": "RESOLVED"
      },
      "id": "c1726a66-1f64-11ee-b338-da7ad0900002",
      "relationships": {
        "assignee": {
          "data": {
            "id": "87cb11a0-278c-440a-99fe-701223c80296",
            "type": "user"
          }
        },
        "case": {
          "data": {
            "id": "2841440d-e780-4fe2-96cd-6a8c1d194da5",
            "type": "case"
          }
        },
        "team_owners": {
          "data": [
            {
              "id": "221b0179-6447-4d03-91c3-3ca98bf60e8a",
              "type": "team"
            }
          ]
        }
      },
      "type": "issue"
    }
  ]
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Unauthorized

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                          ## default
# 

# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

# Curl command
curl -X POST "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/error-tracking/issues/search" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${DD_BEARER_TOKEN}" \ -d @- << EOF { "data": { "attributes": { "from": 1671612804000, "order_by": "IMPACTED_SESSIONS", "persona": "BACKEND", "query": "service:orders-* AND @language:go", "to": 1671620004000 }, "type": "search_request" } } EOF
// Search error tracking issues returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	body := datadogV2.IssuesSearchRequest{
		Data: datadogV2.IssuesSearchRequestData{
			Attributes: datadogV2.IssuesSearchRequestDataAttributes{
				Query: "service:orders-* AND @language:go",
				From:  1671612804000,
				To:    1671620004000,
				Track: datadogV2.ISSUESSEARCHREQUESTDATAATTRIBUTESTRACK_TRACE.Ptr(),
			},
			Type: datadogV2.ISSUESSEARCHREQUESTDATATYPE_SEARCH_REQUEST,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewErrorTrackingApi(apiClient)
	resp, r, err := api.SearchIssues(ctx, body, *datadogV2.NewSearchIssuesOptionalParameters())

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `ErrorTrackingApi.SearchIssues`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `ErrorTrackingApi.SearchIssues`:\n%s\n", responseContent)
}

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
// Search error tracking issues returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.ErrorTrackingApi;
import com.datadog.api.client.v2.model.IssuesSearchRequest;
import com.datadog.api.client.v2.model.IssuesSearchRequestData;
import com.datadog.api.client.v2.model.IssuesSearchRequestDataAttributes;
import com.datadog.api.client.v2.model.IssuesSearchRequestDataAttributesTrack;
import com.datadog.api.client.v2.model.IssuesSearchRequestDataType;
import com.datadog.api.client.v2.model.IssuesSearchResponse;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    ErrorTrackingApi apiInstance = new ErrorTrackingApi(defaultClient);

    IssuesSearchRequest body =
        new IssuesSearchRequest()
            .data(
                new IssuesSearchRequestData()
                    .attributes(
                        new IssuesSearchRequestDataAttributes()
                            .query("service:orders-* AND @language:go")
                            .from(1671612804000L)
                            .to(1671620004000L)
                            .track(IssuesSearchRequestDataAttributesTrack.TRACE))
                    .type(IssuesSearchRequestDataType.SEARCH_REQUEST));

    try {
      IssuesSearchResponse result = apiInstance.searchIssues(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling ErrorTrackingApi#searchIssues");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Instructions

First install the library and its dependencies and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
"""
Search error tracking issues returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.error_tracking_api import ErrorTrackingApi
from datadog_api_client.v2.model.issues_search_request import IssuesSearchRequest
from datadog_api_client.v2.model.issues_search_request_data import IssuesSearchRequestData
from datadog_api_client.v2.model.issues_search_request_data_attributes import IssuesSearchRequestDataAttributes
from datadog_api_client.v2.model.issues_search_request_data_attributes_track import (
    IssuesSearchRequestDataAttributesTrack,
)
from datadog_api_client.v2.model.issues_search_request_data_type import IssuesSearchRequestDataType

body = IssuesSearchRequest(
    data=IssuesSearchRequestData(
        attributes=IssuesSearchRequestDataAttributes(
            query="service:orders-* AND @language:go",
            _from=1671612804000,
            to=1671620004000,
            track=IssuesSearchRequestDataAttributesTrack.TRACE,
        ),
        type=IssuesSearchRequestDataType.SEARCH_REQUEST,
    ),
)

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = ErrorTrackingApi(api_client)
    response = api_instance.search_issues(body=body)

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
# Search error tracking issues returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::ErrorTrackingAPI.new

body = DatadogAPIClient::V2::IssuesSearchRequest.new({
  data: DatadogAPIClient::V2::IssuesSearchRequestData.new({
    attributes: DatadogAPIClient::V2::IssuesSearchRequestDataAttributes.new({
      query: "service:orders-* AND @language:go",
      from: 1671612804000,
      to: 1671620004000,
      track: DatadogAPIClient::V2::IssuesSearchRequestDataAttributesTrack::TRACE,
    }),
    type: DatadogAPIClient::V2::IssuesSearchRequestDataType::SEARCH_REQUEST,
  }),
})
p api_instance.search_issues(body)

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
// Search error tracking issues returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_error_tracking::ErrorTrackingAPI;
use datadog_api_client::datadogV2::api_error_tracking::SearchIssuesOptionalParams;
use datadog_api_client::datadogV2::model::IssuesSearchRequest;
use datadog_api_client::datadogV2::model::IssuesSearchRequestData;
use datadog_api_client::datadogV2::model::IssuesSearchRequestDataAttributes;
use datadog_api_client::datadogV2::model::IssuesSearchRequestDataAttributesTrack;
use datadog_api_client::datadogV2::model::IssuesSearchRequestDataType;

#[tokio::main]
async fn main() {
    let body = IssuesSearchRequest::new(IssuesSearchRequestData::new(
        IssuesSearchRequestDataAttributes::new(
            1671612804000,
            "service:orders-* AND @language:go".to_string(),
            1671620004000,
        )
        .track(IssuesSearchRequestDataAttributesTrack::TRACE),
        IssuesSearchRequestDataType::SEARCH_REQUEST,
    ));
    let configuration = datadog::Configuration::new();
    let api = ErrorTrackingAPI::with_config(configuration);
    let resp = api
        .search_issues(body, SearchIssuesOptionalParams::default())
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Search error tracking issues returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.ErrorTrackingApi(configuration);

const params: v2.ErrorTrackingApiSearchIssuesRequest = {
  body: {
    data: {
      attributes: {
        query: "service:orders-* AND @language:go",
        from: 1671612804000,
        to: 1671620004000,
        track: "trace",
      },
      type: "search_request",
    },
  },
};

apiInstance
  .searchIssues(params)
  .then((data: v2.IssuesSearchResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"