0

Get dashboard

by
Published Nov 16, 2023

The dashboard view provides both totals and timeseries data for the given zone and time period across the entire Cloudflare network.

Script cloudflare Verified

The script

Submitted by hugo697 Typescript (fetch-only)
Verified 403 days ago
1
type Cloudflare = {
2
  token: string;
3
  email: string;
4
  key: string;
5
};
6
/**
7
 * Get dashboard
8
 * The dashboard view provides both totals and timeseries data for the given zone and time period across the entire Cloudflare network.
9
 */
10
export async function main(
11
  auth: Cloudflare,
12
  zone_identifier: string,
13
  until: string | undefined,
14
  since: string | undefined,
15
  continuous: string | undefined
16
) {
17
  const url = new URL(
18
    `https://api.cloudflare.com/client/v4/zones/${zone_identifier}/analytics/dashboard`
19
  );
20
  for (const [k, v] of [
21
    ["until", until],
22
    ["since", since],
23
    ["continuous", continuous],
24
  ]) {
25
    if (v !== undefined && v !== "") {
26
      url.searchParams.append(k, v);
27
    }
28
  }
29
  const response = await fetch(url, {
30
    method: "GET",
31
    headers: {
32
      "X-AUTH-EMAIL": auth.email,
33
      "X-AUTH-KEY": auth.key,
34
      Authorization: "Bearer " + auth.token,
35
    },
36
    body: undefined,
37
  });
38
  if (!response.ok) {
39
    const text = await response.text();
40
    throw new Error(`${response.status} ${text}`);
41
  }
42
  return await response.json();
43
}
44