Get a list of tests events

GET https://api.ap1.datadoghq.com/api/v2/ci/tests/eventshttps://api.ap2.datadoghq.com/api/v2/ci/tests/eventshttps://api.datadoghq.eu/api/v2/ci/tests/eventshttps://api.ddog-gov.com/api/v2/ci/tests/eventshttps://api.us2.ddog-gov.com/api/v2/ci/tests/eventshttps://api.datadoghq.com/api/v2/ci/tests/eventshttps://api.us3.datadoghq.com/api/v2/ci/tests/eventshttps://api.us5.datadoghq.com/api/v2/ci/tests/events

Overview

List endpoint returns CI Visibility test events that match a search query. Results are paginated similarly to logs.

Use this endpoint to see your latest test events.

This endpoint requires any of the following permissions:
  • ci_visibility_read
  • test_optimization_read

  • OAuth apps require the test_optimization_read authorization scope to access this endpoint.

    Arguments

    Query Strings

    Name

    Type

    Description

    filter[query]

    string

    Search query following log syntax.

    filter[from]

    string

    Minimum timestamp for requested events.

    filter[to]

    string

    Maximum timestamp for requested events.

    sort

    enum

    Order of events in results.
    Allowed enum values: timestamp, -timestamp

    page[cursor]

    string

    List following results with a cursor provided in the previous query.

    page[limit]

    integer

    Maximum number of events in the response.

    Response

    OK

    Response object with all test events matching the request and pagination information.

    Expand All

    Field

    Type

    Description

    data

    [object]

    Array of events matching the request.

    attributes

    object

    JSON object containing all event attributes and their associated values.

    attributes

    object

    JSON object of attributes from CI Visibility test events.

    tags

    [string]

    Array of tags associated with your event.

    test_level

    enum

    Test run level. Allowed enum values: session,module,suite,test

    id

    string

    Unique ID of the event.

    type

    enum

    Type of the event. Allowed enum values: citest

    links

    object

    Links attributes.

    next

    string

    Link for the next set of results. The request can also be made using the POST endpoint.

    meta

    object

    The metadata associated with a request.

    elapsed

    int64

    The time elapsed in milliseconds.

    page

    object

    Paging attributes.

    after

    string

    The cursor to use to get the next results, if any. To make the next request, use the same parameters with the addition of page[cursor].

    request_id

    string

    The identifier of the request.

    status

    enum

    The status of the response. Allowed enum values: done,timeout

    warnings

    [object]

    A list of warnings (non-fatal errors) encountered. Partial results may return if warnings are present in the response.

    code

    string

    A unique code for this type of warning.

    detail

    string

    A detailed explanation of this specific warning.

    title

    string

    A short human-readable summary of the warning.

    {
      "data": [
        {
          "attributes": {
            "attributes": {
              "customAttribute": 123,
              "duration": 2345
            },
            "tags": [
              "team:A"
            ],
            "test_level": "test"
          },
          "id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
          "type": "citest"
        }
      ],
      "links": {
        "next": "https://app.datadoghq.com/api/v2/ci/tests/events?filter[query]=foo\u0026page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ=="
      },
      "meta": {
        "elapsed": 132,
        "page": {
          "after": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ=="
        },
        "request_id": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
        "status": "done",
        "warnings": [
          {
            "code": "unknown_index",
            "detail": "indexes: foo, bar",
            "title": "One or several indexes are missing or invalid, results hold data from the other indexes"
          }
        ]
      }
    }

    Bad Request

    API error response.

    Expand All

    Field

    Type

    Description

    errors [required]

    [string]

    A list of errors.

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

    Not Authorized

    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

                      # Curl command
    curl -X GET "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.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/ci/tests/events" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
    """
    Get a list of tests events returns "OK" response
    """
    
    from datetime import datetime
    from dateutil.relativedelta import relativedelta
    from datadog_api_client import ApiClient, Configuration
    from datadog_api_client.v2.api.ci_visibility_tests_api import CIVisibilityTestsApi
    
    configuration = Configuration()
    with ApiClient(configuration) as api_client:
        api_instance = CIVisibilityTestsApi(api_client)
        response = api_instance.list_ci_app_test_events(
            filter_query="@test.service:web-ui-tests",
            filter_from=(datetime.now() + relativedelta(seconds=-30)),
            filter_to=datetime.now(),
            page_limit=5,
        )
    
        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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
    # Get a list of tests events returns "OK" response
    
    require "datadog_api_client"
    api_instance = DatadogAPIClient::V2::CIVisibilityTestsAPI.new
    opts = {
      filter_query: "@test.service:web-ui-tests",
      filter_from: (Time.now + -30),
      filter_to: Time.now,
      page_limit: 5,
    }
    p api_instance.list_ci_app_test_events(opts)
    

    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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
    // Get a list of tests events returns "OK" response
    
    package main
    
    import (
    	"context"
    	"encoding/json"
    	"fmt"
    	"os"
    	"time"
    
    	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
    	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
    )
    
    func main() {
    	ctx := datadog.NewDefaultContext(context.Background())
    	configuration := datadog.NewConfiguration()
    	apiClient := datadog.NewAPIClient(configuration)
    	api := datadogV2.NewCIVisibilityTestsApi(apiClient)
    	resp, r, err := api.ListCIAppTestEvents(ctx, *datadogV2.NewListCIAppTestEventsOptionalParameters().WithFilterQuery("@test.service:web-ui-tests").WithFilterFrom(time.Now().Add(time.Second * -30)).WithFilterTo(time.Now()).WithPageLimit(5))
    
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Error when calling `CIVisibilityTestsApi.ListCIAppTestEvents`: %v\n", err)
    		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
    	}
    
    	responseContent, _ := json.MarshalIndent(resp, "", "  ")
    	fmt.Fprintf(os.Stdout, "Response from `CIVisibilityTestsApi.ListCIAppTestEvents`:\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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
    // Get a list of tests events returns "OK" response
    import com.datadog.api.client.ApiClient;
    import com.datadog.api.client.ApiException;
    import com.datadog.api.client.v2.api.CiVisibilityTestsApi;
    import com.datadog.api.client.v2.api.CiVisibilityTestsApi.ListCIAppTestEventsOptionalParameters;
    import com.datadog.api.client.v2.model.CIAppTestEventsResponse;
    import java.time.OffsetDateTime;
    
    public class Example {
      public static void main(String[] args) {
        ApiClient defaultClient = ApiClient.getDefaultApiClient();
        CiVisibilityTestsApi apiInstance = new CiVisibilityTestsApi(defaultClient);
    
        try {
          CIAppTestEventsResponse result =
              apiInstance.listCIAppTestEvents(
                  new ListCIAppTestEventsOptionalParameters()
                      .filterQuery("@test.service:web-ui-tests")
                      .filterFrom(OffsetDateTime.now().plusSeconds(-30))
                      .filterTo(OffsetDateTime.now())
                      .pageLimit(5));
          System.out.println(result);
        } catch (ApiException e) {
          System.err.println("Exception when calling CiVisibilityTestsApi#listCIAppTestEvents");
          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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
    // Get a list of tests events returns "OK" response
    use chrono::{DateTime, Utc};
    use datadog_api_client::datadog;
    use datadog_api_client::datadogV2::api_ci_visibility_tests::CIVisibilityTestsAPI;
    use datadog_api_client::datadogV2::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams;
    
    #[tokio::main]
    async fn main() {
        let configuration = datadog::Configuration::new();
        let api = CIVisibilityTestsAPI::with_config(configuration);
        let resp = api
            .list_ci_app_test_events(
                ListCIAppTestEventsOptionalParams::default()
                    .filter_query("@test.service:web-ui-tests".to_string())
                    .filter_from(
                        DateTime::parse_from_rfc3339("2021-11-11T11:10:41+00:00")
                            .expect("Failed to parse datetime")
                            .with_timezone(&Utc),
                    )
                    .filter_to(
                        DateTime::parse_from_rfc3339("2021-11-11T11:11:11+00:00")
                            .expect("Failed to parse datetime")
                            .with_timezone(&Utc),
                    )
                    .page_limit(5),
            )
            .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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
    /**
     * Get a list of tests events returns "OK" response
     */
    
    import { client, v2 } from "@datadog/datadog-api-client";
    
    const configuration = client.createConfiguration();
    const apiInstance = new v2.CIVisibilityTestsApi(configuration);
    
    const params: v2.CIVisibilityTestsApiListCIAppTestEventsRequest = {
      filterQuery: "@test.service:web-ui-tests",
      filterFrom: new Date(new Date().getTime() + -30 * 1000),
      filterTo: new Date(),
      pageLimit: 5,
    };
    
    apiInstance
      .listCIAppTestEvents(params)
      .then((data: v2.CIAppTestEventsResponse) => {
        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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"