0

Get catalogs items (POST)

by
Published Dec 20, 2024

Get the items of the catalog owned by the "operation user_account".

Script pinterest Verified

The script

Submitted by hugo697 Bun
Verified 536 days ago
1
//native
2
type Pinterest = {
3
  token: string;
4
};
5
/**
6
 * Get catalogs items (POST)
7
 * Get the items of the catalog owned by the "operation user_account".
8
 */
9
export async function main(
10
  auth: Pinterest,
11
  ad_account_id: string | undefined,
12
  body: {
13
    country:
14
      | "AD"
15
      | "AE"
16
      | "AF"
17
      | "AG"
18
      | "AI"
19
      | "AL"
20
      | "AM"
21
      | "AO"
22
      | "AQ"
23
      | "AR"
24
      | "AS"
25
      | "AT"
26
      | "AU"
27
      | "AW"
28
      | "AX"
29
      | "AZ"
30
      | "BA"
31
      | "BB"
32
      | "BD"
33
      | "BE"
34
      | "BF"
35
      | "BG"
36
      | "BH"
37
      | "BI"
38
      | "BJ"
39
      | "BL"
40
      | "BM"
41
      | "BN"
42
      | "BO"
43
      | "BQ"
44
      | "BR"
45
      | "BS"
46
      | "BT"
47
      | "BV"
48
      | "BW"
49
      | "BY"
50
      | "BZ"
51
      | "CA"
52
      | "CC"
53
      | "CD"
54
      | "CF"
55
      | "CG"
56
      | "CH"
57
      | "CI"
58
      | "CK"
59
      | "CL"
60
      | "CM"
61
      | "CN"
62
      | "CO"
63
      | "CR"
64
      | "CU"
65
      | "CV"
66
      | "CW"
67
      | "CX"
68
      | "CY"
69
      | "CZ"
70
      | "DE"
71
      | "DJ"
72
      | "DK"
73
      | "DM"
74
      | "DO"
75
      | "DZ"
76
      | "EC"
77
      | "EE"
78
      | "EG"
79
      | "EH"
80
      | "ER"
81
      | "ES"
82
      | "ET"
83
      | "FI"
84
      | "FJ"
85
      | "FK"
86
      | "FM"
87
      | "FO"
88
      | "FR"
89
      | "GA"
90
      | "GB"
91
      | "GD"
92
      | "GE"
93
      | "GF"
94
      | "GG"
95
      | "GH"
96
      | "GI"
97
      | "GL"
98
      | "GM"
99
      | "GN"
100
      | "GP"
101
      | "GQ"
102
      | "GR"
103
      | "GS"
104
      | "GT"
105
      | "GU"
106
      | "GW"
107
      | "GY"
108
      | "HK"
109
      | "HM"
110
      | "HN"
111
      | "HR"
112
      | "HT"
113
      | "HU"
114
      | "ID"
115
      | "IE"
116
      | "IL"
117
      | "IM"
118
      | "IN"
119
      | "IO"
120
      | "IQ"
121
      | "IR"
122
      | "IS"
123
      | "IT"
124
      | "JE"
125
      | "JM"
126
      | "JO"
127
      | "JP"
128
      | "KE"
129
      | "KG"
130
      | "KH"
131
      | "KI"
132
      | "KM"
133
      | "KN"
134
      | "KR"
135
      | "KW"
136
      | "KY"
137
      | "KZ"
138
      | "LA"
139
      | "LB"
140
      | "LC"
141
      | "LI"
142
      | "LK"
143
      | "LR"
144
      | "LS"
145
      | "LT"
146
      | "LU"
147
      | "LV"
148
      | "LY"
149
      | "MA"
150
      | "MC"
151
      | "MD"
152
      | "ME"
153
      | "MF"
154
      | "MG"
155
      | "MH"
156
      | "MK"
157
      | "ML"
158
      | "MM"
159
      | "MN"
160
      | "MO"
161
      | "MP"
162
      | "MQ"
163
      | "MR"
164
      | "MS"
165
      | "MT"
166
      | "MU"
167
      | "MV"
168
      | "MW"
169
      | "MX"
170
      | "MY"
171
      | "MZ"
172
      | "NA"
173
      | "NC"
174
      | "NE"
175
      | "NF"
176
      | "NG"
177
      | "NI"
178
      | "NL"
179
      | "NO"
180
      | "NP"
181
      | "NR"
182
      | "NU"
183
      | "NZ"
184
      | "OM"
185
      | "PA"
186
      | "PE"
187
      | "PF"
188
      | "PG"
189
      | "PH"
190
      | "PK"
191
      | "PL"
192
      | "PM"
193
      | "PN"
194
      | "PR"
195
      | "PS"
196
      | "PT"
197
      | "PW"
198
      | "PY"
199
      | "QA"
200
      | "RE"
201
      | "RO"
202
      | "RS"
203
      | "RU"
204
      | "RW"
205
      | "SA"
206
      | "SB"
207
      | "SC"
208
      | "SD"
209
      | "SE"
210
      | "SG"
211
      | "SH"
212
      | "SI"
213
      | "SJ"
214
      | "SK"
215
      | "SL"
216
      | "SM"
217
      | "SN"
218
      | "SO"
219
      | "SR"
220
      | "SS"
221
      | "ST"
222
      | "SV"
223
      | "SX"
224
      | "SY"
225
      | "SZ"
226
      | "TC"
227
      | "TD"
228
      | "TF"
229
      | "TG"
230
      | "TH"
231
      | "TJ"
232
      | "TK"
233
      | "TL"
234
      | "TM"
235
      | "TN"
236
      | "TO"
237
      | "TR"
238
      | "TT"
239
      | "TV"
240
      | "TW"
241
      | "TZ"
242
      | "UA"
243
      | "UG"
244
      | "UM"
245
      | "US"
246
      | "UY"
247
      | "UZ"
248
      | "VA"
249
      | "VC"
250
      | "VE"
251
      | "VG"
252
      | "VI"
253
      | "VN"
254
      | "VU"
255
      | "WF"
256
      | "WS"
257
      | "YE"
258
      | "YT"
259
      | "ZA"
260
      | "ZM"
261
      | "ZW";
262
    language:
263
      | "AM"
264
      | "AR"
265
      | "AZ"
266
      | "BG"
267
      | "BN"
268
      | "BS"
269
      | "CA"
270
      | "DE"
271
      | "DZ"
272
      | "ES"
273
      | "ET"
274
      | "FI"
275
      | "FR"
276
      | "HR"
277
      | "HU"
278
      | "ID"
279
      | "IN"
280
      | "IS"
281
      | "IT"
282
      | "KM"
283
      | "LT"
284
      | "LV"
285
      | "MK"
286
      | "MN"
287
      | "MS"
288
      | "MY"
289
      | "NE"
290
      | "NL"
291
      | "NO"
292
      | "PL"
293
      | "PT"
294
      | "RO"
295
      | "RU"
296
      | "SK"
297
      | "SL"
298
      | "SR"
299
      | "SV"
300
      | "TH"
301
      | "TL"
302
      | "TR"
303
      | "VI"
304
      | "af-ZA"
305
      | "ar-SA"
306
      | "bg-BG"
307
      | "bn-IN"
308
      | "cs-CZ"
309
      | "da-DK"
310
      | "de"
311
      | "el-GR"
312
      | "en-AU"
313
      | "en-CA"
314
      | "en-GB"
315
      | "en-IN"
316
      | "en-US"
317
      | "es-419"
318
      | "es-AR"
319
      | "es-ES"
320
      | "es-MX"
321
      | "fi-FI"
322
      | "fr"
323
      | "fr-CA"
324
      | "he-IL"
325
      | "hi-IN"
326
      | "hr-HR"
327
      | "hu-HU"
328
      | "id-ID"
329
      | "it"
330
      | "ja"
331
      | "ko-KR"
332
      | "ms-MY"
333
      | "nb-NO"
334
      | "nl"
335
      | "pl-PL"
336
      | "pt-BR"
337
      | "pt-PT"
338
      | "ro-RO"
339
      | "ru-RU"
340
      | "sk-SK"
341
      | "sv-SE"
342
      | "te-IN"
343
      | "th-TH"
344
      | "tl-PH"
345
      | "tr"
346
      | "uk-UA"
347
      | "vi-VN"
348
      | "zh-CN"
349
      | "zh-TW"
350
      | "CS"
351
      | "DA"
352
      | "DV"
353
      | "EL"
354
      | "EN"
355
      | "FA"
356
      | "HE"
357
      | "HI"
358
      | "HY"
359
      | "IW"
360
      | "JA"
361
      | "KA"
362
      | "KO"
363
      | "LO"
364
      | "NB"
365
      | "SQ"
366
      | "UK"
367
      | "TE"
368
      | "XX"
369
      | "ZH";
370
    filters:
371
      | { catalog_type: "RETAIL"; item_ids: string[]; catalog_id?: string }
372
      | { catalog_type: "HOTEL"; hotel_ids: string[]; catalog_id?: string }
373
      | {
374
          catalog_type: "CREATIVE_ASSETS";
375
          creative_assets_ids: string[];
376
          catalog_id?: string;
377
        };
378
  },
379
) {
380
  const url = new URL(`https://api.pinterest.com/v5/catalogs/items`);
381
  for (const [k, v] of [["ad_account_id", ad_account_id]]) {
382
    if (v !== undefined && v !== "" && k !== undefined) {
383
      url.searchParams.append(k, v);
384
    }
385
  }
386
  const response = await fetch(url, {
387
    method: "POST",
388
    headers: {
389
      "Content-Type": "application/json",
390
      Authorization: "Bearer " + auth.token,
391
    },
392
    body: JSON.stringify(body),
393
  });
394
  if (!response.ok) {
395
    const text = await response.text();
396
    throw new Error(`${response.status} ${text}`);
397
  }
398
  return await response.json();
399
}
400