0

Get Sheet

by
Published Oct 17, 2025

Gets a sheet in the format specified, based on the sheet Id.

Script smartsheet Verified

The script

Submitted by hugo697 Bun
Verified 235 days ago
1
//native
2
type Smartsheet = {
3
  token: string;
4
  baseUrl: string;
5
};
6
/**
7
 * Get Sheet
8
 * Gets a sheet in the format specified, based on the sheet Id.
9
 */
10
export async function main(
11
  auth: Smartsheet,
12
  sheetId: string,
13
  accessApiLevel: string | undefined,
14
  include:
15
    | "attachments"
16
    | "columnType"
17
    | "crossSheetReferences"
18
    | "discussions"
19
    | "filters"
20
    | "filterDefinitions"
21
    | "format"
22
    | "ganttConfig"
23
    | "objectValue"
24
    | "ownerInfo"
25
    | "rowPermalink"
26
    | "source"
27
    | "writerInfo"
28
    | undefined,
29
  exclude:
30
    | "filteredOutRows"
31
    | "linkInFromCellDetails"
32
    | "linksOutToCellsDetails"
33
    | "nonexistentCells"
34
    | undefined,
35
  columnIds: string | undefined,
36
  filterId: string | undefined,
37
  ifVersionAfter: string | undefined,
38
  level: string | undefined,
39
  pageSize: string | undefined,
40
  page: string | undefined,
41
  paperSize:
42
    | "LETTER"
43
    | "LEGAL"
44
    | "WIDE"
45
    | "ARCHD"
46
    | "A4"
47
    | "A3"
48
    | "A2"
49
    | "A1"
50
    | "A0"
51
    | undefined,
52
  rowIds: string | undefined,
53
  rowNumbers: string | undefined,
54
  rowsModifiedSince: string | undefined,
55
) {
56
  const url = new URL(`${auth.baseUrl}/sheets/${sheetId}`);
57
  for (const [k, v] of [
58
    ["accessApiLevel", accessApiLevel],
59
    ["include", include],
60
    ["exclude", exclude],
61
    ["columnIds", columnIds],
62
    ["filterId", filterId],
63
    ["ifVersionAfter", ifVersionAfter],
64
    ["level", level],
65
    ["pageSize", pageSize],
66
    ["page", page],
67
    ["paperSize", paperSize],
68
    ["rowIds", rowIds],
69
    ["rowNumbers", rowNumbers],
70
    ["rowsModifiedSince", rowsModifiedSince],
71
  ]) {
72
    if (v !== undefined && v !== "" && k !== undefined) {
73
      url.searchParams.append(k, v);
74
    }
75
  }
76
  const response = await fetch(url, {
77
    method: "GET",
78
    headers: {
79
      Authorization: "Bearer " + auth.token,
80
    },
81
    body: undefined,
82
  });
83
  if (!response.ok) {
84
    const text = await response.text();
85
    throw new Error(`${response.status} ${text}`);
86
  }
87
  return await response.json();
88
}
89