Chilkat Online Tools

VB6 / Datadog API Collection / Get an SLO's history

Back to Collection Items

' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim http As New ChilkatHttp
Dim success As Long

Dim queryParams As New ChilkatJsonObject
success = queryParams.UpdateInt("from_ts",-62147425)
success = queryParams.UpdateInt("to_ts",-62147425)
success = queryParams.UpdateString("target","49.34019051965387")
success = queryParams.UpdateString("apply_correction","true")

http.SetRequestHeader "Accept","application/json"

Dim resp As ChilkatHttpResponse
Set resp = http.QuickRequestParams("GET","https://api.app.ddog-gov.com/api/v1/slo/:slo_id/history",queryParams)
If (http.LastMethodSuccess = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

Dim sbResponseBody As New ChilkatStringBuilder
success = resp.GetBodySb(sbResponseBody)

Dim jResp As New ChilkatJsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = 0

Debug.Print "Response Body:"
Debug.Print jResp.Emit()

Dim respStatusCode As Long
respStatusCode = resp.StatusCode
Debug.Print "Response Status Code = " & respStatusCode
If (respStatusCode >= 400) Then
    Debug.Print "Response Header:"
    Debug.Print resp.Header
    Debug.Print "Failed."

    Exit Sub
End If

' Sample JSON response:
' (Sample code for parsing the JSON response is shown below)

' {
'   "data": {
'     "from_ts": 1615323990,
'     "group_by": [
'       "aliqua pariatur",
'       "labor"
'     ],
'     "groups": [
'       {
'         "error_budget_remaining": {
'           "7d": 100
'         },
'         "errors": [
'           {
'             "error_type": "",
'             "error_message": ""
'           },
'           {
'             "error_type": "",
'             "error_message": ""
'           }
'         ],
'         "group": "name",
'         "history": [
'           [
'             1579212382,
'             0
'           ]
'         ],
'         "monitor_modified": 1615867200,
'         "monitor_type": "string",
'         "name": "string",
'         "precision": 2,
'         "preview": true,
'         "sli_value": 99.99,
'         "span_precision": 2,
'         "uptime": 99.99
'       },
'       {
'         "error_budget_remaining": {
'           "7d": 100
'         },
'         "errors": [
'           {
'             "error_type": "",
'             "error_message": ""
'           },
'           {
'             "error_type": "",
'             "error_message": ""
'           }
'         ],
'         "group": "name",
'         "history": [
'           [
'             1579212382,
'             0
'           ]
'         ],
'         "monitor_modified": 1615867200,
'         "monitor_type": "string",
'         "name": "string",
'         "precision": 2,
'         "preview": true,
'         "sli_value": 99.99,
'         "span_precision": 2,
'         "uptime": 99.99
'       }
'     ],
'     "monitors": [
'       {
'         "error_budget_remaining": {
'           "7d": 100
'         },
'         "errors": [
'           {
'             "error_type": "",
'             "error_message": ""
'           },
'           {
'             "error_type": "",
'             "error_message": ""
'           }
'         ],
'         "group": "name",
'         "history": [
'           [
'             1579212382,
'             0
'           ]
'         ],
'         "monitor_modified": 1615867200,
'         "monitor_type": "string",
'         "name": "string",
'         "precision": 2,
'         "preview": true,
'         "sli_value": 99.99,
'         "span_precision": 2,
'         "uptime": 99.99
'       },
'       {
'         "error_budget_remaining": {
'           "7d": 100
'         },
'         "errors": [
'           {
'             "error_type": "",
'             "error_message": ""
'           },
'           {
'             "error_type": "",
'             "error_message": ""
'           }
'         ],
'         "group": "name",
'         "history": [
'           [
'             1579212382,
'             0
'           ]
'         ],
'         "monitor_modified": 1615867200,
'         "monitor_type": "string",
'         "name": "string",
'         "precision": 2,
'         "preview": true,
'         "sli_value": 99.99,
'         "span_precision": 2,
'         "uptime": 99.99
'       }
'     ],
'     "overall": {
'       "error_budget_remaining": {
'         "7d": 100
'       },
'       "errors": [
'         {
'           "error_type": "",
'           "error_message": ""
'         },
'         {
'           "error_type": "",
'           "error_message": ""
'         }
'       ],
'       "group": "name",
'       "history": [
'         [
'           1579212382,
'           0
'         ]
'       ],
'       "monitor_modified": 1615867200,
'       "monitor_type": "string",
'       "name": "string",
'       "precision": {
'         "30d": 1,
'         "7d": 2
'       },
'       "preview": true,
'       "sli_value": 99.99,
'       "span_precision": 2,
'       "uptime": 99.99
'     },
'     "series": {
'       "res_type": "",
'       "interval": 0,
'       "resp_version": 0,
'       "query": "",
'       "times": [
'       ],
'       "numerator": {
'         "count": 0,
'         "sum": 0,
'         "metadata": {}
'       },
'       "denominator": {
'         "count": 0,
'         "sum": 0,
'         "metadata": {}
'       },
'       "message": ""
'     },
'     "thresholds": {
'       "my_service": {
'         "target": 95,
'         "timeframe": "7d"
'       }
'     },
'     "to_ts": 1615928790,
'     "type": "metric",
'     "type_id": 0
'   },
'   "errors": [
'     {
'       "error": "ullamco pariatur"
'     },
'     {
'       "error": "aliquip anim do laborum commodo"
'     }
'   ]
' }

' Sample code for parsing the JSON response...
' Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

Dim strVal As String
Dim error_budget_remaining7d As Long
Dim group As String
Dim monitor_modified As Long
Dim monitor_type As String
Dim name As String
Dim precision As Long
Dim preview As Long
Dim sli_value As String
Dim span_precision As Long
Dim uptime As String
Dim j As Long
Dim count_j As Long
Dim error_type As String
Dim error_message As String
Dim k As Long
Dim count_k As Long
Dim intVal As Long
Dim error As String

Dim From_ts As Long
From_ts = jResp.IntOf("data.from_ts")
Dim v_7d As Long
v_7d = jResp.IntOf("data.overall.error_budget_remaining.7d")
Dim Group As String
Group = jResp.StringOf("data.overall.group")
Dim Monitor_modified As Long
Monitor_modified = jResp.IntOf("data.overall.monitor_modified")
Dim Monitor_type As String
Monitor_type = jResp.StringOf("data.overall.monitor_type")
Dim Name As String
Name = jResp.StringOf("data.overall.name")
Dim v_30d As Long
v_30d = jResp.IntOf("data.overall.precision.30d")
Dim Precision7d As Long
Precision7d = jResp.IntOf("data.overall.precision.7d")
Dim Preview As Long
Preview = jResp.BoolOf("data.overall.preview")
Dim Sli_value As String
Sli_value = jResp.StringOf("data.overall.sli_value")
Dim Span_precision As Long
Span_precision = jResp.IntOf("data.overall.span_precision")
Dim Uptime As String
Uptime = jResp.StringOf("data.overall.uptime")
Dim Res_type As String
Res_type = jResp.StringOf("data.series.res_type")
Dim Interval As Long
Interval = jResp.IntOf("data.series.interval")
Dim Resp_version As Long
Resp_version = jResp.IntOf("data.series.resp_version")
Dim Query As String
Query = jResp.StringOf("data.series.query")
Dim Count As Long
Count = jResp.IntOf("data.series.numerator.count")
Dim Sum As Long
Sum = jResp.IntOf("data.series.numerator.sum")
Dim DenominatorCount As Long
DenominatorCount = jResp.IntOf("data.series.denominator.count")
Dim DenominatorSum As Long
DenominatorSum = jResp.IntOf("data.series.denominator.sum")
Dim Message As String
Message = jResp.StringOf("data.series.message")
Dim Target As Long
Target = jResp.IntOf("data.thresholds.my_service.target")
Dim Timeframe As String
Timeframe = jResp.StringOf("data.thresholds.my_service.timeframe")
Dim To_ts As Long
To_ts = jResp.IntOf("data.to_ts")
Dim v_Type As String
v_Type = jResp.StringOf("data.type")
Dim Type_id As Long
Type_id = jResp.IntOf("data.type_id")
Dim i As Long
i = 0
Dim count_i As Long
count_i = jResp.SizeOfArray("data.group_by")
Do While i < count_i
    jResp.I = i
    strVal = jResp.StringOf("data.group_by[i]")
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("data.groups")
Do While i < count_i
    jResp.I = i
    error_budget_remaining7d = jResp.IntOf("data.groups[i].error_budget_remaining.7d")
    group = jResp.StringOf("data.groups[i].group")
    monitor_modified = jResp.IntOf("data.groups[i].monitor_modified")
    monitor_type = jResp.StringOf("data.groups[i].monitor_type")
    name = jResp.StringOf("data.groups[i].name")
    precision = jResp.IntOf("data.groups[i].precision")
    preview = jResp.BoolOf("data.groups[i].preview")
    sli_value = jResp.StringOf("data.groups[i].sli_value")
    span_precision = jResp.IntOf("data.groups[i].span_precision")
    uptime = jResp.StringOf("data.groups[i].uptime")
    j = 0
    count_j = jResp.SizeOfArray("data.groups[i].errors")
    Do While j < count_j
        jResp.J = j
        error_type = jResp.StringOf("data.groups[i].errors[j].error_type")
        error_message = jResp.StringOf("data.groups[i].errors[j].error_message")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("data.groups[i].history")
    Do While j < count_j
        jResp.J = j
        k = 0
        count_k = jResp.SizeOfArray("data.groups[i].history[j]")
        Do While k < count_k
            jResp.K = k
            intVal = jResp.IntOf("data.groups[i].history[j][k]")
            k = k + 1
        Loop
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("data.monitors")
Do While i < count_i
    jResp.I = i
    error_budget_remaining7d = jResp.IntOf("data.monitors[i].error_budget_remaining.7d")
    group = jResp.StringOf("data.monitors[i].group")
    monitor_modified = jResp.IntOf("data.monitors[i].monitor_modified")
    monitor_type = jResp.StringOf("data.monitors[i].monitor_type")
    name = jResp.StringOf("data.monitors[i].name")
    precision = jResp.IntOf("data.monitors[i].precision")
    preview = jResp.BoolOf("data.monitors[i].preview")
    sli_value = jResp.StringOf("data.monitors[i].sli_value")
    span_precision = jResp.IntOf("data.monitors[i].span_precision")
    uptime = jResp.StringOf("data.monitors[i].uptime")
    j = 0
    count_j = jResp.SizeOfArray("data.monitors[i].errors")
    Do While j < count_j
        jResp.J = j
        error_type = jResp.StringOf("data.monitors[i].errors[j].error_type")
        error_message = jResp.StringOf("data.monitors[i].errors[j].error_message")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("data.monitors[i].history")
    Do While j < count_j
        jResp.J = j
        k = 0
        count_k = jResp.SizeOfArray("data.monitors[i].history[j]")
        Do While k < count_k
            jResp.K = k
            intVal = jResp.IntOf("data.monitors[i].history[j][k]")
            k = k + 1
        Loop
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("data.overall.errors")
Do While i < count_i
    jResp.I = i
    error_type = jResp.StringOf("data.overall.errors[i].error_type")
    error_message = jResp.StringOf("data.overall.errors[i].error_message")
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("data.overall.history")
Do While i < count_i
    jResp.I = i
    j = 0
    count_j = jResp.SizeOfArray("data.overall.history[i]")
    Do While j < count_j
        jResp.J = j
        intVal = jResp.IntOf("data.overall.history[i][j]")
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("data.series.times")
Do While i < count_i
    jResp.I = i
    i = i + 1
Loop
i = 0
count_i = jResp.SizeOfArray("errors")
Do While i < count_i
    jResp.I = i
    error = jResp.StringOf("errors[i].error")
    i = i + 1
Loop

Curl Command

curl -G -d "from_ts=-62147425"
	-d "to_ts=-62147425"
	-d "target=49.34019051965387"
	-d "apply_correction=true"
	-H "Accept: application/json"
https://api.app.ddog-gov.com/api/v1/slo/:slo_id/history

Postman Collection Item JSON

{
  "name": "Get an SLO's history",
  "request": {
    "method": "GET",
    "header": [
      {
        "key": "Accept",
        "value": "application/json"
      }
    ],
    "url": {
      "raw": "{{baseUrl}}/api/v1/slo/:slo_id/history?from_ts=-62147425&to_ts=-62147425&target=49.34019051965387&apply_correction=true",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "api",
        "v1",
        "slo",
        ":slo_id",
        "history"
      ],
      "query": [
        {
          "key": "from_ts",
          "value": "-62147425",
          "description": "(Required) The `from` timestamp for the query window in epoch seconds."
        },
        {
          "key": "to_ts",
          "value": "-62147425",
          "description": "(Required) The `to` timestamp for the query window in epoch seconds."
        },
        {
          "key": "target",
          "value": "49.34019051965387",
          "description": "The SLO target. If `target` is passed in, the response will include the remaining error budget and a timeframe value of `custom`."
        },
        {
          "key": "apply_correction",
          "value": "true",
          "description": "Defaults to `true`. If any SLO corrections are applied and this parameter is set to `false`,\nthen the corrections will not be applied and the SLI values will not be affected."
        }
      ],
      "variable": [
        {
          "key": "slo_id",
          "value": "tempor Ut sed velit"
        }
      ]
    },
    "description": "Get a specific SLO’s history, regardless of its SLO type.\n\nThe detailed history data is structured according to the source data type.\nFor example, metric data is included for event SLOs that use\nthe metric source, and monitor SLO types include the monitor transition history.\n\n**Note:** There are different response formats for event based and time based SLOs.\nExamples of both are shown."
  },
  "response": [
    {
      "name": "OK",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "description": "Added as a part of security scheme: apikey",
            "key": "DD-API-KEY",
            "value": "<API Key>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/slo/:slo_id/history?from_ts=-62147425&to_ts=-62147425&target=49.34019051965387&apply_correction=true",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "slo",
            ":slo_id",
            "history"
          ],
          "query": [
            {
              "key": "from_ts",
              "value": "-62147425",
              "description": "(Required) The `from` timestamp for the query window in epoch seconds."
            },
            {
              "key": "to_ts",
              "value": "-62147425",
              "description": "(Required) The `to` timestamp for the query window in epoch seconds."
            },
            {
              "key": "target",
              "value": "49.34019051965387",
              "description": "The SLO target. If `target` is passed in, the response will include the remaining error budget and a timeframe value of `custom`."
            },
            {
              "key": "apply_correction",
              "value": "true",
              "description": "Defaults to `true`. If any SLO corrections are applied and this parameter is set to `false`,\nthen the corrections will not be applied and the SLI values will not be affected."
            }
          ],
          "variable": [
            {
              "key": "slo_id"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"data\": {\n    \"from_ts\": 1615323990,\n    \"group_by\": [\n      \"aliqua pariatur\",\n      \"labor\"\n    ],\n    \"groups\": [\n      {\n        \"error_budget_remaining\": {\n          \"7d\": 100\n        },\n        \"errors\": [\n          {\n            \"error_type\": \"\",\n            \"error_message\": \"\"\n          },\n          {\n            \"error_type\": \"\",\n            \"error_message\": \"\"\n          }\n        ],\n        \"group\": \"name\",\n        \"history\": [\n          [\n            1579212382,\n            0\n          ]\n        ],\n        \"monitor_modified\": 1615867200,\n        \"monitor_type\": \"string\",\n        \"name\": \"string\",\n        \"precision\": 2,\n        \"preview\": true,\n        \"sli_value\": 99.99,\n        \"span_precision\": 2,\n        \"uptime\": 99.99\n      },\n      {\n        \"error_budget_remaining\": {\n          \"7d\": 100\n        },\n        \"errors\": [\n          {\n            \"error_type\": \"\",\n            \"error_message\": \"\"\n          },\n          {\n            \"error_type\": \"\",\n            \"error_message\": \"\"\n          }\n        ],\n        \"group\": \"name\",\n        \"history\": [\n          [\n            1579212382,\n            0\n          ]\n        ],\n        \"monitor_modified\": 1615867200,\n        \"monitor_type\": \"string\",\n        \"name\": \"string\",\n        \"precision\": 2,\n        \"preview\": true,\n        \"sli_value\": 99.99,\n        \"span_precision\": 2,\n        \"uptime\": 99.99\n      }\n    ],\n    \"monitors\": [\n      {\n        \"error_budget_remaining\": {\n          \"7d\": 100\n        },\n        \"errors\": [\n          {\n            \"error_type\": \"\",\n            \"error_message\": \"\"\n          },\n          {\n            \"error_type\": \"\",\n            \"error_message\": \"\"\n          }\n        ],\n        \"group\": \"name\",\n        \"history\": [\n          [\n            1579212382,\n            0\n          ]\n        ],\n        \"monitor_modified\": 1615867200,\n        \"monitor_type\": \"string\",\n        \"name\": \"string\",\n        \"precision\": 2,\n        \"preview\": true,\n        \"sli_value\": 99.99,\n        \"span_precision\": 2,\n        \"uptime\": 99.99\n      },\n      {\n        \"error_budget_remaining\": {\n          \"7d\": 100\n        },\n        \"errors\": [\n          {\n            \"error_type\": \"\",\n            \"error_message\": \"\"\n          },\n          {\n            \"error_type\": \"\",\n            \"error_message\": \"\"\n          }\n        ],\n        \"group\": \"name\",\n        \"history\": [\n          [\n            1579212382,\n            0\n          ]\n        ],\n        \"monitor_modified\": 1615867200,\n        \"monitor_type\": \"string\",\n        \"name\": \"string\",\n        \"precision\": 2,\n        \"preview\": true,\n        \"sli_value\": 99.99,\n        \"span_precision\": 2,\n        \"uptime\": 99.99\n      }\n    ],\n    \"overall\": {\n      \"error_budget_remaining\": {\n        \"7d\": 100\n      },\n      \"errors\": [\n        {\n          \"error_type\": \"\",\n          \"error_message\": \"\"\n        },\n        {\n          \"error_type\": \"\",\n          \"error_message\": \"\"\n        }\n      ],\n      \"group\": \"name\",\n      \"history\": [\n        [\n          1579212382,\n          0\n        ]\n      ],\n      \"monitor_modified\": 1615867200,\n      \"monitor_type\": \"string\",\n      \"name\": \"string\",\n      \"precision\": {\n        \"30d\": 1,\n        \"7d\": 2\n      },\n      \"preview\": true,\n      \"sli_value\": 99.99,\n      \"span_precision\": 2,\n      \"uptime\": 99.99\n    },\n    \"series\": {\n      \"res_type\": \"\",\n      \"interval\": 0,\n      \"resp_version\": 0,\n      \"query\": \"\",\n      \"times\": [],\n      \"numerator\": {\n        \"count\": 0,\n        \"sum\": 0,\n        \"metadata\": {}\n      },\n      \"denominator\": {\n        \"count\": 0,\n        \"sum\": 0,\n        \"metadata\": {}\n      },\n      \"message\": \"\"\n    },\n    \"thresholds\": {\n      \"my_service\": {\n        \"target\": 95,\n        \"timeframe\": \"7d\"\n      }\n    },\n    \"to_ts\": 1615928790,\n    \"type\": \"metric\",\n    \"type_id\": 0\n  },\n  \"errors\": [\n    {\n      \"error\": \"ullamco pariatur\"\n    },\n    {\n      \"error\": \"aliquip anim do laborum commodo\"\n    }\n  ]\n}"
    },
    {
      "name": "Bad Request",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "description": "Added as a part of security scheme: apikey",
            "key": "DD-API-KEY",
            "value": "<API Key>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/slo/:slo_id/history?from_ts=-62147425&to_ts=-62147425&target=49.34019051965387&apply_correction=true",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "slo",
            ":slo_id",
            "history"
          ],
          "query": [
            {
              "key": "from_ts",
              "value": "-62147425",
              "description": "(Required) The `from` timestamp for the query window in epoch seconds."
            },
            {
              "key": "to_ts",
              "value": "-62147425",
              "description": "(Required) The `to` timestamp for the query window in epoch seconds."
            },
            {
              "key": "target",
              "value": "49.34019051965387",
              "description": "The SLO target. If `target` is passed in, the response will include the remaining error budget and a timeframe value of `custom`."
            },
            {
              "key": "apply_correction",
              "value": "true",
              "description": "Defaults to `true`. If any SLO corrections are applied and this parameter is set to `false`,\nthen the corrections will not be applied and the SLI values will not be affected."
            }
          ],
          "variable": [
            {
              "key": "slo_id"
            }
          ]
        }
      },
      "status": "Bad Request",
      "code": 400,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"errors\": [\n    \"Bad Request\",\n    \"Bad Request\"\n  ]\n}"
    },
    {
      "name": "Forbidden",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "description": "Added as a part of security scheme: apikey",
            "key": "DD-API-KEY",
            "value": "<API Key>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/slo/:slo_id/history?from_ts=-62147425&to_ts=-62147425&target=49.34019051965387&apply_correction=true",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "slo",
            ":slo_id",
            "history"
          ],
          "query": [
            {
              "key": "from_ts",
              "value": "-62147425",
              "description": "(Required) The `from` timestamp for the query window in epoch seconds."
            },
            {
              "key": "to_ts",
              "value": "-62147425",
              "description": "(Required) The `to` timestamp for the query window in epoch seconds."
            },
            {
              "key": "target",
              "value": "49.34019051965387",
              "description": "The SLO target. If `target` is passed in, the response will include the remaining error budget and a timeframe value of `custom`."
            },
            {
              "key": "apply_correction",
              "value": "true",
              "description": "Defaults to `true`. If any SLO corrections are applied and this parameter is set to `false`,\nthen the corrections will not be applied and the SLI values will not be affected."
            }
          ],
          "variable": [
            {
              "key": "slo_id"
            }
          ]
        }
      },
      "status": "Forbidden",
      "code": 403,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"errors\": [\n    \"Bad Request\",\n    \"Bad Request\"\n  ]\n}"
    },
    {
      "name": "Not Found",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "description": "Added as a part of security scheme: apikey",
            "key": "DD-API-KEY",
            "value": "<API Key>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/slo/:slo_id/history?from_ts=-62147425&to_ts=-62147425&target=49.34019051965387&apply_correction=true",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "slo",
            ":slo_id",
            "history"
          ],
          "query": [
            {
              "key": "from_ts",
              "value": "-62147425",
              "description": "(Required) The `from` timestamp for the query window in epoch seconds."
            },
            {
              "key": "to_ts",
              "value": "-62147425",
              "description": "(Required) The `to` timestamp for the query window in epoch seconds."
            },
            {
              "key": "target",
              "value": "49.34019051965387",
              "description": "The SLO target. If `target` is passed in, the response will include the remaining error budget and a timeframe value of `custom`."
            },
            {
              "key": "apply_correction",
              "value": "true",
              "description": "Defaults to `true`. If any SLO corrections are applied and this parameter is set to `false`,\nthen the corrections will not be applied and the SLI values will not be affected."
            }
          ],
          "variable": [
            {
              "key": "slo_id"
            }
          ]
        }
      },
      "status": "Not Found",
      "code": 404,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"errors\": [\n    \"Bad Request\",\n    \"Bad Request\"\n  ]\n}"
    },
    {
      "name": "Too many requests",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "description": "Added as a part of security scheme: apikey",
            "key": "DD-API-KEY",
            "value": "<API Key>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/slo/:slo_id/history?from_ts=-62147425&to_ts=-62147425&target=49.34019051965387&apply_correction=true",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "slo",
            ":slo_id",
            "history"
          ],
          "query": [
            {
              "key": "from_ts",
              "value": "-62147425",
              "description": "(Required) The `from` timestamp for the query window in epoch seconds."
            },
            {
              "key": "to_ts",
              "value": "-62147425",
              "description": "(Required) The `to` timestamp for the query window in epoch seconds."
            },
            {
              "key": "target",
              "value": "49.34019051965387",
              "description": "The SLO target. If `target` is passed in, the response will include the remaining error budget and a timeframe value of `custom`."
            },
            {
              "key": "apply_correction",
              "value": "true",
              "description": "Defaults to `true`. If any SLO corrections are applied and this parameter is set to `false`,\nthen the corrections will not be applied and the SLI values will not be affected."
            }
          ],
          "variable": [
            {
              "key": "slo_id"
            }
          ]
        }
      },
      "status": "Too Many Requests",
      "code": 429,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"errors\": [\n    \"Bad Request\",\n    \"Bad Request\"\n  ]\n}"
    }
  ]
}