Get version history of a test

GET https://api.ap1.datadoghq.com/api/v2/synthetics/tests/{public_id}/version_historyhttps://api.ap2.datadoghq.com/api/v2/synthetics/tests/{public_id}/version_historyhttps://api.datadoghq.eu/api/v2/synthetics/tests/{public_id}/version_historyhttps://api.ddog-gov.com/api/v2/synthetics/tests/{public_id}/version_historyhttps://api.us2.ddog-gov.com/api/v2/synthetics/tests/{public_id}/version_historyhttps://api.datadoghq.com/api/v2/synthetics/tests/{public_id}/version_historyhttps://api.us3.datadoghq.com/api/v2/synthetics/tests/{public_id}/version_historyhttps://api.us5.datadoghq.com/api/v2/synthetics/tests/{public_id}/version_history

Overview

Get the paginated version history for a Synthetic test. This endpoint requires the synthetics_read permission.

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

Arguments

Path Parameters

Name

Type

Description

public_id [required]

string

The public ID of the Synthetic test.

Query Strings

Name

Type

Description

last_version_number

integer

The version number of the last item from the previous page. Omit to get the first page.

limit

integer

Maximum number of version records to return per page.

Response

OK

Response containing the paginated version history for a Synthetic test.

Expand All

Field

Type

Description

data

[object]

List of version change records.

attributes

object

Attributes of a version change record.

author_uuid

string

UUID of the user who created this version.

change_metadata

[object]

List of metadata describing individual changes in this version.

action

string

The action that was performed (for example, updated or created).

action_metadata

object

Object containing metadata about a change action.

after_value

The value of the property after the change.

before_value

The value of the property before the change.

diff_patches

[object]

List of diff patches for text changes.

diffs

[object]

List of individual diff operations.

change_text

string

The text that was changed.

operation

string

The diff operation applied.

length1

int64

Length of the original text segment.

length2

int64

Length of the modified text segment.

start1

int64

Start position in the original text.

start2

int64

Start position in the modified text.

property_path

string

The dot-separated path of the property that was changed.

version_number

int64

The sequential version number.

version_payload_created_at

date-time

Timestamp of when this version was created.

id

string

UUID of the version change record.

type

enum

Type of the version metadata resource. Allowed enum values: version_metadata

default: version_metadata

meta

object

Pagination metadata for a version history response.

next_last_version_number

int64

The version number to use as the last_version_number query parameter to fetch the next page. null indicates there are no more pages.

retention_period_in_days

int64

The number of days that version history is retained.

{
  "data": [
    {
      "attributes": {
        "author_uuid": "00000000-0000-0000-0000-000000000000",
        "change_metadata": [
          {
            "action": "string",
            "action_metadata": {
              "after_value": "undefined",
              "before_value": "undefined",
              "diff_patches": [
                {
                  "diffs": [
                    {
                      "change_text": "string",
                      "operation": "string"
                    }
                  ],
                  "length1": "integer",
                  "length2": "integer",
                  "start1": "integer",
                  "start2": "integer"
                }
              ],
              "property_path": "string"
            }
          }
        ],
        "version_number": 5,
        "version_payload_created_at": "2024-01-01T00:00:00+00:00"
      },
      "id": "00000000-0000-0000-0000-000000000000",
      "type": "version_metadata"
    }
  ],
  "meta": {
    "next_last_version_number": 3,
    "retention_period_in_days": 30
  }
}

API error response.

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

API error response.

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

                  # Path parameters
export public_id="CHANGE_ME"
# 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/synthetics/tests/${public_id}/version_history" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
"""
Get version history of a test returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.synthetics_api import SyntheticsApi

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = SyntheticsApi(api_client)
    response = api_instance.list_synthetics_test_versions(
        public_id="public_id",
    )

    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 version history of a test returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V2::SyntheticsAPI.new
p api_instance.list_synthetics_test_versions("public_id")

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 version history of a test 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() {
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewSyntheticsApi(apiClient)
	resp, r, err := api.ListSyntheticsTestVersions(ctx, "public_id", *datadogV2.NewListSyntheticsTestVersionsOptionalParameters())

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `SyntheticsApi.ListSyntheticsTestVersions`:\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 version history of a test returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.SyntheticsApi;
import com.datadog.api.client.v2.model.SyntheticsTestVersionHistoryResponse;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    SyntheticsApi apiInstance = new SyntheticsApi(defaultClient);

    try {
      SyntheticsTestVersionHistoryResponse result =
          apiInstance.listSyntheticsTestVersions("public_id");
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling SyntheticsApi#listSyntheticsTestVersions");
      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 version history of a test returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_synthetics::ListSyntheticsTestVersionsOptionalParams;
use datadog_api_client::datadogV2::api_synthetics::SyntheticsAPI;

#[tokio::main]
async fn main() {
    let configuration = datadog::Configuration::new();
    let api = SyntheticsAPI::with_config(configuration);
    let resp = api
        .list_synthetics_test_versions(
            "public_id".to_string(),
            ListSyntheticsTestVersionsOptionalParams::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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Get version history of a test returns "OK" response
 */

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

const configuration = client.createConfiguration();
const apiInstance = new v2.SyntheticsApi(configuration);

const params: v2.SyntheticsApiListSyntheticsTestVersionsRequest = {
  publicId: "public_id",
};

apiInstance
  .listSyntheticsTestVersions(params)
  .then((data: v2.SyntheticsTestVersionHistoryResponse) => {
    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"