Fetch uptime for multiple tests

POST https://api.ap1.datadoghq.com/api/v1/synthetics/tests/uptimeshttps://api.ap2.datadoghq.com/api/v1/synthetics/tests/uptimeshttps://api.datadoghq.eu/api/v1/synthetics/tests/uptimeshttps://api.ddog-gov.com/api/v1/synthetics/tests/uptimeshttps://api.us2.ddog-gov.com/api/v1/synthetics/tests/uptimeshttps://api.datadoghq.com/api/v1/synthetics/tests/uptimeshttps://api.us3.datadoghq.com/api/v1/synthetics/tests/uptimeshttps://api.us5.datadoghq.com/api/v1/synthetics/tests/uptimes

Overview

Fetch uptime for multiple Synthetic tests by ID. This endpoint requires the synthetics_read permission.

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

Request

Body Data (required)

Public ID list of the Synthetic tests and timeframe.

Expand All

Field

Type

Description

from_ts [required]

int64

Timestamp in seconds (Unix epoch) for the start of uptime.

public_ids [required]

[string]

An array of Synthetic test IDs you want uptimes for.

to_ts [required]

int64

Timestamp in seconds (Unix epoch) for the end of uptime.

{
  "from_ts": 1726041488,
  "public_ids": [
    "p8m-9gw-nte"
  ],
  "to_ts": 1726055954
}

Response

OK.

Expand All

Field

Type

Description

from_ts

int64

Timestamp in seconds for the start of uptime.

overall

object

Object containing the uptime information.

errors

[object]

An array of error objects returned while querying the history data for the service level objective.

error_message [required]

string

A message with more details about the error.

error_type [required]

string

Type of the error.

group

string

The location name

history

[array]

The state transition history for the monitor, represented as an array of pairs. Each pair is an array where the first element is the transition timestamp in Unix epoch format (integer) and the second element is the state (integer). For the state, an integer value of 0 indicates uptime, 1 indicates downtime, and 2 indicates no data.

span_precision

double

The number of decimal places to which the SLI value is accurate for the given from-to timestamps.

uptime

double

The overall uptime.

public_id

string

A Synthetic test ID.

to_ts

int64

Timestamp in seconds for the end of uptime.

{
  "from_ts": "integer",
  "overall": {
    "errors": [
      {
        "error_message": "",
        "error_type": ""
      }
    ],
    "group": "name",
    "history": [
      [
        1579212382,
        0
      ]
    ],
    "span_precision": 2,
    "uptime": 99.99
  },
  "public_id": "abc-def-123",
  "to_ts": "integer"
}

- JSON format is wrong

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

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

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

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

Too many requests

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

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

Code Example

                          ## default
# 

# 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.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v1/synthetics/tests/uptimes" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "from_ts": 1726041488, "public_ids": [ "abc-def-123" ], "to_ts": 1726127888 } EOF
// Fetch uptime for multiple tests 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/datadogV1"
)

func main() {
	body := datadogV1.SyntheticsFetchUptimesPayload{
		FromTs: 1726041488,
		PublicIds: []string{
			"p8m-9gw-nte",
		},
		ToTs: 1726055954,
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV1.NewSyntheticsApi(apiClient)
	resp, r, err := api.FetchUptimes(ctx, body)

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `SyntheticsApi.FetchUptimes`:\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"
// Fetch uptime for multiple tests returns "OK." response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.SyntheticsApi;
import com.datadog.api.client.v1.model.SyntheticsFetchUptimesPayload;
import com.datadog.api.client.v1.model.SyntheticsTestUptime;
import java.util.Collections;
import java.util.List;

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

    SyntheticsFetchUptimesPayload body =
        new SyntheticsFetchUptimesPayload()
            .fromTs(1726041488L)
            .publicIds(Collections.singletonList("p8m-9gw-nte"))
            .toTs(1726055954L);

    try {
      List<SyntheticsTestUptime> result = apiInstance.fetchUptimes(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling SyntheticsApi#fetchUptimes");
      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"
"""
Fetch uptime for multiple tests returns "OK." response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.synthetics_api import SyntheticsApi
from datadog_api_client.v1.model.synthetics_fetch_uptimes_payload import SyntheticsFetchUptimesPayload

body = SyntheticsFetchUptimesPayload(
    from_ts=1726041488,
    public_ids=[
        "p8m-9gw-nte",
    ],
    to_ts=1726055954,
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = SyntheticsApi(api_client)
    response = api_instance.fetch_uptimes(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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Fetch uptime for multiple tests returns "OK." response

require "datadog_api_client"
api_instance = DatadogAPIClient::V1::SyntheticsAPI.new

body = DatadogAPIClient::V1::SyntheticsFetchUptimesPayload.new({
  from_ts: 1726041488,
  public_ids: [
    "p8m-9gw-nte",
  ],
  to_ts: 1726055954,
})
p api_instance.fetch_uptimes(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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Fetch uptime for multiple tests returns "OK." response
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI;
use datadog_api_client::datadogV1::model::SyntheticsFetchUptimesPayload;

#[tokio::main]
async fn main() {
    let body =
        SyntheticsFetchUptimesPayload::new(1726041488, vec!["p8m-9gw-nte".to_string()], 1726055954);
    let configuration = datadog::Configuration::new();
    let api = SyntheticsAPI::with_config(configuration);
    let resp = api.fetch_uptimes(body).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
/**
 * Fetch uptime for multiple tests returns "OK." response
 */

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

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

const params: v1.SyntheticsApiFetchUptimesRequest = {
  body: {
    fromTs: 1726041488,
    publicIds: ["p8m-9gw-nte"],
    toTs: 1726055954,
  },
};

apiInstance
  .fetchUptimes(params)
  .then((data: v1.SyntheticsTestUptime[]) => {
    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"