0

Operate on item level bid options

by
Published Dec 20, 2024

This endpoint supports multiple operations on a set of one or more bid options (bid price and bid adjustments for targeting categories) for retail catalog items.

Script pinterest Verified

The script

Submitted by hugo697 Bun
Verified 536 days ago
1
//native
2
type Pinterest = {
3
  token: string;
4
};
5
/**
6
 * Operate on item level bid options
7
 * This endpoint supports multiple operations on a set of one or more bid options (bid price and bid adjustments for targeting categories) for retail catalog items.
8
 */
9
export async function main(
10
  auth: Pinterest,
11
  ad_account_id: string | undefined,
12
  body: {
13
    catalog_id: string;
14
    items:
15
      | ({
16
          item_id: string;
17
          country:
18
            | "AD"
19
            | "AE"
20
            | "AF"
21
            | "AG"
22
            | "AI"
23
            | "AL"
24
            | "AM"
25
            | "AO"
26
            | "AQ"
27
            | "AR"
28
            | "AS"
29
            | "AT"
30
            | "AU"
31
            | "AW"
32
            | "AX"
33
            | "AZ"
34
            | "BA"
35
            | "BB"
36
            | "BD"
37
            | "BE"
38
            | "BF"
39
            | "BG"
40
            | "BH"
41
            | "BI"
42
            | "BJ"
43
            | "BL"
44
            | "BM"
45
            | "BN"
46
            | "BO"
47
            | "BQ"
48
            | "BR"
49
            | "BS"
50
            | "BT"
51
            | "BV"
52
            | "BW"
53
            | "BY"
54
            | "BZ"
55
            | "CA"
56
            | "CC"
57
            | "CD"
58
            | "CF"
59
            | "CG"
60
            | "CH"
61
            | "CI"
62
            | "CK"
63
            | "CL"
64
            | "CM"
65
            | "CN"
66
            | "CO"
67
            | "CR"
68
            | "CU"
69
            | "CV"
70
            | "CW"
71
            | "CX"
72
            | "CY"
73
            | "CZ"
74
            | "DE"
75
            | "DJ"
76
            | "DK"
77
            | "DM"
78
            | "DO"
79
            | "DZ"
80
            | "EC"
81
            | "EE"
82
            | "EG"
83
            | "EH"
84
            | "ER"
85
            | "ES"
86
            | "ET"
87
            | "FI"
88
            | "FJ"
89
            | "FK"
90
            | "FM"
91
            | "FO"
92
            | "FR"
93
            | "GA"
94
            | "GB"
95
            | "GD"
96
            | "GE"
97
            | "GF"
98
            | "GG"
99
            | "GH"
100
            | "GI"
101
            | "GL"
102
            | "GM"
103
            | "GN"
104
            | "GP"
105
            | "GQ"
106
            | "GR"
107
            | "GS"
108
            | "GT"
109
            | "GU"
110
            | "GW"
111
            | "GY"
112
            | "HK"
113
            | "HM"
114
            | "HN"
115
            | "HR"
116
            | "HT"
117
            | "HU"
118
            | "ID"
119
            | "IE"
120
            | "IL"
121
            | "IM"
122
            | "IN"
123
            | "IO"
124
            | "IQ"
125
            | "IR"
126
            | "IS"
127
            | "IT"
128
            | "JE"
129
            | "JM"
130
            | "JO"
131
            | "JP"
132
            | "KE"
133
            | "KG"
134
            | "KH"
135
            | "KI"
136
            | "KM"
137
            | "KN"
138
            | "KR"
139
            | "KW"
140
            | "KY"
141
            | "KZ"
142
            | "LA"
143
            | "LB"
144
            | "LC"
145
            | "LI"
146
            | "LK"
147
            | "LR"
148
            | "LS"
149
            | "LT"
150
            | "LU"
151
            | "LV"
152
            | "LY"
153
            | "MA"
154
            | "MC"
155
            | "MD"
156
            | "ME"
157
            | "MF"
158
            | "MG"
159
            | "MH"
160
            | "MK"
161
            | "ML"
162
            | "MM"
163
            | "MN"
164
            | "MO"
165
            | "MP"
166
            | "MQ"
167
            | "MR"
168
            | "MS"
169
            | "MT"
170
            | "MU"
171
            | "MV"
172
            | "MW"
173
            | "MX"
174
            | "MY"
175
            | "MZ"
176
            | "NA"
177
            | "NC"
178
            | "NE"
179
            | "NF"
180
            | "NG"
181
            | "NI"
182
            | "NL"
183
            | "NO"
184
            | "NP"
185
            | "NR"
186
            | "NU"
187
            | "NZ"
188
            | "OM"
189
            | "PA"
190
            | "PE"
191
            | "PF"
192
            | "PG"
193
            | "PH"
194
            | "PK"
195
            | "PL"
196
            | "PM"
197
            | "PN"
198
            | "PR"
199
            | "PS"
200
            | "PT"
201
            | "PW"
202
            | "PY"
203
            | "QA"
204
            | "RE"
205
            | "RO"
206
            | "RS"
207
            | "RU"
208
            | "RW"
209
            | "SA"
210
            | "SB"
211
            | "SC"
212
            | "SD"
213
            | "SE"
214
            | "SG"
215
            | "SH"
216
            | "SI"
217
            | "SJ"
218
            | "SK"
219
            | "SL"
220
            | "SM"
221
            | "SN"
222
            | "SO"
223
            | "SR"
224
            | "SS"
225
            | "ST"
226
            | "SV"
227
            | "SX"
228
            | "SY"
229
            | "SZ"
230
            | "TC"
231
            | "TD"
232
            | "TF"
233
            | "TG"
234
            | "TH"
235
            | "TJ"
236
            | "TK"
237
            | "TL"
238
            | "TM"
239
            | "TN"
240
            | "TO"
241
            | "TR"
242
            | "TT"
243
            | "TV"
244
            | "TW"
245
            | "TZ"
246
            | "UA"
247
            | "UG"
248
            | "UM"
249
            | "US"
250
            | "UY"
251
            | "UZ"
252
            | "VA"
253
            | "VC"
254
            | "VE"
255
            | "VG"
256
            | "VI"
257
            | "VN"
258
            | "VU"
259
            | "WF"
260
            | "WS"
261
            | "YE"
262
            | "YT"
263
            | "ZA"
264
            | "ZM"
265
            | "ZW";
266
          language:
267
            | "AM"
268
            | "AR"
269
            | "AZ"
270
            | "BG"
271
            | "BN"
272
            | "BS"
273
            | "CA"
274
            | "DE"
275
            | "DZ"
276
            | "ES"
277
            | "ET"
278
            | "FI"
279
            | "FR"
280
            | "HR"
281
            | "HU"
282
            | "ID"
283
            | "IN"
284
            | "IS"
285
            | "IT"
286
            | "KM"
287
            | "LT"
288
            | "LV"
289
            | "MK"
290
            | "MN"
291
            | "MS"
292
            | "MY"
293
            | "NE"
294
            | "NL"
295
            | "NO"
296
            | "PL"
297
            | "PT"
298
            | "RO"
299
            | "RU"
300
            | "SK"
301
            | "SL"
302
            | "SR"
303
            | "SV"
304
            | "TH"
305
            | "TL"
306
            | "TR"
307
            | "VI"
308
            | "CS"
309
            | "DA"
310
            | "DV"
311
            | "EL"
312
            | "EN"
313
            | "FA"
314
            | "HE"
315
            | "HI"
316
            | "HY"
317
            | "IW"
318
            | "JA"
319
            | "KA"
320
            | "KO"
321
            | "LO"
322
            | "NB"
323
            | "SQ"
324
            | "UK"
325
            | "TE"
326
            | "XX"
327
            | "ZH";
328
        } & {
329
          bid_options: {
330
            bid_in_micro_currency?: number;
331
            app_type_multipliers?: {
332
              APP_TYPE?:
333
                | "android_mobile"
334
                | "android_tablet"
335
                | "ipad"
336
                | "iphone"
337
                | "web"
338
                | "web_mobile";
339
            };
340
            placement_multipliers?: { PLACEMENT?: "SEARCH" | "BROWSE" };
341
          };
342
        } & {
343
          update_mask:
344
            | "BID"
345
            | "APP_TYPE_BID_MULTIPLIER_SET"
346
            | "PLACEMENT_BID_MULTIPLIER_SET"[];
347
        })
348
      | {
349
          item_id: string;
350
          country:
351
            | "AD"
352
            | "AE"
353
            | "AF"
354
            | "AG"
355
            | "AI"
356
            | "AL"
357
            | "AM"
358
            | "AO"
359
            | "AQ"
360
            | "AR"
361
            | "AS"
362
            | "AT"
363
            | "AU"
364
            | "AW"
365
            | "AX"
366
            | "AZ"
367
            | "BA"
368
            | "BB"
369
            | "BD"
370
            | "BE"
371
            | "BF"
372
            | "BG"
373
            | "BH"
374
            | "BI"
375
            | "BJ"
376
            | "BL"
377
            | "BM"
378
            | "BN"
379
            | "BO"
380
            | "BQ"
381
            | "BR"
382
            | "BS"
383
            | "BT"
384
            | "BV"
385
            | "BW"
386
            | "BY"
387
            | "BZ"
388
            | "CA"
389
            | "CC"
390
            | "CD"
391
            | "CF"
392
            | "CG"
393
            | "CH"
394
            | "CI"
395
            | "CK"
396
            | "CL"
397
            | "CM"
398
            | "CN"
399
            | "CO"
400
            | "CR"
401
            | "CU"
402
            | "CV"
403
            | "CW"
404
            | "CX"
405
            | "CY"
406
            | "CZ"
407
            | "DE"
408
            | "DJ"
409
            | "DK"
410
            | "DM"
411
            | "DO"
412
            | "DZ"
413
            | "EC"
414
            | "EE"
415
            | "EG"
416
            | "EH"
417
            | "ER"
418
            | "ES"
419
            | "ET"
420
            | "FI"
421
            | "FJ"
422
            | "FK"
423
            | "FM"
424
            | "FO"
425
            | "FR"
426
            | "GA"
427
            | "GB"
428
            | "GD"
429
            | "GE"
430
            | "GF"
431
            | "GG"
432
            | "GH"
433
            | "GI"
434
            | "GL"
435
            | "GM"
436
            | "GN"
437
            | "GP"
438
            | "GQ"
439
            | "GR"
440
            | "GS"
441
            | "GT"
442
            | "GU"
443
            | "GW"
444
            | "GY"
445
            | "HK"
446
            | "HM"
447
            | "HN"
448
            | "HR"
449
            | "HT"
450
            | "HU"
451
            | "ID"
452
            | "IE"
453
            | "IL"
454
            | "IM"
455
            | "IN"
456
            | "IO"
457
            | "IQ"
458
            | "IR"
459
            | "IS"
460
            | "IT"
461
            | "JE"
462
            | "JM"
463
            | "JO"
464
            | "JP"
465
            | "KE"
466
            | "KG"
467
            | "KH"
468
            | "KI"
469
            | "KM"
470
            | "KN"
471
            | "KR"
472
            | "KW"
473
            | "KY"
474
            | "KZ"
475
            | "LA"
476
            | "LB"
477
            | "LC"
478
            | "LI"
479
            | "LK"
480
            | "LR"
481
            | "LS"
482
            | "LT"
483
            | "LU"
484
            | "LV"
485
            | "LY"
486
            | "MA"
487
            | "MC"
488
            | "MD"
489
            | "ME"
490
            | "MF"
491
            | "MG"
492
            | "MH"
493
            | "MK"
494
            | "ML"
495
            | "MM"
496
            | "MN"
497
            | "MO"
498
            | "MP"
499
            | "MQ"
500
            | "MR"
501
            | "MS"
502
            | "MT"
503
            | "MU"
504
            | "MV"
505
            | "MW"
506
            | "MX"
507
            | "MY"
508
            | "MZ"
509
            | "NA"
510
            | "NC"
511
            | "NE"
512
            | "NF"
513
            | "NG"
514
            | "NI"
515
            | "NL"
516
            | "NO"
517
            | "NP"
518
            | "NR"
519
            | "NU"
520
            | "NZ"
521
            | "OM"
522
            | "PA"
523
            | "PE"
524
            | "PF"
525
            | "PG"
526
            | "PH"
527
            | "PK"
528
            | "PL"
529
            | "PM"
530
            | "PN"
531
            | "PR"
532
            | "PS"
533
            | "PT"
534
            | "PW"
535
            | "PY"
536
            | "QA"
537
            | "RE"
538
            | "RO"
539
            | "RS"
540
            | "RU"
541
            | "RW"
542
            | "SA"
543
            | "SB"
544
            | "SC"
545
            | "SD"
546
            | "SE"
547
            | "SG"
548
            | "SH"
549
            | "SI"
550
            | "SJ"
551
            | "SK"
552
            | "SL"
553
            | "SM"
554
            | "SN"
555
            | "SO"
556
            | "SR"
557
            | "SS"
558
            | "ST"
559
            | "SV"
560
            | "SX"
561
            | "SY"
562
            | "SZ"
563
            | "TC"
564
            | "TD"
565
            | "TF"
566
            | "TG"
567
            | "TH"
568
            | "TJ"
569
            | "TK"
570
            | "TL"
571
            | "TM"
572
            | "TN"
573
            | "TO"
574
            | "TR"
575
            | "TT"
576
            | "TV"
577
            | "TW"
578
            | "TZ"
579
            | "UA"
580
            | "UG"
581
            | "UM"
582
            | "US"
583
            | "UY"
584
            | "UZ"
585
            | "VA"
586
            | "VC"
587
            | "VE"
588
            | "VG"
589
            | "VI"
590
            | "VN"
591
            | "VU"
592
            | "WF"
593
            | "WS"
594
            | "YE"
595
            | "YT"
596
            | "ZA"
597
            | "ZM"
598
            | "ZW";
599
          language:
600
            | "AM"
601
            | "AR"
602
            | "AZ"
603
            | "BG"
604
            | "BN"
605
            | "BS"
606
            | "CA"
607
            | "DE"
608
            | "DZ"
609
            | "ES"
610
            | "ET"
611
            | "FI"
612
            | "FR"
613
            | "HR"
614
            | "HU"
615
            | "ID"
616
            | "IN"
617
            | "IS"
618
            | "IT"
619
            | "KM"
620
            | "LT"
621
            | "LV"
622
            | "MK"
623
            | "MN"
624
            | "MS"
625
            | "MY"
626
            | "NE"
627
            | "NL"
628
            | "NO"
629
            | "PL"
630
            | "PT"
631
            | "RO"
632
            | "RU"
633
            | "SK"
634
            | "SL"
635
            | "SR"
636
            | "SV"
637
            | "TH"
638
            | "TL"
639
            | "TR"
640
            | "VI"
641
            | "CS"
642
            | "DA"
643
            | "DV"
644
            | "EL"
645
            | "EN"
646
            | "FA"
647
            | "HE"
648
            | "HI"
649
            | "HY"
650
            | "IW"
651
            | "JA"
652
            | "KA"
653
            | "KO"
654
            | "LO"
655
            | "NB"
656
            | "SQ"
657
            | "UK"
658
            | "TE"
659
            | "XX"
660
            | "ZH";
661
        }[];
662
  },
663
) {
664
  const url = new URL(
665
    `https://api.pinterest.com/v5/advanced_auction/items/submit`,
666
  );
667
  for (const [k, v] of [["ad_account_id", ad_account_id]]) {
668
    if (v !== undefined && v !== "" && k !== undefined) {
669
      url.searchParams.append(k, v);
670
    }
671
  }
672
  const response = await fetch(url, {
673
    method: "POST",
674
    headers: {
675
      "Content-Type": "application/json",
676
      Authorization: "Bearer " + auth.token,
677
    },
678
    body: JSON.stringify(body),
679
  });
680
  if (!response.ok) {
681
    const text = await response.text();
682
    throw new Error(`${response.status} ${text}`);
683
  }
684
  return await response.json();
685
}
686