Chilkat Online Tools

Xojo / Datadog API Collection / Get all notebooks

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 Chilkat.Http
Dim success As Boolean

Dim queryParams As New Chilkat.JsonObject
success = queryParams.UpdateString("author_handle","test@datadoghq.com")
success = queryParams.UpdateString("exclude_author_handle","test@datadoghq.com")
success = queryParams.UpdateInt("start",0)
success = queryParams.UpdateInt("count",5)
success = queryParams.UpdateString("sort_field","modified")
success = queryParams.UpdateString("sort_dir","desc")
success = queryParams.UpdateString("query","postmortem")
success = queryParams.UpdateString("include_cells","false")
success = queryParams.UpdateString("is_template","false")
success = queryParams.UpdateString("type","investigation")

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

Dim resp As Chilkat.HttpResponse
resp = http.QuickRequestParams("GET","https://api.app.ddog-gov.com/api/v1/notebooks",queryParams)
If (http.LastMethodSuccess = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

Dim sbResponseBody As New Chilkat.StringBuilder
success = resp.GetBodySb(sbResponseBody)

Dim jResp As New Chilkat.JsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = False

System.DebugLog("Response Body:")
System.DebugLog(jResp.Emit())

Dim respStatusCode As Int32
respStatusCode = resp.StatusCode
System.DebugLog("Response Status Code = " + Str(respStatusCode))
If (respStatusCode >= 400) Then
    System.DebugLog("Response Header:")
    System.DebugLog(resp.Header)
    System.DebugLog("Failed.")

    Return
End If

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

// {
//   "data": [
//     {
//       "id": 123456,
//       "type": "notebooks",
//       "attributes": {
//         "name": "Example Notebook",
//         "author": {
//           "created_at": "1981-07-01T19:18:52.706Z",
//           "disabled": true,
//           "email": "enim fugiat",
//           "handle": "in",
//           "icon": "ut laborum",
//           "name": "ex sunt dolore eiusmod",
//           "status": "in nisi non velit adipisicing",
//           "title": "veniam dolor",
//           "verified": false
//         },
//         "cells": [
//           {
//             "id": "abcd1234",
//             "type": "notebook_cells",
//             "attributes": {
//               "definition": {
//                 "type": "markdown",
//                 "text": "# Example Header \nexample content"
//               }
//             }
//           },
//           {
//             "id": "abcd1234",
//             "type": "notebook_cells",
//             "attributes": {
//               "definition": {
//                 "type": "markdown",
//                 "text": "# Example Header \nexample content"
//               }
//             }
//           }
//         ],
//         "created": "2021-02-24T23:14:15.173964+00:00",
//         "metadata": {
//           "is_template": false,
//           "take_snapshots": false,
//           "type": "investigation"
//         },
//         "modified": "2021-02-24T23:15:23.274966+00:00",
//         "status": "published",
//         "time": {
//           "live_span": "1h"
//         }
//       }
//     },
//     {
//       "id": 123456,
//       "type": "notebooks",
//       "attributes": {
//         "name": "Example Notebook",
//         "author": {
//           "created_at": "1984-05-01T21:20:20.424Z",
//           "disabled": true,
//           "email": "cillum",
//           "handle": "et in Excepteur sunt aute",
//           "icon": "minim dolore sint eu deserunt",
//           "name": "ex reprehenderit labore",
//           "status": "dolor consectetur",
//           "title": "ex ut dolore",
//           "verified": true
//         },
//         "cells": [
//           {
//             "id": "abcd1234",
//             "type": "notebook_cells",
//             "attributes": {
//               "definition": {
//                 "type": "markdown",
//                 "text": "# Example Header \nexample content"
//               }
//             }
//           },
//           {
//             "id": "abcd1234",
//             "type": "notebook_cells",
//             "attributes": {
//               "definition": {
//                 "type": "markdown",
//                 "text": "# Example Header \nexample content"
//               }
//             }
//           }
//         ],
//         "created": "2021-02-24T23:14:15.173964+00:00",
//         "metadata": {
//           "is_template": false,
//           "take_snapshots": false,
//           "type": "investigation"
//         },
//         "modified": "2021-02-24T23:15:23.274966+00:00",
//         "status": "published",
//         "time": {
//           "live_span": "1h"
//         }
//       }
//     }
//   ],
//   "meta": {
//     "page": {
//       "total_count": 83637833,
//       "total_filtered_count": 34015219
//     }
//   }
// }

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

Dim id As Int32
Dim v_type As String
Dim Name As String
Dim Created_at As String
Dim Disabled As Boolean
Dim v_Email As String
Dim Handle As String
Dim Icon As String
Dim AuthorName As String
Dim Status As String
Dim Title As String
Dim Verified As Boolean
Dim Created As String
Dim Is_template As Boolean
Dim Take_snapshots As Boolean
Dim v_Type As String
Dim Modified As String
Dim attributesStatus As String
Dim Live_span As String
Dim j As Int32
Dim count_j As Int32
Dim id_str As String
Dim DefinitionType As String
Dim Text As String

Dim Total_count As Int32
Total_count = jResp.IntOf("meta.page.total_count")
Dim Total_filtered_count As Int32
Total_filtered_count = jResp.IntOf("meta.page.total_filtered_count")
Dim i As Int32
i = 0
Dim count_i As Int32
count_i = jResp.SizeOfArray("data")
While i < count_i
    jResp.I = i
    id = jResp.IntOf("data[i].id")
    v_type = jResp.StringOf("data[i].type")
    Name = jResp.StringOf("data[i].attributes.name")
    Created_at = jResp.StringOf("data[i].attributes.author.created_at")
    Disabled = jResp.BoolOf("data[i].attributes.author.disabled")
    v_Email = jResp.StringOf("data[i].attributes.author.email")
    Handle = jResp.StringOf("data[i].attributes.author.handle")
    Icon = jResp.StringOf("data[i].attributes.author.icon")
    AuthorName = jResp.StringOf("data[i].attributes.author.name")
    Status = jResp.StringOf("data[i].attributes.author.status")
    Title = jResp.StringOf("data[i].attributes.author.title")
    Verified = jResp.BoolOf("data[i].attributes.author.verified")
    Created = jResp.StringOf("data[i].attributes.created")
    Is_template = jResp.BoolOf("data[i].attributes.metadata.is_template")
    Take_snapshots = jResp.BoolOf("data[i].attributes.metadata.take_snapshots")
    v_Type = jResp.StringOf("data[i].attributes.metadata.type")
    Modified = jResp.StringOf("data[i].attributes.modified")
    attributesStatus = jResp.StringOf("data[i].attributes.status")
    Live_span = jResp.StringOf("data[i].attributes.time.live_span")
    j = 0
    count_j = jResp.SizeOfArray("data[i].attributes.cells")
    While j < count_j
        jResp.J = j
        id_str = jResp.StringOf("data[i].attributes.cells[j].id")
        v_type = jResp.StringOf("data[i].attributes.cells[j].type")
        DefinitionType = jResp.StringOf("data[i].attributes.cells[j].attributes.definition.type")
        Text = jResp.StringOf("data[i].attributes.cells[j].attributes.definition.text")
        j = j + 1
    Wend
    i = i + 1
Wend

Curl Command

curl -G -d "author_handle=test%40datadoghq.com"
	-d "exclude_author_handle=test%40datadoghq.com"
	-d "start=0"
	-d "count=5"
	-d "sort_field=modified"
	-d "sort_dir=desc"
	-d "query=postmortem"
	-d "include_cells=false"
	-d "is_template=false"
	-d "type=investigation"
	-H "Accept: application/json"
https://api.app.ddog-gov.com/api/v1/notebooks

Postman Collection Item JSON

{
  "name": "Get all notebooks",
  "request": {
    "method": "GET",
    "header": [
      {
        "key": "Accept",
        "value": "application/json"
      }
    ],
    "url": {
      "raw": "{{baseUrl}}/api/v1/notebooks?author_handle=test@datadoghq.com&exclude_author_handle=test@datadoghq.com&start=0&count=5&sort_field=modified&sort_dir=desc&query=postmortem&include_cells=false&is_template=false&type=investigation",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "api",
        "v1",
        "notebooks"
      ],
      "query": [
        {
          "key": "author_handle",
          "value": "test@datadoghq.com",
          "description": "Return notebooks created by the given `author_handle`."
        },
        {
          "key": "exclude_author_handle",
          "value": "test@datadoghq.com",
          "description": "Return notebooks not created by the given `author_handle`."
        },
        {
          "key": "start",
          "value": "0",
          "description": "The index of the first notebook you want returned."
        },
        {
          "key": "count",
          "value": "5",
          "description": "The number of notebooks to be returned."
        },
        {
          "key": "sort_field",
          "value": "modified",
          "description": "Sort by field `modified`, `name`, or `created`."
        },
        {
          "key": "sort_dir",
          "value": "desc",
          "description": "Sort by direction `asc` or `desc`."
        },
        {
          "key": "query",
          "value": "postmortem",
          "description": "Return only notebooks with `query` string in notebook name or author handle."
        },
        {
          "key": "include_cells",
          "value": "false",
          "description": "Value of `false` excludes the `cells` and global `time` for each notebook."
        },
        {
          "key": "is_template",
          "value": "false",
          "description": "True value returns only template notebooks. Default is false (returns only non-template notebooks)."
        },
        {
          "key": "type",
          "value": "investigation",
          "description": "If type is provided, returns only notebooks with that metadata type. Default does not have type filtering."
        }
      ]
    },
    "description": "Get all notebooks. This can also be used to search for notebooks with a particular `query` in the notebook\n`name` or author `handle`."
  },
  "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/notebooks?author_handle=test@datadoghq.com&exclude_author_handle=test@datadoghq.com&start=0&count=5&sort_field=modified&sort_dir=desc&query=postmortem&include_cells=false&is_template=false&type=investigation",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "notebooks"
          ],
          "query": [
            {
              "key": "author_handle",
              "value": "test@datadoghq.com",
              "description": "Return notebooks created by the given `author_handle`."
            },
            {
              "key": "exclude_author_handle",
              "value": "test@datadoghq.com",
              "description": "Return notebooks not created by the given `author_handle`."
            },
            {
              "key": "start",
              "value": "0",
              "description": "The index of the first notebook you want returned."
            },
            {
              "key": "count",
              "value": "5",
              "description": "The number of notebooks to be returned."
            },
            {
              "key": "sort_field",
              "value": "modified",
              "description": "Sort by field `modified`, `name`, or `created`."
            },
            {
              "key": "sort_dir",
              "value": "desc",
              "description": "Sort by direction `asc` or `desc`."
            },
            {
              "key": "query",
              "value": "postmortem",
              "description": "Return only notebooks with `query` string in notebook name or author handle."
            },
            {
              "key": "include_cells",
              "value": "false",
              "description": "Value of `false` excludes the `cells` and global `time` for each notebook."
            },
            {
              "key": "is_template",
              "value": "false",
              "description": "True value returns only template notebooks. Default is false (returns only non-template notebooks)."
            },
            {
              "key": "type",
              "value": "investigation",
              "description": "If type is provided, returns only notebooks with that metadata type. Default does not have type filtering."
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"data\": [\n    {\n      \"id\": 123456,\n      \"type\": \"notebooks\",\n      \"attributes\": {\n        \"name\": \"Example Notebook\",\n        \"author\": {\n          \"created_at\": \"1981-07-01T19:18:52.706Z\",\n          \"disabled\": true,\n          \"email\": \"enim fugiat\",\n          \"handle\": \"in\",\n          \"icon\": \"ut laborum\",\n          \"name\": \"ex sunt dolore eiusmod\",\n          \"status\": \"in nisi non velit adipisicing\",\n          \"title\": \"veniam dolor\",\n          \"verified\": false\n        },\n        \"cells\": [\n          {\n            \"id\": \"abcd1234\",\n            \"type\": \"notebook_cells\",\n            \"attributes\": {\n              \"definition\": {\n                \"type\": \"markdown\",\n                \"text\": \"# Example Header \\nexample content\"\n              }\n            }\n          },\n          {\n            \"id\": \"abcd1234\",\n            \"type\": \"notebook_cells\",\n            \"attributes\": {\n              \"definition\": {\n                \"type\": \"markdown\",\n                \"text\": \"# Example Header \\nexample content\"\n              }\n            }\n          }\n        ],\n        \"created\": \"2021-02-24T23:14:15.173964+00:00\",\n        \"metadata\": {\n          \"is_template\": false,\n          \"take_snapshots\": false,\n          \"type\": \"investigation\"\n        },\n        \"modified\": \"2021-02-24T23:15:23.274966+00:00\",\n        \"status\": \"published\",\n        \"time\": {\n          \"live_span\": \"1h\"\n        }\n      }\n    },\n    {\n      \"id\": 123456,\n      \"type\": \"notebooks\",\n      \"attributes\": {\n        \"name\": \"Example Notebook\",\n        \"author\": {\n          \"created_at\": \"1984-05-01T21:20:20.424Z\",\n          \"disabled\": true,\n          \"email\": \"cillum\",\n          \"handle\": \"et in Excepteur sunt aute\",\n          \"icon\": \"minim dolore sint eu deserunt\",\n          \"name\": \"ex reprehenderit labore\",\n          \"status\": \"dolor consectetur\",\n          \"title\": \"ex ut dolore\",\n          \"verified\": true\n        },\n        \"cells\": [\n          {\n            \"id\": \"abcd1234\",\n            \"type\": \"notebook_cells\",\n            \"attributes\": {\n              \"definition\": {\n                \"type\": \"markdown\",\n                \"text\": \"# Example Header \\nexample content\"\n              }\n            }\n          },\n          {\n            \"id\": \"abcd1234\",\n            \"type\": \"notebook_cells\",\n            \"attributes\": {\n              \"definition\": {\n                \"type\": \"markdown\",\n                \"text\": \"# Example Header \\nexample content\"\n              }\n            }\n          }\n        ],\n        \"created\": \"2021-02-24T23:14:15.173964+00:00\",\n        \"metadata\": {\n          \"is_template\": false,\n          \"take_snapshots\": false,\n          \"type\": \"investigation\"\n        },\n        \"modified\": \"2021-02-24T23:15:23.274966+00:00\",\n        \"status\": \"published\",\n        \"time\": {\n          \"live_span\": \"1h\"\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": {\n      \"total_count\": 83637833,\n      \"total_filtered_count\": 34015219\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/notebooks?author_handle=test@datadoghq.com&exclude_author_handle=test@datadoghq.com&start=0&count=5&sort_field=modified&sort_dir=desc&query=postmortem&include_cells=false&is_template=false&type=investigation",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "notebooks"
          ],
          "query": [
            {
              "key": "author_handle",
              "value": "test@datadoghq.com",
              "description": "Return notebooks created by the given `author_handle`."
            },
            {
              "key": "exclude_author_handle",
              "value": "test@datadoghq.com",
              "description": "Return notebooks not created by the given `author_handle`."
            },
            {
              "key": "start",
              "value": "0",
              "description": "The index of the first notebook you want returned."
            },
            {
              "key": "count",
              "value": "5",
              "description": "The number of notebooks to be returned."
            },
            {
              "key": "sort_field",
              "value": "modified",
              "description": "Sort by field `modified`, `name`, or `created`."
            },
            {
              "key": "sort_dir",
              "value": "desc",
              "description": "Sort by direction `asc` or `desc`."
            },
            {
              "key": "query",
              "value": "postmortem",
              "description": "Return only notebooks with `query` string in notebook name or author handle."
            },
            {
              "key": "include_cells",
              "value": "false",
              "description": "Value of `false` excludes the `cells` and global `time` for each notebook."
            },
            {
              "key": "is_template",
              "value": "false",
              "description": "True value returns only template notebooks. Default is false (returns only non-template notebooks)."
            },
            {
              "key": "type",
              "value": "investigation",
              "description": "If type is provided, returns only notebooks with that metadata type. Default does not have type filtering."
            }
          ]
        }
      },
      "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": "Authentication Error",
      "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/notebooks?author_handle=test@datadoghq.com&exclude_author_handle=test@datadoghq.com&start=0&count=5&sort_field=modified&sort_dir=desc&query=postmortem&include_cells=false&is_template=false&type=investigation",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "notebooks"
          ],
          "query": [
            {
              "key": "author_handle",
              "value": "test@datadoghq.com",
              "description": "Return notebooks created by the given `author_handle`."
            },
            {
              "key": "exclude_author_handle",
              "value": "test@datadoghq.com",
              "description": "Return notebooks not created by the given `author_handle`."
            },
            {
              "key": "start",
              "value": "0",
              "description": "The index of the first notebook you want returned."
            },
            {
              "key": "count",
              "value": "5",
              "description": "The number of notebooks to be returned."
            },
            {
              "key": "sort_field",
              "value": "modified",
              "description": "Sort by field `modified`, `name`, or `created`."
            },
            {
              "key": "sort_dir",
              "value": "desc",
              "description": "Sort by direction `asc` or `desc`."
            },
            {
              "key": "query",
              "value": "postmortem",
              "description": "Return only notebooks with `query` string in notebook name or author handle."
            },
            {
              "key": "include_cells",
              "value": "false",
              "description": "Value of `false` excludes the `cells` and global `time` for each notebook."
            },
            {
              "key": "is_template",
              "value": "false",
              "description": "True value returns only template notebooks. Default is false (returns only non-template notebooks)."
            },
            {
              "key": "type",
              "value": "investigation",
              "description": "If type is provided, returns only notebooks with that metadata type. Default does not have type filtering."
            }
          ]
        }
      },
      "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": "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/notebooks?author_handle=test@datadoghq.com&exclude_author_handle=test@datadoghq.com&start=0&count=5&sort_field=modified&sort_dir=desc&query=postmortem&include_cells=false&is_template=false&type=investigation",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "notebooks"
          ],
          "query": [
            {
              "key": "author_handle",
              "value": "test@datadoghq.com",
              "description": "Return notebooks created by the given `author_handle`."
            },
            {
              "key": "exclude_author_handle",
              "value": "test@datadoghq.com",
              "description": "Return notebooks not created by the given `author_handle`."
            },
            {
              "key": "start",
              "value": "0",
              "description": "The index of the first notebook you want returned."
            },
            {
              "key": "count",
              "value": "5",
              "description": "The number of notebooks to be returned."
            },
            {
              "key": "sort_field",
              "value": "modified",
              "description": "Sort by field `modified`, `name`, or `created`."
            },
            {
              "key": "sort_dir",
              "value": "desc",
              "description": "Sort by direction `asc` or `desc`."
            },
            {
              "key": "query",
              "value": "postmortem",
              "description": "Return only notebooks with `query` string in notebook name or author handle."
            },
            {
              "key": "include_cells",
              "value": "false",
              "description": "Value of `false` excludes the `cells` and global `time` for each notebook."
            },
            {
              "key": "is_template",
              "value": "false",
              "description": "True value returns only template notebooks. Default is false (returns only non-template notebooks)."
            },
            {
              "key": "type",
              "value": "investigation",
              "description": "If type is provided, returns only notebooks with that metadata type. Default does not have type filtering."
            }
          ]
        }
      },
      "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}"
    }
  ]
}