---
title: 여러 테스트의 가동 시간 가져오기
description: ID별로 여러 Synthetic 테스트의 가동 시간을 가져옵니다.
breadcrumbs: 문서 > API > 여러 테스트의 가동 시간 가져오기
---

> For the complete documentation index, see [llms.txt](https://dnd37xeb23o8n.cloudfront.net/stefon.simmons/docs-astro-web-10435/llms.txt).

# 여러 테스트의 가동 시간 가져오기

## v1 (latest)

| Datadog site      | API endpoint                                                       |
| ----------------- | ------------------------------------------------------------------ |
| app.datadoghq.com | POST https://api.datadoghq.com/api/v1/synthetics/tests/uptimes     |
| us3.datadoghq.com | POST https://api.us3.datadoghq.com/api/v1/synthetics/tests/uptimes |
| us5.datadoghq.com | POST https://api.us5.datadoghq.com/api/v1/synthetics/tests/uptimes |
| app.datadoghq.eu  | POST https://api.datadoghq.eu/api/v1/synthetics/tests/uptimes      |
| ap1.datadoghq.com | POST https://api.ap1.datadoghq.com/api/v1/synthetics/tests/uptimes |
| ap2.datadoghq.com | POST https://api.ap2.datadoghq.com/api/v1/synthetics/tests/uptimes |
| uk1.datadoghq.com | POST https://api.uk1.datadoghq.com/api/v1/synthetics/tests/uptimes |
| app.ddog-gov.com  | POST https://api.ddog-gov.com/api/v1/synthetics/tests/uptimes      |
| us2.ddog-gov.com  | POST https://api.us2.ddog-gov.com/api/v1/synthetics/tests/uptimes  |

### Overview

ID별로 여러 Synthetic 테스트의 가동 시간을 가져옵니다.

This endpoint requires the `synthetics_read` permission.

OAuth apps require the `synthetics_read` authorization [scope](https://dnd37xeb23o8n.cloudfront.net/stefon.simmons/docs-astro-web-10435/ko/api/latest/scopes.md#synthetics) to access this endpoint.

### Request

#### Body Data (required)

Synthetic 테스트의 공개 ID 목록 및 타임프레임입니다.

{% tabs %}
{% tab label="Model" %}
| Field                   | Type     | Description                                              |
| ----------------------- | -------- | -------------------------------------------------------- |
| from_ts [*required*]    | int64    | Synthetic 테스트의 ID와 타임프레임을 포함하는 객체입니다.                    |
| 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. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "from_ts": 1726041488,
  "public_ids": [
    "p8m-9gw-nte"
  ],
  "to_ts": 1726055954
}
```
{% /tab %}
{% /tabs %}

### Response

{% tabs %}
{% tab label="200" %}
OK.

{% tabs %}
{% tab label="Model" %}
| Parent field | Field                      | Type     | Description                                                                                                                                                                                                                                                                                                                                         |
| ------------ | -------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | from_ts                    | int64    | Timestamp in seconds for the start of uptime.                                                                                                                                                                                                                                                                                                       |
|              | overall                    | object   | Object containing the uptime information.                                                                                                                                                                                                                                                                                                           |
| overall      | errors                     | [object] | An array of error objects returned while querying the history data for the service level objective.                                                                                                                                                                                                                                                 |
| errors       | error_message [*required*] | string   | A message with more details about the error.                                                                                                                                                                                                                                                                                                        |
| errors       | error_type [*required*]    | string   | Type of the error.                                                                                                                                                                                                                                                                                                                                  |
| overall      | group                      | string   | The location name                                                                                                                                                                                                                                                                                                                                   |
| overall      | 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. |
| overall      | span_precision             | double   | The number of decimal places to which the SLI value is accurate for the given from-to timestamps.                                                                                                                                                                                                                                                   |
| overall      | uptime                     | double   | The overall uptime.                                                                                                                                                                                                                                                                                                                                 |
|              | public_id                  | string   | A Synthetic test ID.                                                                                                                                                                                                                                                                                                                                |
|              | to_ts                      | int64    | Timestamp in seconds for the end of uptime.                                                                                                                                                                                                                                                                                                         |
{% /tab %}

{% tab label="Example" %}
```json
{
  "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"
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="400" %}
- JSON format is wrong

{% tabs %}
{% tab label="Model" %}
Error response object.

| Field               | Type     | Description                          |
| ------------------- | -------- | ------------------------------------ |
| errors [*required*] | [string] | Array of errors returned by the API. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="403" %}
Forbidden

{% tabs %}
{% tab label="Model" %}
Error response object.

| Field               | Type     | Description                          |
| ------------------- | -------- | ------------------------------------ |
| errors [*required*] | [string] | Array of errors returned by the API. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too many requests

{% tabs %}
{% tab label="Model" %}
Error response object.

| Field               | Type     | Description                          |
| ------------------- | -------- | ------------------------------------ |
| errors [*required*] | [string] | Array of errors returned by the API. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X POST "https://api.${DD_SITE}/api/v1/synthetics/tests/uptimes" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "from_ts": 1726041488,
  "public_ids": [
    "p8m-9gw-nte"
  ],
  "to_ts": 1726055954
}
EOF
```
{% /tab %}

{% tab label="Go" %}
```go
// 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())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	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](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
```
{% /tab %}

{% tab label="Java" %}
```java
// 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();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    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](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
```
{% /tab %}

{% tab label="Python" %}
```python
"""
Fetch uptime for multiple tests returns "OK." response
"""

from os import environ
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()
configuration.access_token = environ["DD_BEARER_TOKEN"]
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](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
```
{% /tab %}

{% tab label="Ruby" %}
```ruby
# Fetch uptime for multiple tests returns "OK." response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
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](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
```
{% /tab %}

{% tab label="Rust" %}
```rust
// 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](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
```
{% /tab %}

{% tab label="TypeScript" %}
```typescript
/**
 * Fetch uptime for multiple tests returns "OK." response
 */

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

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
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](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"
```
{% /tab %}
{% /tabs %}
