adsdotdev 0.0.0-stage → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +136 -2
- package/dist/index.d.ts +139 -0
- package/dist/index.js +194 -0
- package/dist/openapi.d.ts +3544 -0
- package/dist/openapi.js +1 -0
- package/openapi.json +6936 -0
- package/package.json +55 -4
|
@@ -0,0 +1,3544 @@
|
|
|
1
|
+
export interface paths {
|
|
2
|
+
"/v1/models": {
|
|
3
|
+
parameters: {
|
|
4
|
+
query?: never;
|
|
5
|
+
header?: never;
|
|
6
|
+
path?: never;
|
|
7
|
+
cookie?: never;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* List models
|
|
11
|
+
* @description Every model a generation can run, with its price and the JSON Schema of its input. It needs no key.
|
|
12
|
+
*/
|
|
13
|
+
get: operations["listModels"];
|
|
14
|
+
put?: never;
|
|
15
|
+
post?: never;
|
|
16
|
+
delete?: never;
|
|
17
|
+
options?: never;
|
|
18
|
+
head?: never;
|
|
19
|
+
patch?: never;
|
|
20
|
+
trace?: never;
|
|
21
|
+
};
|
|
22
|
+
"/v1/models/{id}": {
|
|
23
|
+
parameters: {
|
|
24
|
+
query?: never;
|
|
25
|
+
header?: never;
|
|
26
|
+
path?: never;
|
|
27
|
+
cookie?: never;
|
|
28
|
+
};
|
|
29
|
+
/** Get a model */
|
|
30
|
+
get: operations["getModel"];
|
|
31
|
+
put?: never;
|
|
32
|
+
post?: never;
|
|
33
|
+
delete?: never;
|
|
34
|
+
options?: never;
|
|
35
|
+
head?: never;
|
|
36
|
+
patch?: never;
|
|
37
|
+
trace?: never;
|
|
38
|
+
};
|
|
39
|
+
"/v1/generations": {
|
|
40
|
+
parameters: {
|
|
41
|
+
query?: never;
|
|
42
|
+
header?: never;
|
|
43
|
+
path?: never;
|
|
44
|
+
cookie?: never;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* List generations
|
|
48
|
+
* @description Your generations, newest first.
|
|
49
|
+
*/
|
|
50
|
+
get: operations["listGenerations"];
|
|
51
|
+
put?: never;
|
|
52
|
+
/**
|
|
53
|
+
* Create a generation
|
|
54
|
+
* @description Queues a generation of one model. It answers at once with the queued generation, or, with `Prefer: wait`, holds the request until it finishes.
|
|
55
|
+
*/
|
|
56
|
+
post: operations["createGeneration"];
|
|
57
|
+
delete?: never;
|
|
58
|
+
options?: never;
|
|
59
|
+
head?: never;
|
|
60
|
+
patch?: never;
|
|
61
|
+
trace?: never;
|
|
62
|
+
};
|
|
63
|
+
"/v1/generations/{id}": {
|
|
64
|
+
parameters: {
|
|
65
|
+
query?: never;
|
|
66
|
+
header?: never;
|
|
67
|
+
path?: never;
|
|
68
|
+
cookie?: never;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Get a generation
|
|
72
|
+
* @description With `Prefer: wait`, holds the request until the generation finishes or the wait is up.
|
|
73
|
+
*/
|
|
74
|
+
get: operations["getGeneration"];
|
|
75
|
+
put?: never;
|
|
76
|
+
post?: never;
|
|
77
|
+
delete?: never;
|
|
78
|
+
options?: never;
|
|
79
|
+
head?: never;
|
|
80
|
+
patch?: never;
|
|
81
|
+
trace?: never;
|
|
82
|
+
};
|
|
83
|
+
"/v1/generations/{id}/cancel": {
|
|
84
|
+
parameters: {
|
|
85
|
+
query?: never;
|
|
86
|
+
header?: never;
|
|
87
|
+
path?: never;
|
|
88
|
+
cookie?: never;
|
|
89
|
+
};
|
|
90
|
+
get?: never;
|
|
91
|
+
put?: never;
|
|
92
|
+
/**
|
|
93
|
+
* Cancel a generation
|
|
94
|
+
* @description Stops a queued generation at no charge. One the model is already making is stopped where the model allows it; where it does not, it finishes and is charged.
|
|
95
|
+
*/
|
|
96
|
+
post: operations["cancelGeneration"];
|
|
97
|
+
delete?: never;
|
|
98
|
+
options?: never;
|
|
99
|
+
head?: never;
|
|
100
|
+
patch?: never;
|
|
101
|
+
trace?: never;
|
|
102
|
+
};
|
|
103
|
+
"/v1/assets": {
|
|
104
|
+
parameters: {
|
|
105
|
+
query?: never;
|
|
106
|
+
header?: never;
|
|
107
|
+
path?: never;
|
|
108
|
+
cookie?: never;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* List your library
|
|
112
|
+
* @description The brand's library, newest first: uploads, offer photos and anything liked.
|
|
113
|
+
*/
|
|
114
|
+
get: operations["listAssets"];
|
|
115
|
+
put?: never;
|
|
116
|
+
/**
|
|
117
|
+
* Import a file
|
|
118
|
+
* @description Copies a public https file into your library, so later generations can take it by id.
|
|
119
|
+
*/
|
|
120
|
+
post: operations["importAsset"];
|
|
121
|
+
delete?: never;
|
|
122
|
+
options?: never;
|
|
123
|
+
head?: never;
|
|
124
|
+
patch?: never;
|
|
125
|
+
trace?: never;
|
|
126
|
+
};
|
|
127
|
+
"/v1/assets/{id}": {
|
|
128
|
+
parameters: {
|
|
129
|
+
query?: never;
|
|
130
|
+
header?: never;
|
|
131
|
+
path?: never;
|
|
132
|
+
cookie?: never;
|
|
133
|
+
};
|
|
134
|
+
/** Get an asset */
|
|
135
|
+
get: operations["getAsset"];
|
|
136
|
+
put?: never;
|
|
137
|
+
post?: never;
|
|
138
|
+
delete?: never;
|
|
139
|
+
options?: never;
|
|
140
|
+
head?: never;
|
|
141
|
+
patch?: never;
|
|
142
|
+
trace?: never;
|
|
143
|
+
};
|
|
144
|
+
"/v1/brand": {
|
|
145
|
+
parameters: {
|
|
146
|
+
query?: never;
|
|
147
|
+
header?: never;
|
|
148
|
+
path?: never;
|
|
149
|
+
cookie?: never;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Get the brand kit
|
|
153
|
+
* @description The brand's identity: voice, rules, colors, type, fonts and logos. `Sandstorm-Brand` picks another brand of the organization.
|
|
154
|
+
*/
|
|
155
|
+
get: operations["getBrand"];
|
|
156
|
+
put?: never;
|
|
157
|
+
post?: never;
|
|
158
|
+
delete?: never;
|
|
159
|
+
options?: never;
|
|
160
|
+
head?: never;
|
|
161
|
+
patch?: never;
|
|
162
|
+
trace?: never;
|
|
163
|
+
};
|
|
164
|
+
"/v1/offers": {
|
|
165
|
+
parameters: {
|
|
166
|
+
query?: never;
|
|
167
|
+
header?: never;
|
|
168
|
+
path?: never;
|
|
169
|
+
cookie?: never;
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* List offers
|
|
173
|
+
* @description What the brand sells: products, services and bundles.
|
|
174
|
+
*/
|
|
175
|
+
get: operations["listOffers"];
|
|
176
|
+
put?: never;
|
|
177
|
+
post?: never;
|
|
178
|
+
delete?: never;
|
|
179
|
+
options?: never;
|
|
180
|
+
head?: never;
|
|
181
|
+
patch?: never;
|
|
182
|
+
trace?: never;
|
|
183
|
+
};
|
|
184
|
+
"/v1/offers/{id}": {
|
|
185
|
+
parameters: {
|
|
186
|
+
query?: never;
|
|
187
|
+
header?: never;
|
|
188
|
+
path?: never;
|
|
189
|
+
cookie?: never;
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Get an offer
|
|
193
|
+
* @description An offer with its variants and photos; the photos are asset ids that generations take.
|
|
194
|
+
*/
|
|
195
|
+
get: operations["getOffer"];
|
|
196
|
+
put?: never;
|
|
197
|
+
post?: never;
|
|
198
|
+
delete?: never;
|
|
199
|
+
options?: never;
|
|
200
|
+
head?: never;
|
|
201
|
+
patch?: never;
|
|
202
|
+
trace?: never;
|
|
203
|
+
};
|
|
204
|
+
"/v1/characters": {
|
|
205
|
+
parameters: {
|
|
206
|
+
query?: never;
|
|
207
|
+
header?: never;
|
|
208
|
+
path?: never;
|
|
209
|
+
cookie?: never;
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* List characters
|
|
213
|
+
* @description The people, products, places, voices and styles the brand keeps consistent across ads.
|
|
214
|
+
*/
|
|
215
|
+
get: operations["listCharacters"];
|
|
216
|
+
put?: never;
|
|
217
|
+
post?: never;
|
|
218
|
+
delete?: never;
|
|
219
|
+
options?: never;
|
|
220
|
+
head?: never;
|
|
221
|
+
patch?: never;
|
|
222
|
+
trace?: never;
|
|
223
|
+
};
|
|
224
|
+
"/v1/voices": {
|
|
225
|
+
parameters: {
|
|
226
|
+
query?: never;
|
|
227
|
+
header?: never;
|
|
228
|
+
path?: never;
|
|
229
|
+
cookie?: never;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Find voices
|
|
233
|
+
* @description Ready-made voices for voiceovers and voice changes.
|
|
234
|
+
*/
|
|
235
|
+
get: operations["listVoices"];
|
|
236
|
+
put?: never;
|
|
237
|
+
post?: never;
|
|
238
|
+
delete?: never;
|
|
239
|
+
options?: never;
|
|
240
|
+
head?: never;
|
|
241
|
+
patch?: never;
|
|
242
|
+
trace?: never;
|
|
243
|
+
};
|
|
244
|
+
"/v1/advertisers": {
|
|
245
|
+
parameters: {
|
|
246
|
+
query?: never;
|
|
247
|
+
header?: never;
|
|
248
|
+
path?: never;
|
|
249
|
+
cookie?: never;
|
|
250
|
+
};
|
|
251
|
+
/**
|
|
252
|
+
* Find advertisers
|
|
253
|
+
* @description Brands whose ads Sandstorm tracks, by name.
|
|
254
|
+
*/
|
|
255
|
+
get: operations["listAdvertisers"];
|
|
256
|
+
put?: never;
|
|
257
|
+
post?: never;
|
|
258
|
+
delete?: never;
|
|
259
|
+
options?: never;
|
|
260
|
+
head?: never;
|
|
261
|
+
patch?: never;
|
|
262
|
+
trace?: never;
|
|
263
|
+
};
|
|
264
|
+
"/v1/ads": {
|
|
265
|
+
parameters: {
|
|
266
|
+
query?: never;
|
|
267
|
+
header?: never;
|
|
268
|
+
path?: never;
|
|
269
|
+
cookie?: never;
|
|
270
|
+
};
|
|
271
|
+
/**
|
|
272
|
+
* Search ads
|
|
273
|
+
* @description Ads other brands run. Filters alone answer at once; `query` searches what the ads say and show.
|
|
274
|
+
*/
|
|
275
|
+
get: operations["listAds"];
|
|
276
|
+
put?: never;
|
|
277
|
+
post?: never;
|
|
278
|
+
delete?: never;
|
|
279
|
+
options?: never;
|
|
280
|
+
head?: never;
|
|
281
|
+
patch?: never;
|
|
282
|
+
trace?: never;
|
|
283
|
+
};
|
|
284
|
+
"/v1/ads/{id}": {
|
|
285
|
+
parameters: {
|
|
286
|
+
query?: never;
|
|
287
|
+
header?: never;
|
|
288
|
+
path?: never;
|
|
289
|
+
cookie?: never;
|
|
290
|
+
};
|
|
291
|
+
/**
|
|
292
|
+
* Get an ad
|
|
293
|
+
* @description All of an ad: its copy, dates, transcript and media.
|
|
294
|
+
*/
|
|
295
|
+
get: operations["getAd"];
|
|
296
|
+
put?: never;
|
|
297
|
+
post?: never;
|
|
298
|
+
delete?: never;
|
|
299
|
+
options?: never;
|
|
300
|
+
head?: never;
|
|
301
|
+
patch?: never;
|
|
302
|
+
trace?: never;
|
|
303
|
+
};
|
|
304
|
+
"/v1/me": {
|
|
305
|
+
parameters: {
|
|
306
|
+
query?: never;
|
|
307
|
+
header?: never;
|
|
308
|
+
path?: never;
|
|
309
|
+
cookie?: never;
|
|
310
|
+
};
|
|
311
|
+
/**
|
|
312
|
+
* Get the signed-in person
|
|
313
|
+
* @description Who the Sandstorm sign-in belongs to, and their organizations. It takes a sign-in, not an API key.
|
|
314
|
+
*/
|
|
315
|
+
get: operations["getMe"];
|
|
316
|
+
put?: never;
|
|
317
|
+
post?: never;
|
|
318
|
+
delete?: never;
|
|
319
|
+
options?: never;
|
|
320
|
+
head?: never;
|
|
321
|
+
patch?: never;
|
|
322
|
+
trace?: never;
|
|
323
|
+
};
|
|
324
|
+
"/v1/keys": {
|
|
325
|
+
parameters: {
|
|
326
|
+
query?: never;
|
|
327
|
+
header?: never;
|
|
328
|
+
path?: never;
|
|
329
|
+
cookie?: never;
|
|
330
|
+
};
|
|
331
|
+
get?: never;
|
|
332
|
+
put?: never;
|
|
333
|
+
/**
|
|
334
|
+
* Make an API key
|
|
335
|
+
* @description Makes a key for one of your organizations. It takes a sign-in, not an API key; /login.mjs does this for you.
|
|
336
|
+
*/
|
|
337
|
+
post: operations["createKey"];
|
|
338
|
+
delete?: never;
|
|
339
|
+
options?: never;
|
|
340
|
+
head?: never;
|
|
341
|
+
patch?: never;
|
|
342
|
+
trace?: never;
|
|
343
|
+
};
|
|
344
|
+
"/v1/webhooks/secret": {
|
|
345
|
+
parameters: {
|
|
346
|
+
query?: never;
|
|
347
|
+
header?: never;
|
|
348
|
+
path?: never;
|
|
349
|
+
cookie?: never;
|
|
350
|
+
};
|
|
351
|
+
/**
|
|
352
|
+
* Get your webhook secret
|
|
353
|
+
* @description Verify `Sandstorm-Signature` with it. It stays the same for as long as the key lives.
|
|
354
|
+
*/
|
|
355
|
+
get: operations["getWebhookSecret"];
|
|
356
|
+
put?: never;
|
|
357
|
+
post?: never;
|
|
358
|
+
delete?: never;
|
|
359
|
+
options?: never;
|
|
360
|
+
head?: never;
|
|
361
|
+
patch?: never;
|
|
362
|
+
trace?: never;
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
export interface webhooks {
|
|
366
|
+
generation: {
|
|
367
|
+
parameters: {
|
|
368
|
+
query?: never;
|
|
369
|
+
header?: never;
|
|
370
|
+
path?: never;
|
|
371
|
+
cookie?: never;
|
|
372
|
+
};
|
|
373
|
+
get?: never;
|
|
374
|
+
put?: never;
|
|
375
|
+
/**
|
|
376
|
+
* A generation finished
|
|
377
|
+
* @description Sent to a generation's `webhook_url` when it finishes, signed in `sandstorm-signature`. Answer 2xx; anything else is retried 5 times over about 7 hours.
|
|
378
|
+
*/
|
|
379
|
+
post: {
|
|
380
|
+
parameters: {
|
|
381
|
+
query?: never;
|
|
382
|
+
header?: never;
|
|
383
|
+
path?: never;
|
|
384
|
+
cookie?: never;
|
|
385
|
+
};
|
|
386
|
+
requestBody?: {
|
|
387
|
+
content: {
|
|
388
|
+
"application/json": components["schemas"]["GenerationEvent"];
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
responses: {
|
|
392
|
+
/** @description Received */
|
|
393
|
+
200: {
|
|
394
|
+
headers: {
|
|
395
|
+
[name: string]: unknown;
|
|
396
|
+
};
|
|
397
|
+
content?: never;
|
|
398
|
+
};
|
|
399
|
+
};
|
|
400
|
+
};
|
|
401
|
+
delete?: never;
|
|
402
|
+
options?: never;
|
|
403
|
+
head?: never;
|
|
404
|
+
patch?: never;
|
|
405
|
+
trace?: never;
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
export interface components {
|
|
409
|
+
schemas: {
|
|
410
|
+
CreateGeneration: components["schemas"]["Create_nano_banana_pro"] | components["schemas"]["Create_nano_banana_pro_edit"] | components["schemas"]["Create_nano_banana_2"] | components["schemas"]["Create_nano_banana_2_edit"] | components["schemas"]["Create_nano_banana_2_lite"] | components["schemas"]["Create_nano_banana_2_lite_edit"] | components["schemas"]["Create_gpt_image_2_5_flare"] | components["schemas"]["Create_gpt_image_2_5_flare_edit"] | components["schemas"]["Create_gpt_image_2_5_sunburst"] | components["schemas"]["Create_gpt_image_2_5_sunburst_edit"] | components["schemas"]["Create_seedream_5_pro"] | components["schemas"]["Create_seedream_5_pro_edit"] | components["schemas"]["Create_seedream_5_lite"] | components["schemas"]["Create_seedream_5_lite_edit"] | components["schemas"]["Create_seedream_5_pro_layers"] | components["schemas"]["Create_topaz_upscale"] | components["schemas"]["Create_seedance_2_5_text_to_video"] | components["schemas"]["Create_seedance_2_5_image_to_video"] | components["schemas"]["Create_seedance_2_5_reference_to_video"] | components["schemas"]["Create_seedance_2_5_finish"] | components["schemas"]["Create_kling_3_pro_image_to_video"] | components["schemas"]["Create_kling_o3_pro_reference_to_video"] | components["schemas"]["Create_gemini_omni_flash_text_to_video"] | components["schemas"]["Create_gemini_omni_flash_image_to_video"] | components["schemas"]["Create_gemini_omni_flash_reference_to_video"] | components["schemas"]["Create_gemini_omni_flash_edit"] | components["schemas"]["Create_sync_3_lipsync"] | components["schemas"]["Create_elevenlabs_voiceover"] | components["schemas"]["Create_elevenlabs_music"] | components["schemas"]["Create_elevenlabs_sound_effects"] | components["schemas"]["Create_elevenlabs_voice_changer"] | components["schemas"]["Create_elevenlabs_voice_isolator"] | components["schemas"]["Create_minimax_music"] | components["schemas"]["Create_sonilo_music"];
|
|
411
|
+
/**
|
|
412
|
+
* nano-banana-pro
|
|
413
|
+
* @description Photoreal images from a prompt: people, products and first frames for video. Up to 4K.
|
|
414
|
+
*/
|
|
415
|
+
Create_nano_banana_pro: {
|
|
416
|
+
/**
|
|
417
|
+
* @description discriminator enum property added by openapi-typescript
|
|
418
|
+
* @enum {string}
|
|
419
|
+
*/
|
|
420
|
+
model: "nano-banana-pro";
|
|
421
|
+
input: {
|
|
422
|
+
/** @description What the image shows, as one paragraph; 150 to 350 words of concrete detail work best. */
|
|
423
|
+
prompt: string;
|
|
424
|
+
/**
|
|
425
|
+
* @description Shape of the image as width:height; 1:1 when left out.
|
|
426
|
+
* @default 1:1
|
|
427
|
+
* @enum {string}
|
|
428
|
+
*/
|
|
429
|
+
aspect_ratio?: "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
430
|
+
/**
|
|
431
|
+
* @description Output resolution; 2K when left out.
|
|
432
|
+
* @default 2K
|
|
433
|
+
* @enum {string}
|
|
434
|
+
*/
|
|
435
|
+
resolution?: "1K" | "2K" | "4K";
|
|
436
|
+
/**
|
|
437
|
+
* @description File format; png when left out.
|
|
438
|
+
* @default png
|
|
439
|
+
* @enum {string}
|
|
440
|
+
*/
|
|
441
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
442
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
443
|
+
name?: string;
|
|
444
|
+
};
|
|
445
|
+
/**
|
|
446
|
+
* Format: uri
|
|
447
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
448
|
+
*/
|
|
449
|
+
webhook_url?: string;
|
|
450
|
+
};
|
|
451
|
+
/**
|
|
452
|
+
* nano-banana-pro/edit
|
|
453
|
+
* @description Change an image or combine several by instruction: a new background, color or setting.
|
|
454
|
+
*/
|
|
455
|
+
Create_nano_banana_pro_edit: {
|
|
456
|
+
/**
|
|
457
|
+
* @description discriminator enum property added by openapi-typescript
|
|
458
|
+
* @enum {string}
|
|
459
|
+
*/
|
|
460
|
+
model: "nano-banana-pro/edit";
|
|
461
|
+
input: {
|
|
462
|
+
/** @description The change to make, or how the images come together, citing each image by its place in images as @image1, @image2. */
|
|
463
|
+
prompt: string;
|
|
464
|
+
/**
|
|
465
|
+
* @description Shape of the image as width:height, or auto to follow the images given; auto when left out.
|
|
466
|
+
* @default auto
|
|
467
|
+
* @enum {string}
|
|
468
|
+
*/
|
|
469
|
+
aspect_ratio?: "auto" | "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
470
|
+
/**
|
|
471
|
+
* @description Output resolution; 2K when left out.
|
|
472
|
+
* @default 2K
|
|
473
|
+
* @enum {string}
|
|
474
|
+
*/
|
|
475
|
+
resolution?: "1K" | "2K" | "4K";
|
|
476
|
+
/**
|
|
477
|
+
* @description File format; png when left out.
|
|
478
|
+
* @default png
|
|
479
|
+
* @enum {string}
|
|
480
|
+
*/
|
|
481
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
482
|
+
/** @description The 1 to 14 images to edit or combine, in the order the prompt cites them, each an asset id (asset_…) or an https URL. */
|
|
483
|
+
images: string[];
|
|
484
|
+
/** @description Integer seed for a more repeatable edit; random when left out. */
|
|
485
|
+
seed?: number;
|
|
486
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
487
|
+
name?: string;
|
|
488
|
+
};
|
|
489
|
+
/**
|
|
490
|
+
* Format: uri
|
|
491
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
492
|
+
*/
|
|
493
|
+
webhook_url?: string;
|
|
494
|
+
};
|
|
495
|
+
/**
|
|
496
|
+
* nano-banana-2
|
|
497
|
+
* @description Faster than Pro for many variations, and the only one that makes 4:1 and 8:1 banners.
|
|
498
|
+
*/
|
|
499
|
+
Create_nano_banana_2: {
|
|
500
|
+
/**
|
|
501
|
+
* @description discriminator enum property added by openapi-typescript
|
|
502
|
+
* @enum {string}
|
|
503
|
+
*/
|
|
504
|
+
model: "nano-banana-2";
|
|
505
|
+
input: {
|
|
506
|
+
/** @description What the image shows, as one paragraph; 150 to 350 words of concrete detail work best. */
|
|
507
|
+
prompt: string;
|
|
508
|
+
/**
|
|
509
|
+
* @description Shape of the image as width:height; 1:1 when left out.
|
|
510
|
+
* @default 1:1
|
|
511
|
+
* @enum {string}
|
|
512
|
+
*/
|
|
513
|
+
aspect_ratio?: "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16" | "4:1" | "1:4" | "8:1" | "1:8";
|
|
514
|
+
/**
|
|
515
|
+
* @description Output resolution; 2K when left out.
|
|
516
|
+
* @default 2K
|
|
517
|
+
* @enum {string}
|
|
518
|
+
*/
|
|
519
|
+
resolution?: "1K" | "2K" | "4K";
|
|
520
|
+
/**
|
|
521
|
+
* @description File format; png when left out.
|
|
522
|
+
* @default png
|
|
523
|
+
* @enum {string}
|
|
524
|
+
*/
|
|
525
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
526
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
527
|
+
name?: string;
|
|
528
|
+
};
|
|
529
|
+
/**
|
|
530
|
+
* Format: uri
|
|
531
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
532
|
+
*/
|
|
533
|
+
webhook_url?: string;
|
|
534
|
+
};
|
|
535
|
+
/**
|
|
536
|
+
* nano-banana-2/edit
|
|
537
|
+
* @description Many edits or variations of images you already have, faster than Pro.
|
|
538
|
+
*/
|
|
539
|
+
Create_nano_banana_2_edit: {
|
|
540
|
+
/**
|
|
541
|
+
* @description discriminator enum property added by openapi-typescript
|
|
542
|
+
* @enum {string}
|
|
543
|
+
*/
|
|
544
|
+
model: "nano-banana-2/edit";
|
|
545
|
+
input: {
|
|
546
|
+
/** @description The change to make, or how the images come together, citing each image by its place in images as @image1, @image2. */
|
|
547
|
+
prompt: string;
|
|
548
|
+
/**
|
|
549
|
+
* @description Shape of the image as width:height, or auto to follow the images given; auto when left out.
|
|
550
|
+
* @default auto
|
|
551
|
+
* @enum {string}
|
|
552
|
+
*/
|
|
553
|
+
aspect_ratio?: "auto" | "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16" | "4:1" | "1:4" | "8:1" | "1:8";
|
|
554
|
+
/**
|
|
555
|
+
* @description Output resolution; 2K when left out.
|
|
556
|
+
* @default 2K
|
|
557
|
+
* @enum {string}
|
|
558
|
+
*/
|
|
559
|
+
resolution?: "1K" | "2K" | "4K";
|
|
560
|
+
/**
|
|
561
|
+
* @description File format; png when left out.
|
|
562
|
+
* @default png
|
|
563
|
+
* @enum {string}
|
|
564
|
+
*/
|
|
565
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
566
|
+
/** @description The 1 to 14 images to edit or combine, in the order the prompt cites them, each an asset id (asset_…) or an https URL. */
|
|
567
|
+
images: string[];
|
|
568
|
+
/** @description Integer seed for a more repeatable edit; random when left out. */
|
|
569
|
+
seed?: number;
|
|
570
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
571
|
+
name?: string;
|
|
572
|
+
};
|
|
573
|
+
/**
|
|
574
|
+
* Format: uri
|
|
575
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
576
|
+
*/
|
|
577
|
+
webhook_url?: string;
|
|
578
|
+
};
|
|
579
|
+
/**
|
|
580
|
+
* nano-banana-2-lite
|
|
581
|
+
* @description The fastest image model, for concepts, previews and lots of options before a final.
|
|
582
|
+
*/
|
|
583
|
+
Create_nano_banana_2_lite: {
|
|
584
|
+
/**
|
|
585
|
+
* @description discriminator enum property added by openapi-typescript
|
|
586
|
+
* @enum {string}
|
|
587
|
+
*/
|
|
588
|
+
model: "nano-banana-2-lite";
|
|
589
|
+
input: {
|
|
590
|
+
/** @description What the image shows, as one paragraph; 150 to 350 words of concrete detail work best. */
|
|
591
|
+
prompt: string;
|
|
592
|
+
/**
|
|
593
|
+
* @description Shape of the image as width:height; 1:1 when left out.
|
|
594
|
+
* @default 1:1
|
|
595
|
+
* @enum {string}
|
|
596
|
+
*/
|
|
597
|
+
aspect_ratio?: "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16" | "4:1" | "1:4" | "8:1" | "1:8";
|
|
598
|
+
/**
|
|
599
|
+
* @description File format; png when left out.
|
|
600
|
+
* @default png
|
|
601
|
+
* @enum {string}
|
|
602
|
+
*/
|
|
603
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
604
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
605
|
+
name?: string;
|
|
606
|
+
};
|
|
607
|
+
/**
|
|
608
|
+
* Format: uri
|
|
609
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
610
|
+
*/
|
|
611
|
+
webhook_url?: string;
|
|
612
|
+
};
|
|
613
|
+
/**
|
|
614
|
+
* nano-banana-2-lite/edit
|
|
615
|
+
* @description Quick drafts of an edit, and many options to choose from.
|
|
616
|
+
*/
|
|
617
|
+
Create_nano_banana_2_lite_edit: {
|
|
618
|
+
/**
|
|
619
|
+
* @description discriminator enum property added by openapi-typescript
|
|
620
|
+
* @enum {string}
|
|
621
|
+
*/
|
|
622
|
+
model: "nano-banana-2-lite/edit";
|
|
623
|
+
input: {
|
|
624
|
+
/** @description The change to make, or how the images come together, citing each image by its place in images as @image1, @image2. */
|
|
625
|
+
prompt: string;
|
|
626
|
+
/**
|
|
627
|
+
* @description Shape of the image as width:height, or auto to follow the images given; auto when left out.
|
|
628
|
+
* @default auto
|
|
629
|
+
* @enum {string}
|
|
630
|
+
*/
|
|
631
|
+
aspect_ratio?: "auto" | "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16" | "4:1" | "1:4" | "8:1" | "1:8";
|
|
632
|
+
/**
|
|
633
|
+
* @description File format; png when left out.
|
|
634
|
+
* @default png
|
|
635
|
+
* @enum {string}
|
|
636
|
+
*/
|
|
637
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
638
|
+
/** @description The 1 to 14 images to edit or combine, in the order the prompt cites them, each an asset id (asset_…) or an https URL. */
|
|
639
|
+
images: string[];
|
|
640
|
+
/** @description Integer seed for a more repeatable edit; random when left out. */
|
|
641
|
+
seed?: number;
|
|
642
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
643
|
+
name?: string;
|
|
644
|
+
};
|
|
645
|
+
/**
|
|
646
|
+
* Format: uri
|
|
647
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
648
|
+
*/
|
|
649
|
+
webhook_url?: string;
|
|
650
|
+
};
|
|
651
|
+
/**
|
|
652
|
+
* gpt-image-2.5-flare
|
|
653
|
+
* @description Images that carry copy and typography, follow an exact layout or need a transparent background.
|
|
654
|
+
*/
|
|
655
|
+
Create_gpt_image_2_5_flare: {
|
|
656
|
+
/**
|
|
657
|
+
* @description discriminator enum property added by openapi-typescript
|
|
658
|
+
* @enum {string}
|
|
659
|
+
*/
|
|
660
|
+
model: "gpt-image-2.5-flare";
|
|
661
|
+
input: {
|
|
662
|
+
/** @description Single-paragraph image prompt (150-350 words), with any words the image must show written out exactly. */
|
|
663
|
+
prompt: string;
|
|
664
|
+
/**
|
|
665
|
+
* @description Shape of the image as width:height; 1:1 when left out.
|
|
666
|
+
* @default 1:1
|
|
667
|
+
* @enum {string}
|
|
668
|
+
*/
|
|
669
|
+
aspect_ratio?: "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
670
|
+
/**
|
|
671
|
+
* @description Output resolution; 2K when left out.
|
|
672
|
+
* @default 2K
|
|
673
|
+
* @enum {string}
|
|
674
|
+
*/
|
|
675
|
+
resolution?: "1K" | "2K" | "4K";
|
|
676
|
+
/** @description Exact width in pixels for a fixed placement, passed with height in place of aspect_ratio and resolution, with both sides multiples of 16 up to 3840, at most 3:1 either way, and 655,360 to 8,294,400 pixels in all; none when left out. */
|
|
677
|
+
width?: number;
|
|
678
|
+
/** @description Exact height in pixels, passed with width under the same rules; none when left out. */
|
|
679
|
+
height?: number;
|
|
680
|
+
/**
|
|
681
|
+
* @description transparent for a cutout with no background, opaque for a filled one, or auto to let the model choose; auto when left out.
|
|
682
|
+
* @default auto
|
|
683
|
+
* @enum {string}
|
|
684
|
+
*/
|
|
685
|
+
background?: "auto" | "transparent" | "opaque";
|
|
686
|
+
/**
|
|
687
|
+
* @description File format; png when left out, and a transparent background needs png or webp.
|
|
688
|
+
* @default png
|
|
689
|
+
* @enum {string}
|
|
690
|
+
*/
|
|
691
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
692
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
693
|
+
name?: string;
|
|
694
|
+
};
|
|
695
|
+
/**
|
|
696
|
+
* Format: uri
|
|
697
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
698
|
+
*/
|
|
699
|
+
webhook_url?: string;
|
|
700
|
+
};
|
|
701
|
+
/**
|
|
702
|
+
* gpt-image-2.5-flare/edit
|
|
703
|
+
* @description Ads built around your product or logo images, with the copy set in the image. Up to 16 references.
|
|
704
|
+
*/
|
|
705
|
+
Create_gpt_image_2_5_flare_edit: {
|
|
706
|
+
/**
|
|
707
|
+
* @description discriminator enum property added by openapi-typescript
|
|
708
|
+
* @enum {string}
|
|
709
|
+
*/
|
|
710
|
+
model: "gpt-image-2.5-flare/edit";
|
|
711
|
+
input: {
|
|
712
|
+
/** @description The change to make, or how the images come together, citing each image by its place in images as @image1, @image2 and writing out exactly any words the image must show. */
|
|
713
|
+
prompt: string;
|
|
714
|
+
/**
|
|
715
|
+
* @description Shape of the image as width:height, or auto to let the model pick the size; auto when left out.
|
|
716
|
+
* @default auto
|
|
717
|
+
* @enum {string}
|
|
718
|
+
*/
|
|
719
|
+
aspect_ratio?: "auto" | "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
720
|
+
/**
|
|
721
|
+
* @description Output resolution, not used when aspect_ratio is auto; 2K when left out.
|
|
722
|
+
* @default 2K
|
|
723
|
+
* @enum {string}
|
|
724
|
+
*/
|
|
725
|
+
resolution?: "1K" | "2K" | "4K";
|
|
726
|
+
/** @description Exact width in pixels for a fixed placement, passed with height in place of aspect_ratio and resolution, with both sides multiples of 16 up to 3840, at most 3:1 either way, and 655,360 to 8,294,400 pixels in all; none when left out. */
|
|
727
|
+
width?: number;
|
|
728
|
+
/** @description Exact height in pixels, passed with width under the same rules; none when left out. */
|
|
729
|
+
height?: number;
|
|
730
|
+
/**
|
|
731
|
+
* @description transparent for a cutout with no background, opaque for a filled one, or auto to let the model choose; auto when left out.
|
|
732
|
+
* @default auto
|
|
733
|
+
* @enum {string}
|
|
734
|
+
*/
|
|
735
|
+
background?: "auto" | "transparent" | "opaque";
|
|
736
|
+
/**
|
|
737
|
+
* @description File format; png when left out, and a transparent background needs png or webp.
|
|
738
|
+
* @default png
|
|
739
|
+
* @enum {string}
|
|
740
|
+
*/
|
|
741
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
742
|
+
/** @description The 1 to 16 images to edit or combine, in the order the prompt cites them, each an asset id (asset_…) or an https URL. */
|
|
743
|
+
images: string[];
|
|
744
|
+
/** @description An image the size of the first of images, as an asset id (asset_…) or an https URL, with an alpha channel that is fully transparent where that image should change; the model takes it as guidance, so the rest can shift slightly. None when left out, so the prompt alone scopes the change. */
|
|
745
|
+
mask?: string;
|
|
746
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
747
|
+
name?: string;
|
|
748
|
+
};
|
|
749
|
+
/**
|
|
750
|
+
* Format: uri
|
|
751
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
752
|
+
*/
|
|
753
|
+
webhook_url?: string;
|
|
754
|
+
};
|
|
755
|
+
/**
|
|
756
|
+
* gpt-image-2.5-sunburst
|
|
757
|
+
* @description The slower, precision GPT model, for intricate detail and final passes.
|
|
758
|
+
*/
|
|
759
|
+
Create_gpt_image_2_5_sunburst: {
|
|
760
|
+
/**
|
|
761
|
+
* @description discriminator enum property added by openapi-typescript
|
|
762
|
+
* @enum {string}
|
|
763
|
+
*/
|
|
764
|
+
model: "gpt-image-2.5-sunburst";
|
|
765
|
+
input: {
|
|
766
|
+
/** @description Single-paragraph image prompt (150-350 words), with any words the image must show written out exactly. */
|
|
767
|
+
prompt: string;
|
|
768
|
+
/**
|
|
769
|
+
* @description Shape of the image as width:height; 1:1 when left out.
|
|
770
|
+
* @default 1:1
|
|
771
|
+
* @enum {string}
|
|
772
|
+
*/
|
|
773
|
+
aspect_ratio?: "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
774
|
+
/**
|
|
775
|
+
* @description Output resolution; 2K when left out.
|
|
776
|
+
* @default 2K
|
|
777
|
+
* @enum {string}
|
|
778
|
+
*/
|
|
779
|
+
resolution?: "1K" | "2K" | "4K";
|
|
780
|
+
/** @description Exact width in pixels for a fixed placement, passed with height in place of aspect_ratio and resolution, with both sides multiples of 16 up to 3840, at most 3:1 either way, and 655,360 to 8,294,400 pixels in all; none when left out. */
|
|
781
|
+
width?: number;
|
|
782
|
+
/** @description Exact height in pixels, passed with width under the same rules; none when left out. */
|
|
783
|
+
height?: number;
|
|
784
|
+
/**
|
|
785
|
+
* @description transparent for a cutout with no background, opaque for a filled one, or auto to let the model choose; auto when left out.
|
|
786
|
+
* @default auto
|
|
787
|
+
* @enum {string}
|
|
788
|
+
*/
|
|
789
|
+
background?: "auto" | "transparent" | "opaque";
|
|
790
|
+
/**
|
|
791
|
+
* @description File format; png when left out, and a transparent background needs png or webp.
|
|
792
|
+
* @default png
|
|
793
|
+
* @enum {string}
|
|
794
|
+
*/
|
|
795
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
796
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
797
|
+
name?: string;
|
|
798
|
+
};
|
|
799
|
+
/**
|
|
800
|
+
* Format: uri
|
|
801
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
802
|
+
*/
|
|
803
|
+
webhook_url?: string;
|
|
804
|
+
};
|
|
805
|
+
/**
|
|
806
|
+
* gpt-image-2.5-sunburst/edit
|
|
807
|
+
* @description Precision edits from up to 16 reference images.
|
|
808
|
+
*/
|
|
809
|
+
Create_gpt_image_2_5_sunburst_edit: {
|
|
810
|
+
/**
|
|
811
|
+
* @description discriminator enum property added by openapi-typescript
|
|
812
|
+
* @enum {string}
|
|
813
|
+
*/
|
|
814
|
+
model: "gpt-image-2.5-sunburst/edit";
|
|
815
|
+
input: {
|
|
816
|
+
/** @description The change to make, or how the images come together, citing each image by its place in images as @image1, @image2 and writing out exactly any words the image must show. */
|
|
817
|
+
prompt: string;
|
|
818
|
+
/**
|
|
819
|
+
* @description Shape of the image as width:height, or auto to let the model pick the size; auto when left out.
|
|
820
|
+
* @default auto
|
|
821
|
+
* @enum {string}
|
|
822
|
+
*/
|
|
823
|
+
aspect_ratio?: "auto" | "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
824
|
+
/**
|
|
825
|
+
* @description Output resolution, not used when aspect_ratio is auto; 2K when left out.
|
|
826
|
+
* @default 2K
|
|
827
|
+
* @enum {string}
|
|
828
|
+
*/
|
|
829
|
+
resolution?: "1K" | "2K" | "4K";
|
|
830
|
+
/** @description Exact width in pixels for a fixed placement, passed with height in place of aspect_ratio and resolution, with both sides multiples of 16 up to 3840, at most 3:1 either way, and 655,360 to 8,294,400 pixels in all; none when left out. */
|
|
831
|
+
width?: number;
|
|
832
|
+
/** @description Exact height in pixels, passed with width under the same rules; none when left out. */
|
|
833
|
+
height?: number;
|
|
834
|
+
/**
|
|
835
|
+
* @description transparent for a cutout with no background, opaque for a filled one, or auto to let the model choose; auto when left out.
|
|
836
|
+
* @default auto
|
|
837
|
+
* @enum {string}
|
|
838
|
+
*/
|
|
839
|
+
background?: "auto" | "transparent" | "opaque";
|
|
840
|
+
/**
|
|
841
|
+
* @description File format; png when left out, and a transparent background needs png or webp.
|
|
842
|
+
* @default png
|
|
843
|
+
* @enum {string}
|
|
844
|
+
*/
|
|
845
|
+
output_format?: "png" | "jpeg" | "webp";
|
|
846
|
+
/** @description The 1 to 16 images to edit or combine, in the order the prompt cites them, each an asset id (asset_…) or an https URL. */
|
|
847
|
+
images: string[];
|
|
848
|
+
/** @description An image the size of the first of images, as an asset id (asset_…) or an https URL, with an alpha channel that is fully transparent where that image should change; the model takes it as guidance, so the rest can shift slightly. None when left out, so the prompt alone scopes the change. */
|
|
849
|
+
mask?: string;
|
|
850
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
851
|
+
name?: string;
|
|
852
|
+
};
|
|
853
|
+
/**
|
|
854
|
+
* Format: uri
|
|
855
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
856
|
+
*/
|
|
857
|
+
webhook_url?: string;
|
|
858
|
+
};
|
|
859
|
+
/**
|
|
860
|
+
* seedream-5-pro
|
|
861
|
+
* @description Apparel and product imagery, swimwear included, and in-image text in 14 languages.
|
|
862
|
+
*/
|
|
863
|
+
Create_seedream_5_pro: {
|
|
864
|
+
/**
|
|
865
|
+
* @description discriminator enum property added by openapi-typescript
|
|
866
|
+
* @enum {string}
|
|
867
|
+
*/
|
|
868
|
+
model: "seedream-5-pro";
|
|
869
|
+
input: {
|
|
870
|
+
/** @description Single-paragraph image prompt, at most 600 words, with the exact words the image must show written out. */
|
|
871
|
+
prompt: string;
|
|
872
|
+
/**
|
|
873
|
+
* @description Shape of the image as width:height; 1:1 when left out.
|
|
874
|
+
* @default 1:1
|
|
875
|
+
* @enum {string}
|
|
876
|
+
*/
|
|
877
|
+
aspect_ratio?: "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
878
|
+
/**
|
|
879
|
+
* @description Output resolution, 1.5K for drafts at half the price and 2K for finals; 2K when left out.
|
|
880
|
+
* @default 2K
|
|
881
|
+
* @enum {string}
|
|
882
|
+
*/
|
|
883
|
+
resolution?: "1.5K" | "2K";
|
|
884
|
+
/**
|
|
885
|
+
* @description File format; png when left out.
|
|
886
|
+
* @default png
|
|
887
|
+
* @enum {string}
|
|
888
|
+
*/
|
|
889
|
+
output_format?: "png" | "jpeg";
|
|
890
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
891
|
+
name?: string;
|
|
892
|
+
};
|
|
893
|
+
/**
|
|
894
|
+
* Format: uri
|
|
895
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
896
|
+
*/
|
|
897
|
+
webhook_url?: string;
|
|
898
|
+
};
|
|
899
|
+
/**
|
|
900
|
+
* seedream-5-pro/edit
|
|
901
|
+
* @description Targeted changes that keep the rest of the frame, from up to 10 images.
|
|
902
|
+
*/
|
|
903
|
+
Create_seedream_5_pro_edit: {
|
|
904
|
+
/**
|
|
905
|
+
* @description discriminator enum property added by openapi-typescript
|
|
906
|
+
* @enum {string}
|
|
907
|
+
*/
|
|
908
|
+
model: "seedream-5-pro/edit";
|
|
909
|
+
input: {
|
|
910
|
+
/** @description The change to make as one paragraph, at most 600 words, citing each image by its place in images as @image1, @image2, with the exact words the result must show written out. */
|
|
911
|
+
prompt: string;
|
|
912
|
+
/**
|
|
913
|
+
* @description Shape of the result as width:height, or auto to keep the shape the images suggest; auto when left out.
|
|
914
|
+
* @default auto
|
|
915
|
+
* @enum {string}
|
|
916
|
+
*/
|
|
917
|
+
aspect_ratio?: "auto" | "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
918
|
+
/**
|
|
919
|
+
* @description Output resolution, 1.5K for drafts at half the price and 2K for finals; 2K when left out.
|
|
920
|
+
* @default 2K
|
|
921
|
+
* @enum {string}
|
|
922
|
+
*/
|
|
923
|
+
resolution?: "1.5K" | "2K";
|
|
924
|
+
/**
|
|
925
|
+
* @description File format; png when left out.
|
|
926
|
+
* @default png
|
|
927
|
+
* @enum {string}
|
|
928
|
+
*/
|
|
929
|
+
output_format?: "png" | "jpeg";
|
|
930
|
+
/** @description The images to edit or combine, in the order the prompt cites them, at most 10, each an asset id (asset_…) or an https URL. */
|
|
931
|
+
images: string[];
|
|
932
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
933
|
+
name?: string;
|
|
934
|
+
};
|
|
935
|
+
/**
|
|
936
|
+
* Format: uri
|
|
937
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
938
|
+
*/
|
|
939
|
+
webhook_url?: string;
|
|
940
|
+
};
|
|
941
|
+
/**
|
|
942
|
+
* seedream-5-lite
|
|
943
|
+
* @description Faster than Pro, for drafts and 3K or 4K finals.
|
|
944
|
+
*/
|
|
945
|
+
Create_seedream_5_lite: {
|
|
946
|
+
/**
|
|
947
|
+
* @description discriminator enum property added by openapi-typescript
|
|
948
|
+
* @enum {string}
|
|
949
|
+
*/
|
|
950
|
+
model: "seedream-5-lite";
|
|
951
|
+
input: {
|
|
952
|
+
/** @description Single-paragraph image prompt, at most 600 words, with the exact words the image must show written out. */
|
|
953
|
+
prompt: string;
|
|
954
|
+
/**
|
|
955
|
+
* @description Shape of the image as width:height; 1:1 when left out.
|
|
956
|
+
* @default 1:1
|
|
957
|
+
* @enum {string}
|
|
958
|
+
*/
|
|
959
|
+
aspect_ratio?: "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
960
|
+
/**
|
|
961
|
+
* @description Output resolution, 2K, 3K or 4K, all at one price; 2K when left out.
|
|
962
|
+
* @default 2K
|
|
963
|
+
* @enum {string}
|
|
964
|
+
*/
|
|
965
|
+
resolution?: "2K" | "3K" | "4K";
|
|
966
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
967
|
+
name?: string;
|
|
968
|
+
};
|
|
969
|
+
/**
|
|
970
|
+
* Format: uri
|
|
971
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
972
|
+
*/
|
|
973
|
+
webhook_url?: string;
|
|
974
|
+
};
|
|
975
|
+
/**
|
|
976
|
+
* seedream-5-lite/edit
|
|
977
|
+
* @description Fast edits from up to 14 images, at up to 4K.
|
|
978
|
+
*/
|
|
979
|
+
Create_seedream_5_lite_edit: {
|
|
980
|
+
/**
|
|
981
|
+
* @description discriminator enum property added by openapi-typescript
|
|
982
|
+
* @enum {string}
|
|
983
|
+
*/
|
|
984
|
+
model: "seedream-5-lite/edit";
|
|
985
|
+
input: {
|
|
986
|
+
/** @description The change to make as one paragraph, at most 600 words, citing each image by its place in images as @image1, @image2, with the exact words the result must show written out. */
|
|
987
|
+
prompt: string;
|
|
988
|
+
/**
|
|
989
|
+
* @description Shape of the result as width:height, or auto to keep the shape the images suggest; auto when left out.
|
|
990
|
+
* @default auto
|
|
991
|
+
* @enum {string}
|
|
992
|
+
*/
|
|
993
|
+
aspect_ratio?: "auto" | "1:1" | "21:9" | "16:9" | "3:2" | "4:3" | "5:4" | "4:5" | "3:4" | "2:3" | "9:16";
|
|
994
|
+
/**
|
|
995
|
+
* @description Output resolution, 2K, 3K or 4K, all at one price; 2K when left out.
|
|
996
|
+
* @default 2K
|
|
997
|
+
* @enum {string}
|
|
998
|
+
*/
|
|
999
|
+
resolution?: "2K" | "3K" | "4K";
|
|
1000
|
+
/** @description The images to edit or combine, in the order the prompt cites them, at most 14, each an asset id (asset_…) or an https URL. */
|
|
1001
|
+
images: string[];
|
|
1002
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1003
|
+
name?: string;
|
|
1004
|
+
};
|
|
1005
|
+
/**
|
|
1006
|
+
* Format: uri
|
|
1007
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1008
|
+
*/
|
|
1009
|
+
webhook_url?: string;
|
|
1010
|
+
};
|
|
1011
|
+
/**
|
|
1012
|
+
* seedream-5-pro/layers
|
|
1013
|
+
* @description Split one image into editable layers: background, product, headline and logo.
|
|
1014
|
+
*/
|
|
1015
|
+
Create_seedream_5_pro_layers: {
|
|
1016
|
+
/**
|
|
1017
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1018
|
+
* @enum {string}
|
|
1019
|
+
*/
|
|
1020
|
+
model: "seedream-5-pro/layers";
|
|
1021
|
+
input: {
|
|
1022
|
+
/** @description The image to split into layers, as an asset id (asset_…) or an https URL. */
|
|
1023
|
+
image: string;
|
|
1024
|
+
/**
|
|
1025
|
+
* @description One sentence on how to split, group or name the layers; asks for English names and descriptions when left out.
|
|
1026
|
+
* @default Return name and description in english.
|
|
1027
|
+
*/
|
|
1028
|
+
prompt?: string;
|
|
1029
|
+
/**
|
|
1030
|
+
* @description Resolution of the layers, 1.5K for drafts and 2K for finals; 2K when left out.
|
|
1031
|
+
* @default 2K
|
|
1032
|
+
* @enum {string}
|
|
1033
|
+
*/
|
|
1034
|
+
resolution?: "1.5K" | "2K";
|
|
1035
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1036
|
+
name?: string;
|
|
1037
|
+
};
|
|
1038
|
+
/**
|
|
1039
|
+
* Format: uri
|
|
1040
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1041
|
+
*/
|
|
1042
|
+
webhook_url?: string;
|
|
1043
|
+
};
|
|
1044
|
+
/**
|
|
1045
|
+
* topaz/upscale
|
|
1046
|
+
* @description Enlarge an image and recover sharpness without inventing content.
|
|
1047
|
+
*/
|
|
1048
|
+
Create_topaz_upscale: {
|
|
1049
|
+
/**
|
|
1050
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1051
|
+
* @enum {string}
|
|
1052
|
+
*/
|
|
1053
|
+
model: "topaz/upscale";
|
|
1054
|
+
input: {
|
|
1055
|
+
/** @description The image to enlarge, as an asset id (asset_…) or an https URL. */
|
|
1056
|
+
image: string;
|
|
1057
|
+
/**
|
|
1058
|
+
* @description How many times wider and taller the image comes out, from 1 to 4, so 2 makes four times the pixels; 2 when left out.
|
|
1059
|
+
* @default 2
|
|
1060
|
+
*/
|
|
1061
|
+
upscale_factor?: number;
|
|
1062
|
+
/**
|
|
1063
|
+
* @description standard suits most photos, high_fidelity keeps the fine detail of a professional shot, low_resolution recovers a small or compressed source, cgi suits renders and illustrations, and text keeps lettering and shapes crisp; standard when left out.
|
|
1064
|
+
* @default standard
|
|
1065
|
+
* @enum {string}
|
|
1066
|
+
*/
|
|
1067
|
+
preset?: "standard" | "high_fidelity" | "low_resolution" | "cgi" | "text";
|
|
1068
|
+
/**
|
|
1069
|
+
* @description Whether faces get their detail recovered; true when left out, and false for a shot with no people in it.
|
|
1070
|
+
* @default true
|
|
1071
|
+
*/
|
|
1072
|
+
face_enhancement?: boolean;
|
|
1073
|
+
/**
|
|
1074
|
+
* @description jpeg is the smaller file and png keeps every pixel; jpeg when left out.
|
|
1075
|
+
* @default jpeg
|
|
1076
|
+
* @enum {string}
|
|
1077
|
+
*/
|
|
1078
|
+
output_format?: "jpeg" | "png";
|
|
1079
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1080
|
+
name?: string;
|
|
1081
|
+
};
|
|
1082
|
+
/**
|
|
1083
|
+
* Format: uri
|
|
1084
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1085
|
+
*/
|
|
1086
|
+
webhook_url?: string;
|
|
1087
|
+
};
|
|
1088
|
+
/**
|
|
1089
|
+
* seedance-2.5/text-to-video
|
|
1090
|
+
* @description A clip from a prompt alone, with sound, speech and music. 4 to 30 seconds.
|
|
1091
|
+
*/
|
|
1092
|
+
Create_seedance_2_5_text_to_video: {
|
|
1093
|
+
/**
|
|
1094
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1095
|
+
* @enum {string}
|
|
1096
|
+
*/
|
|
1097
|
+
model: "seedance-2.5/text-to-video";
|
|
1098
|
+
input: {
|
|
1099
|
+
/** @description What happens in the clip. */
|
|
1100
|
+
prompt: string;
|
|
1101
|
+
/**
|
|
1102
|
+
* @description Shape of the clip as width:height, or auto to let the model decide; auto when left out.
|
|
1103
|
+
* @default auto
|
|
1104
|
+
* @enum {string}
|
|
1105
|
+
*/
|
|
1106
|
+
aspect_ratio?: "auto" | "21:9" | "16:9" | "4:3" | "1:1" | "3:4" | "9:16";
|
|
1107
|
+
/**
|
|
1108
|
+
* @description Whether to make a cheap 480p draft, whatever resolution says, that seedance-2.5/finish can finish at 1080p within 7 days; false when left out.
|
|
1109
|
+
* @default false
|
|
1110
|
+
*/
|
|
1111
|
+
draft?: boolean;
|
|
1112
|
+
/**
|
|
1113
|
+
* @description Length in whole seconds from 4 to 30, or auto to let the model decide; auto when left out.
|
|
1114
|
+
* @default auto
|
|
1115
|
+
*/
|
|
1116
|
+
duration?: "auto" | number;
|
|
1117
|
+
/**
|
|
1118
|
+
* @description Output resolution; 720p when left out.
|
|
1119
|
+
* @default 720p
|
|
1120
|
+
* @enum {string}
|
|
1121
|
+
*/
|
|
1122
|
+
resolution?: "480p" | "720p" | "1080p";
|
|
1123
|
+
/**
|
|
1124
|
+
* @description Whether the clip gets sound, speech and music made for it; true when left out.
|
|
1125
|
+
* @default true
|
|
1126
|
+
*/
|
|
1127
|
+
generate_audio?: boolean;
|
|
1128
|
+
/**
|
|
1129
|
+
* @description Video codec; auto when left out.
|
|
1130
|
+
* @default auto
|
|
1131
|
+
* @enum {string}
|
|
1132
|
+
*/
|
|
1133
|
+
codec?: "auto" | "H264" | "H265";
|
|
1134
|
+
/**
|
|
1135
|
+
* @description high asks for a larger, higher quality file; standard when left out.
|
|
1136
|
+
* @default standard
|
|
1137
|
+
* @enum {string}
|
|
1138
|
+
*/
|
|
1139
|
+
bitrate_mode?: "standard" | "high";
|
|
1140
|
+
/**
|
|
1141
|
+
* @description mp4 plays anywhere, mov keeps more color for grading; mp4 when left out.
|
|
1142
|
+
* @default mp4
|
|
1143
|
+
* @enum {string}
|
|
1144
|
+
*/
|
|
1145
|
+
output_format?: "mp4" | "mov";
|
|
1146
|
+
/**
|
|
1147
|
+
* @description Whether the last frame is also saved as an image, to start the next clip from; false when left out.
|
|
1148
|
+
* @default false
|
|
1149
|
+
*/
|
|
1150
|
+
return_last_frame?: boolean;
|
|
1151
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1152
|
+
name?: string;
|
|
1153
|
+
};
|
|
1154
|
+
/**
|
|
1155
|
+
* Format: uri
|
|
1156
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1157
|
+
*/
|
|
1158
|
+
webhook_url?: string;
|
|
1159
|
+
};
|
|
1160
|
+
/**
|
|
1161
|
+
* seedance-2.5/image-to-video
|
|
1162
|
+
* @description Bring a still to life, or join two frames with motion. 4 to 30 seconds.
|
|
1163
|
+
*/
|
|
1164
|
+
Create_seedance_2_5_image_to_video: {
|
|
1165
|
+
/**
|
|
1166
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1167
|
+
* @enum {string}
|
|
1168
|
+
*/
|
|
1169
|
+
model: "seedance-2.5/image-to-video";
|
|
1170
|
+
input: {
|
|
1171
|
+
/** @description What happens in the clip, from the start image to the end image when one is given. */
|
|
1172
|
+
prompt: string;
|
|
1173
|
+
/** @description The image the clip opens on, as an asset id (asset_…) or an https URL; the clip takes its shape. */
|
|
1174
|
+
start_image: string;
|
|
1175
|
+
/** @description The image the clip ends on, as an asset id (asset_…) or an https URL; none when left out, so the model picks the ending. */
|
|
1176
|
+
end_image?: string;
|
|
1177
|
+
/**
|
|
1178
|
+
* @description Whether to make a cheap 480p draft, whatever resolution says, that seedance-2.5/finish can finish at 1080p within 7 days; false when left out.
|
|
1179
|
+
* @default false
|
|
1180
|
+
*/
|
|
1181
|
+
draft?: boolean;
|
|
1182
|
+
/**
|
|
1183
|
+
* @description Length in whole seconds from 4 to 30, or auto to let the model decide; auto when left out.
|
|
1184
|
+
* @default auto
|
|
1185
|
+
*/
|
|
1186
|
+
duration?: "auto" | number;
|
|
1187
|
+
/**
|
|
1188
|
+
* @description Output resolution; 720p when left out.
|
|
1189
|
+
* @default 720p
|
|
1190
|
+
* @enum {string}
|
|
1191
|
+
*/
|
|
1192
|
+
resolution?: "480p" | "720p" | "1080p";
|
|
1193
|
+
/**
|
|
1194
|
+
* @description Whether the clip gets sound, speech and music made for it; true when left out.
|
|
1195
|
+
* @default true
|
|
1196
|
+
*/
|
|
1197
|
+
generate_audio?: boolean;
|
|
1198
|
+
/**
|
|
1199
|
+
* @description Video codec; auto when left out.
|
|
1200
|
+
* @default auto
|
|
1201
|
+
* @enum {string}
|
|
1202
|
+
*/
|
|
1203
|
+
codec?: "auto" | "H264" | "H265";
|
|
1204
|
+
/**
|
|
1205
|
+
* @description high asks for a larger, higher quality file; standard when left out.
|
|
1206
|
+
* @default standard
|
|
1207
|
+
* @enum {string}
|
|
1208
|
+
*/
|
|
1209
|
+
bitrate_mode?: "standard" | "high";
|
|
1210
|
+
/**
|
|
1211
|
+
* @description mp4 plays anywhere, mov keeps more color for grading; mp4 when left out.
|
|
1212
|
+
* @default mp4
|
|
1213
|
+
* @enum {string}
|
|
1214
|
+
*/
|
|
1215
|
+
output_format?: "mp4" | "mov";
|
|
1216
|
+
/**
|
|
1217
|
+
* @description Whether the last frame is also saved as an image, to start the next clip from; false when left out.
|
|
1218
|
+
* @default false
|
|
1219
|
+
*/
|
|
1220
|
+
return_last_frame?: boolean;
|
|
1221
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1222
|
+
name?: string;
|
|
1223
|
+
};
|
|
1224
|
+
/**
|
|
1225
|
+
* Format: uri
|
|
1226
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1227
|
+
*/
|
|
1228
|
+
webhook_url?: string;
|
|
1229
|
+
};
|
|
1230
|
+
/**
|
|
1231
|
+
* seedance-2.5/reference-to-video
|
|
1232
|
+
* @description Motion that keeps the look of images, the movement of clips or the sound of audio you pass.
|
|
1233
|
+
*/
|
|
1234
|
+
Create_seedance_2_5_reference_to_video: {
|
|
1235
|
+
/**
|
|
1236
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1237
|
+
* @enum {string}
|
|
1238
|
+
*/
|
|
1239
|
+
model: "seedance-2.5/reference-to-video";
|
|
1240
|
+
input: {
|
|
1241
|
+
/** @description What happens in the clip, citing each image, video or audio by its place in its list as @image1, @video1 or @audio1. */
|
|
1242
|
+
prompt: string;
|
|
1243
|
+
/**
|
|
1244
|
+
* @description reference makes a new clip from the references, editing changes the first of videos, extension continues it; auto when left out, which lets the model decide.
|
|
1245
|
+
* @default auto
|
|
1246
|
+
* @enum {string}
|
|
1247
|
+
*/
|
|
1248
|
+
task?: "auto" | "reference" | "editing" | "extension";
|
|
1249
|
+
/**
|
|
1250
|
+
* @description Up to 30 images, each an asset id (asset_…) or an https URL; none when left out.
|
|
1251
|
+
* @default []
|
|
1252
|
+
*/
|
|
1253
|
+
images?: string[];
|
|
1254
|
+
/**
|
|
1255
|
+
* @description Up to 10 videos, each an asset id (asset_…) or an https URL; none when left out. Past 30 seconds together the longer ones are cut to their opening seconds, and beside audio their own sound is left out; editing and extension take them whole, so those must run 30 seconds or less together.
|
|
1256
|
+
* @default []
|
|
1257
|
+
*/
|
|
1258
|
+
videos?: string[];
|
|
1259
|
+
/**
|
|
1260
|
+
* @description Up to 10 audio files, each an asset id (asset_…) or an https URL; none when left out. Past 30 seconds together the longer ones are cut to their opening seconds.
|
|
1261
|
+
* @default []
|
|
1262
|
+
*/
|
|
1263
|
+
audio?: string[];
|
|
1264
|
+
/**
|
|
1265
|
+
* @description Shape of the clip as width:height, or auto to follow the references; auto when left out.
|
|
1266
|
+
* @default auto
|
|
1267
|
+
* @enum {string}
|
|
1268
|
+
*/
|
|
1269
|
+
aspect_ratio?: "auto" | "21:9" | "16:9" | "4:3" | "1:1" | "3:4" | "9:16";
|
|
1270
|
+
/** @description Integer seed for a more repeatable take; random when left out. */
|
|
1271
|
+
seed?: number;
|
|
1272
|
+
/**
|
|
1273
|
+
* @description Whether to make a cheap 480p draft, whatever resolution says, that seedance-2.5/finish can finish at 1080p within 7 days; false when left out.
|
|
1274
|
+
* @default false
|
|
1275
|
+
*/
|
|
1276
|
+
draft?: boolean;
|
|
1277
|
+
/**
|
|
1278
|
+
* @description Length in whole seconds from 4 to 30, or auto to let the model decide; auto when left out.
|
|
1279
|
+
* @default auto
|
|
1280
|
+
*/
|
|
1281
|
+
duration?: "auto" | number;
|
|
1282
|
+
/**
|
|
1283
|
+
* @description Output resolution; 720p when left out.
|
|
1284
|
+
* @default 720p
|
|
1285
|
+
* @enum {string}
|
|
1286
|
+
*/
|
|
1287
|
+
resolution?: "480p" | "720p" | "1080p";
|
|
1288
|
+
/**
|
|
1289
|
+
* @description Whether the clip gets sound, speech and music made for it; true when left out.
|
|
1290
|
+
* @default true
|
|
1291
|
+
*/
|
|
1292
|
+
generate_audio?: boolean;
|
|
1293
|
+
/**
|
|
1294
|
+
* @description Video codec; auto when left out.
|
|
1295
|
+
* @default auto
|
|
1296
|
+
* @enum {string}
|
|
1297
|
+
*/
|
|
1298
|
+
codec?: "auto" | "H264" | "H265";
|
|
1299
|
+
/**
|
|
1300
|
+
* @description high asks for a larger, higher quality file; standard when left out.
|
|
1301
|
+
* @default standard
|
|
1302
|
+
* @enum {string}
|
|
1303
|
+
*/
|
|
1304
|
+
bitrate_mode?: "standard" | "high";
|
|
1305
|
+
/**
|
|
1306
|
+
* @description mp4 plays anywhere, mov keeps more color for grading; mp4 when left out.
|
|
1307
|
+
* @default mp4
|
|
1308
|
+
* @enum {string}
|
|
1309
|
+
*/
|
|
1310
|
+
output_format?: "mp4" | "mov";
|
|
1311
|
+
/**
|
|
1312
|
+
* @description Whether the last frame is also saved as an image, to start the next clip from; false when left out.
|
|
1313
|
+
* @default false
|
|
1314
|
+
*/
|
|
1315
|
+
return_last_frame?: boolean;
|
|
1316
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1317
|
+
name?: string;
|
|
1318
|
+
};
|
|
1319
|
+
/**
|
|
1320
|
+
* Format: uri
|
|
1321
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1322
|
+
*/
|
|
1323
|
+
webhook_url?: string;
|
|
1324
|
+
};
|
|
1325
|
+
/**
|
|
1326
|
+
* seedance-2.5/finish
|
|
1327
|
+
* @description Finish a 480p draft at 1080p, within 7 days of making it.
|
|
1328
|
+
*/
|
|
1329
|
+
Create_seedance_2_5_finish: {
|
|
1330
|
+
/**
|
|
1331
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1332
|
+
* @enum {string}
|
|
1333
|
+
*/
|
|
1334
|
+
model: "seedance-2.5/finish";
|
|
1335
|
+
input: {
|
|
1336
|
+
/** @description The draft to finish: the asset id of a Seedance 2.5 clip made with draft set to true. */
|
|
1337
|
+
draft: string;
|
|
1338
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1339
|
+
name?: string;
|
|
1340
|
+
};
|
|
1341
|
+
/**
|
|
1342
|
+
* Format: uri
|
|
1343
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1344
|
+
*/
|
|
1345
|
+
webhook_url?: string;
|
|
1346
|
+
};
|
|
1347
|
+
/**
|
|
1348
|
+
* kling-3-pro/image-to-video
|
|
1349
|
+
* @description A clip that opens on your image and can end on a second one.
|
|
1350
|
+
*/
|
|
1351
|
+
Create_kling_3_pro_image_to_video: {
|
|
1352
|
+
/**
|
|
1353
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1354
|
+
* @enum {string}
|
|
1355
|
+
*/
|
|
1356
|
+
model: "kling-3-pro/image-to-video";
|
|
1357
|
+
input: {
|
|
1358
|
+
/** @description What happens in the clip, up to 2500 characters; leave it out when multi_prompt gives the shots instead. */
|
|
1359
|
+
prompt?: string;
|
|
1360
|
+
/** @description Shots cut end to end in one clip, in order, which together run 3 to 15 seconds; in place of prompt and duration, and none when left out. */
|
|
1361
|
+
multi_prompt?: {
|
|
1362
|
+
/** @description What happens in this shot. */
|
|
1363
|
+
prompt: string;
|
|
1364
|
+
/**
|
|
1365
|
+
* @description Length of this shot in whole seconds from 1 to 15; 5 when left out.
|
|
1366
|
+
* @default 5
|
|
1367
|
+
*/
|
|
1368
|
+
duration?: number;
|
|
1369
|
+
}[];
|
|
1370
|
+
/** @description The image the clip opens on, as an asset id (asset_…) or an https URL. */
|
|
1371
|
+
start_image: string;
|
|
1372
|
+
/** @description The image the clip ends on, as an asset id (asset_…) or an https URL; none when left out, so the model picks the ending. */
|
|
1373
|
+
end_image?: string;
|
|
1374
|
+
/** @description What the clip must not show, such as "lens flare, morphing faces"; Kling's own "blur, distort, and low quality" when left out. */
|
|
1375
|
+
negative_prompt?: string;
|
|
1376
|
+
/**
|
|
1377
|
+
* @description How closely the clip keeps to the prompt, from 0 to 1; 0.5 when left out.
|
|
1378
|
+
* @default 0.5
|
|
1379
|
+
*/
|
|
1380
|
+
cfg_scale?: number;
|
|
1381
|
+
/** @description Length in whole seconds from 3 to 15; 5 when left out, and left out with multi_prompt, whose shot lengths add up to the clip's. */
|
|
1382
|
+
duration?: number;
|
|
1383
|
+
/**
|
|
1384
|
+
* @description Whether the clip gets sound and speech made for it; true when left out.
|
|
1385
|
+
* @default true
|
|
1386
|
+
*/
|
|
1387
|
+
generate_audio?: boolean;
|
|
1388
|
+
/**
|
|
1389
|
+
* @description customize cuts multi_prompt shots as written, intelligent lets Kling decide the shot structure; customize when left out.
|
|
1390
|
+
* @default customize
|
|
1391
|
+
* @enum {string}
|
|
1392
|
+
*/
|
|
1393
|
+
shot_type?: "customize" | "intelligent";
|
|
1394
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1395
|
+
name?: string;
|
|
1396
|
+
};
|
|
1397
|
+
/**
|
|
1398
|
+
* Format: uri
|
|
1399
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1400
|
+
*/
|
|
1401
|
+
webhook_url?: string;
|
|
1402
|
+
};
|
|
1403
|
+
/**
|
|
1404
|
+
* kling-o3-pro/reference-to-video
|
|
1405
|
+
* @description Keeps a person, product or character true to up to 4 reference images.
|
|
1406
|
+
*/
|
|
1407
|
+
Create_kling_o3_pro_reference_to_video: {
|
|
1408
|
+
/**
|
|
1409
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1410
|
+
* @enum {string}
|
|
1411
|
+
*/
|
|
1412
|
+
model: "kling-o3-pro/reference-to-video";
|
|
1413
|
+
input: {
|
|
1414
|
+
/** @description What happens in the clip, up to 2500 characters; leave it out when multi_prompt gives the shots instead. */
|
|
1415
|
+
prompt?: string;
|
|
1416
|
+
/** @description Shots cut end to end in one clip, in order, which together run 3 to 15 seconds; in place of prompt and duration, and none when left out. */
|
|
1417
|
+
multi_prompt?: {
|
|
1418
|
+
/** @description What happens in this shot. */
|
|
1419
|
+
prompt: string;
|
|
1420
|
+
/**
|
|
1421
|
+
* @description Length of this shot in whole seconds from 1 to 15; 5 when left out.
|
|
1422
|
+
* @default 5
|
|
1423
|
+
*/
|
|
1424
|
+
duration?: number;
|
|
1425
|
+
}[];
|
|
1426
|
+
/** @description The image the clip opens on, as an asset id (asset_…) or an https URL; none when left out, so the model composes the opening from the prompt and the references. */
|
|
1427
|
+
start_image?: string;
|
|
1428
|
+
/** @description The image the clip ends on, as an asset id (asset_…) or an https URL; none when left out, so the model picks the ending. */
|
|
1429
|
+
end_image?: string;
|
|
1430
|
+
/**
|
|
1431
|
+
* @description Up to 4 images whose subject or look the clip keeps, each an asset id (asset_…) or an https URL, cited in the prompt as @image1, @image2 in this order; none when left out.
|
|
1432
|
+
* @default []
|
|
1433
|
+
*/
|
|
1434
|
+
images?: string[];
|
|
1435
|
+
/**
|
|
1436
|
+
* @description Characters or objects held to one look across the clip, cited in the prompt as @element1, @element2 in this order; images and elements take 4 together at most, and none when left out.
|
|
1437
|
+
* @default []
|
|
1438
|
+
*/
|
|
1439
|
+
elements?: ({
|
|
1440
|
+
/** @description A front view of the character or object, as an asset id (asset_…) or an https URL. */
|
|
1441
|
+
frontal_image: string;
|
|
1442
|
+
/** @description 1 to 3 more views of the same character or object, from other angles, each an asset id (asset_…) or an https URL. */
|
|
1443
|
+
reference_images: string[];
|
|
1444
|
+
} | {
|
|
1445
|
+
/** @description A clip of the character or object of at least 3 seconds, as an asset id (asset_…) or an https URL, in place of images; past 10 seconds it is cut to its opening 10, and outside 720 to 2160 px a side it is resized to fit. */
|
|
1446
|
+
video: string;
|
|
1447
|
+
})[];
|
|
1448
|
+
/**
|
|
1449
|
+
* @description Shape of the clip as width:height; 16:9 when left out.
|
|
1450
|
+
* @default 16:9
|
|
1451
|
+
* @enum {string}
|
|
1452
|
+
*/
|
|
1453
|
+
aspect_ratio?: "16:9" | "9:16" | "1:1";
|
|
1454
|
+
/** @description Length in whole seconds from 3 to 15; 5 when left out, and left out with multi_prompt, whose shot lengths add up to the clip's. */
|
|
1455
|
+
duration?: number;
|
|
1456
|
+
/**
|
|
1457
|
+
* @description Whether the clip gets sound and speech made for it; true when left out.
|
|
1458
|
+
* @default true
|
|
1459
|
+
*/
|
|
1460
|
+
generate_audio?: boolean;
|
|
1461
|
+
/**
|
|
1462
|
+
* @description customize cuts multi_prompt shots as written, intelligent lets Kling decide the shot structure; customize when left out.
|
|
1463
|
+
* @default customize
|
|
1464
|
+
* @enum {string}
|
|
1465
|
+
*/
|
|
1466
|
+
shot_type?: "customize" | "intelligent";
|
|
1467
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1468
|
+
name?: string;
|
|
1469
|
+
};
|
|
1470
|
+
/**
|
|
1471
|
+
* Format: uri
|
|
1472
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1473
|
+
*/
|
|
1474
|
+
webhook_url?: string;
|
|
1475
|
+
};
|
|
1476
|
+
/**
|
|
1477
|
+
* gemini-omni-flash/text-to-video
|
|
1478
|
+
* @description A clip from a prompt, from a 360p draft to a 4K take.
|
|
1479
|
+
*/
|
|
1480
|
+
Create_gemini_omni_flash_text_to_video: {
|
|
1481
|
+
/**
|
|
1482
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1483
|
+
* @enum {string}
|
|
1484
|
+
*/
|
|
1485
|
+
model: "gemini-omni-flash/text-to-video";
|
|
1486
|
+
input: {
|
|
1487
|
+
/** @description What happens in the clip, with any spoken line in double quotes. */
|
|
1488
|
+
prompt: string;
|
|
1489
|
+
/**
|
|
1490
|
+
* @description Shape of the clip, portrait 9:16 or landscape 16:9; 9:16 when left out.
|
|
1491
|
+
* @default 9:16
|
|
1492
|
+
* @enum {string}
|
|
1493
|
+
*/
|
|
1494
|
+
aspect_ratio?: "9:16" | "16:9";
|
|
1495
|
+
/**
|
|
1496
|
+
* @description Length in whole seconds from 3 to 10; 8 when left out.
|
|
1497
|
+
* @default 8
|
|
1498
|
+
*/
|
|
1499
|
+
duration?: number;
|
|
1500
|
+
/**
|
|
1501
|
+
* @description Output resolution, 360p for a cheap draft up to 4k, and the price per second rises with it; 720p when left out.
|
|
1502
|
+
* @default 720p
|
|
1503
|
+
* @enum {string}
|
|
1504
|
+
*/
|
|
1505
|
+
resolution?: "360p" | "720p" | "1080p" | "4k";
|
|
1506
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1507
|
+
name?: string;
|
|
1508
|
+
};
|
|
1509
|
+
/**
|
|
1510
|
+
* Format: uri
|
|
1511
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1512
|
+
*/
|
|
1513
|
+
webhook_url?: string;
|
|
1514
|
+
};
|
|
1515
|
+
/**
|
|
1516
|
+
* gemini-omni-flash/image-to-video
|
|
1517
|
+
* @description A clip that opens on your image, from 360p to 4K.
|
|
1518
|
+
*/
|
|
1519
|
+
Create_gemini_omni_flash_image_to_video: {
|
|
1520
|
+
/**
|
|
1521
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1522
|
+
* @enum {string}
|
|
1523
|
+
*/
|
|
1524
|
+
model: "gemini-omni-flash/image-to-video";
|
|
1525
|
+
input: {
|
|
1526
|
+
/** @description How the image comes to life, up to the end image when one is given, with any spoken line in double quotes. */
|
|
1527
|
+
prompt: string;
|
|
1528
|
+
/** @description The image the clip opens on, as an asset id (asset_…) or an https URL. */
|
|
1529
|
+
start_image: string;
|
|
1530
|
+
/** @description The image the clip ends on, as an asset id (asset_…) or an https URL; none when left out, so the model picks the ending. */
|
|
1531
|
+
end_image?: string;
|
|
1532
|
+
/**
|
|
1533
|
+
* @description Shape of the clip, portrait 9:16 or landscape 16:9; 9:16 when left out.
|
|
1534
|
+
* @default 9:16
|
|
1535
|
+
* @enum {string}
|
|
1536
|
+
*/
|
|
1537
|
+
aspect_ratio?: "9:16" | "16:9";
|
|
1538
|
+
/**
|
|
1539
|
+
* @description Length in whole seconds from 3 to 10; 8 when left out.
|
|
1540
|
+
* @default 8
|
|
1541
|
+
*/
|
|
1542
|
+
duration?: number;
|
|
1543
|
+
/**
|
|
1544
|
+
* @description Output resolution, 360p for a cheap draft up to 4k, and the price per second rises with it; 720p when left out.
|
|
1545
|
+
* @default 720p
|
|
1546
|
+
* @enum {string}
|
|
1547
|
+
*/
|
|
1548
|
+
resolution?: "360p" | "720p" | "1080p" | "4k";
|
|
1549
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1550
|
+
name?: string;
|
|
1551
|
+
};
|
|
1552
|
+
/**
|
|
1553
|
+
* Format: uri
|
|
1554
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1555
|
+
*/
|
|
1556
|
+
webhook_url?: string;
|
|
1557
|
+
};
|
|
1558
|
+
/**
|
|
1559
|
+
* gemini-omni-flash/reference-to-video
|
|
1560
|
+
* @description A clip guided by up to 10 images or 3 short clips.
|
|
1561
|
+
*/
|
|
1562
|
+
Create_gemini_omni_flash_reference_to_video: {
|
|
1563
|
+
/**
|
|
1564
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1565
|
+
* @enum {string}
|
|
1566
|
+
*/
|
|
1567
|
+
model: "gemini-omni-flash/reference-to-video";
|
|
1568
|
+
input: {
|
|
1569
|
+
/** @description What happens in the clip, citing each image or video by its place in its list as @image1 or @video1, with any spoken line in double quotes. */
|
|
1570
|
+
prompt: string;
|
|
1571
|
+
/**
|
|
1572
|
+
* @description Up to 10 images of the faces, products or places to keep, each an asset id (asset_…) or an https URL; none when left out.
|
|
1573
|
+
* @default []
|
|
1574
|
+
*/
|
|
1575
|
+
images?: string[];
|
|
1576
|
+
/**
|
|
1577
|
+
* @description Up to 3 videos for a likeness or a motion to copy, whose sound is ignored, each an asset id (asset_…) or an https URL and cut to its opening 3 seconds when longer; none when left out.
|
|
1578
|
+
* @default []
|
|
1579
|
+
*/
|
|
1580
|
+
videos?: string[];
|
|
1581
|
+
/**
|
|
1582
|
+
* @description Shape of the clip, portrait 9:16 or landscape 16:9; 9:16 when left out.
|
|
1583
|
+
* @default 9:16
|
|
1584
|
+
* @enum {string}
|
|
1585
|
+
*/
|
|
1586
|
+
aspect_ratio?: "9:16" | "16:9";
|
|
1587
|
+
/**
|
|
1588
|
+
* @description Length in whole seconds from 3 to 10; 8 when left out.
|
|
1589
|
+
* @default 8
|
|
1590
|
+
*/
|
|
1591
|
+
duration?: number;
|
|
1592
|
+
/**
|
|
1593
|
+
* @description Output resolution, 360p for a cheap draft up to 4k, and the price per second rises with it; 720p when left out.
|
|
1594
|
+
* @default 720p
|
|
1595
|
+
* @enum {string}
|
|
1596
|
+
*/
|
|
1597
|
+
resolution?: "360p" | "720p" | "1080p" | "4k";
|
|
1598
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1599
|
+
name?: string;
|
|
1600
|
+
};
|
|
1601
|
+
/**
|
|
1602
|
+
* Format: uri
|
|
1603
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1604
|
+
*/
|
|
1605
|
+
webhook_url?: string;
|
|
1606
|
+
};
|
|
1607
|
+
/**
|
|
1608
|
+
* gemini-omni-flash/edit
|
|
1609
|
+
* @description Change one thing in a clip of 10 seconds or less, such as the background or the weather.
|
|
1610
|
+
*/
|
|
1611
|
+
Create_gemini_omni_flash_edit: {
|
|
1612
|
+
/**
|
|
1613
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1614
|
+
* @enum {string}
|
|
1615
|
+
*/
|
|
1616
|
+
model: "gemini-omni-flash/edit";
|
|
1617
|
+
input: {
|
|
1618
|
+
/** @description One simple change to make, ending with "Keep everything else the same." to hold the rest of the scene. */
|
|
1619
|
+
prompt: string;
|
|
1620
|
+
/** @description The video to edit, 10 seconds or shorter, as an asset id (asset_…) or an https URL. */
|
|
1621
|
+
video: string;
|
|
1622
|
+
/**
|
|
1623
|
+
* @description Output resolution; the source video's own when left out, so set it only to step the clip up or down.
|
|
1624
|
+
* @enum {string}
|
|
1625
|
+
*/
|
|
1626
|
+
resolution?: "360p" | "720p" | "1080p" | "4k";
|
|
1627
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1628
|
+
name?: string;
|
|
1629
|
+
};
|
|
1630
|
+
/**
|
|
1631
|
+
* Format: uri
|
|
1632
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1633
|
+
*/
|
|
1634
|
+
webhook_url?: string;
|
|
1635
|
+
};
|
|
1636
|
+
/**
|
|
1637
|
+
* sync-3/lipsync
|
|
1638
|
+
* @description Re-sync the speaker’s lips to new audio: dubs, new lines and fixed takes.
|
|
1639
|
+
*/
|
|
1640
|
+
Create_sync_3_lipsync: {
|
|
1641
|
+
/**
|
|
1642
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1643
|
+
* @enum {string}
|
|
1644
|
+
*/
|
|
1645
|
+
model: "sync-3/lipsync";
|
|
1646
|
+
input: {
|
|
1647
|
+
/** @description The video to re-sync, as an asset id (asset_…) or an https URL, showing one clear, front-facing speaker. */
|
|
1648
|
+
video: string;
|
|
1649
|
+
/** @description The speech the lips follow, as an asset id (asset_…) or an https URL: a new voiceover, a dub, or the clip's own track saved as audio. */
|
|
1650
|
+
audio: string;
|
|
1651
|
+
/**
|
|
1652
|
+
* @description What happens when the audio and the video differ in length: cut_off ends the clip at the shorter one, loop and bounce replay the video, from the start or forward then back, until the audio ends, silence keeps the longer one with silence after the audio, and remap retimes the video to the audio; cut_off when left out.
|
|
1653
|
+
* @default cut_off
|
|
1654
|
+
* @enum {string}
|
|
1655
|
+
*/
|
|
1656
|
+
sync_mode?: "cut_off" | "loop" | "bounce" | "silence" | "remap";
|
|
1657
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1658
|
+
name?: string;
|
|
1659
|
+
};
|
|
1660
|
+
/**
|
|
1661
|
+
* Format: uri
|
|
1662
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1663
|
+
*/
|
|
1664
|
+
webhook_url?: string;
|
|
1665
|
+
};
|
|
1666
|
+
/**
|
|
1667
|
+
* elevenlabs/voiceover
|
|
1668
|
+
* @description Speak a script aloud in any library voice.
|
|
1669
|
+
*/
|
|
1670
|
+
Create_elevenlabs_voiceover: {
|
|
1671
|
+
/**
|
|
1672
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1673
|
+
* @enum {string}
|
|
1674
|
+
*/
|
|
1675
|
+
model: "elevenlabs/voiceover";
|
|
1676
|
+
input: {
|
|
1677
|
+
/** @description The script to read aloud, up to 5000 characters, written as it should sound: inline audio tags in square brackets direct the delivery, such as [whispering], [laughs], [excited], [pause] or [door slams], and a word in IPA between slashes, such as /ˈnaɪki/, fixes its pronunciation. */
|
|
1678
|
+
text: string;
|
|
1679
|
+
/**
|
|
1680
|
+
* @description The voice that reads the script: a premade voice name, or a voice id from GET /v1/voices; Jessica when left out.
|
|
1681
|
+
* @default Jessica
|
|
1682
|
+
*/
|
|
1683
|
+
voice?: string;
|
|
1684
|
+
/**
|
|
1685
|
+
* @description creative varies the delivery most and robust keeps it steadiest; natural when left out.
|
|
1686
|
+
* @default natural
|
|
1687
|
+
* @enum {string}
|
|
1688
|
+
*/
|
|
1689
|
+
stability?: "creative" | "natural" | "robust";
|
|
1690
|
+
/**
|
|
1691
|
+
* @description How closely the speech holds to the voice, from 0 to 1; high values can carry the quirks of its source recording, and 0.75 when left out.
|
|
1692
|
+
* @default 0.75
|
|
1693
|
+
*/
|
|
1694
|
+
similarity_boost?: number;
|
|
1695
|
+
/** @description The language to speak in, as a two-letter ISO 639-1 code such as en, pt or es; read from the script when left out. */
|
|
1696
|
+
language_code?: string;
|
|
1697
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1698
|
+
name?: string;
|
|
1699
|
+
};
|
|
1700
|
+
/**
|
|
1701
|
+
* Format: uri
|
|
1702
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1703
|
+
*/
|
|
1704
|
+
webhook_url?: string;
|
|
1705
|
+
};
|
|
1706
|
+
/**
|
|
1707
|
+
* elevenlabs/music
|
|
1708
|
+
* @description Background tracks, jingles and songs, with or without vocals.
|
|
1709
|
+
*/
|
|
1710
|
+
Create_elevenlabs_music: {
|
|
1711
|
+
/**
|
|
1712
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1713
|
+
* @enum {string}
|
|
1714
|
+
*/
|
|
1715
|
+
model: "elevenlabs/music";
|
|
1716
|
+
input: {
|
|
1717
|
+
/** @description The track: genre, mood, instruments, tempo, and any lyrics or vocal style, up to 4100 characters. */
|
|
1718
|
+
prompt: string;
|
|
1719
|
+
/**
|
|
1720
|
+
* @description Length in whole seconds from 3 to 600, or auto to let the model decide; auto when left out.
|
|
1721
|
+
* @default auto
|
|
1722
|
+
*/
|
|
1723
|
+
duration?: "auto" | number;
|
|
1724
|
+
/**
|
|
1725
|
+
* @description true guarantees a track with no vocals; false when left out.
|
|
1726
|
+
* @default false
|
|
1727
|
+
*/
|
|
1728
|
+
force_instrumental?: boolean;
|
|
1729
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1730
|
+
name?: string;
|
|
1731
|
+
};
|
|
1732
|
+
/**
|
|
1733
|
+
* Format: uri
|
|
1734
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1735
|
+
*/
|
|
1736
|
+
webhook_url?: string;
|
|
1737
|
+
};
|
|
1738
|
+
/**
|
|
1739
|
+
* elevenlabs/sound-effects
|
|
1740
|
+
* @description Impacts, ambiences, foley and interface sounds from a description.
|
|
1741
|
+
*/
|
|
1742
|
+
Create_elevenlabs_sound_effects: {
|
|
1743
|
+
/**
|
|
1744
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1745
|
+
* @enum {string}
|
|
1746
|
+
*/
|
|
1747
|
+
model: "elevenlabs/sound-effects";
|
|
1748
|
+
input: {
|
|
1749
|
+
/** @description The sound in plain words, such as "glass shattering on a tile floor", up to 450 characters. */
|
|
1750
|
+
prompt: string;
|
|
1751
|
+
/**
|
|
1752
|
+
* @description Length in seconds from 0.5 to 22, or auto to fit the sound; auto when left out.
|
|
1753
|
+
* @default auto
|
|
1754
|
+
*/
|
|
1755
|
+
duration?: "auto" | number;
|
|
1756
|
+
/**
|
|
1757
|
+
* @description How closely the sound follows the prompt, from 0 to 1; 0.3 when left out.
|
|
1758
|
+
* @default 0.3
|
|
1759
|
+
*/
|
|
1760
|
+
prompt_influence?: number;
|
|
1761
|
+
/**
|
|
1762
|
+
* @description Whether the sound loops seamlessly end to start; false when left out.
|
|
1763
|
+
* @default false
|
|
1764
|
+
*/
|
|
1765
|
+
loop?: boolean;
|
|
1766
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1767
|
+
name?: string;
|
|
1768
|
+
};
|
|
1769
|
+
/**
|
|
1770
|
+
* Format: uri
|
|
1771
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1772
|
+
*/
|
|
1773
|
+
webhook_url?: string;
|
|
1774
|
+
};
|
|
1775
|
+
/**
|
|
1776
|
+
* elevenlabs/voice-changer
|
|
1777
|
+
* @description Re-voice a recording into another voice, keeping its timing and emotion.
|
|
1778
|
+
*/
|
|
1779
|
+
Create_elevenlabs_voice_changer: {
|
|
1780
|
+
/**
|
|
1781
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1782
|
+
* @enum {string}
|
|
1783
|
+
*/
|
|
1784
|
+
model: "elevenlabs/voice-changer";
|
|
1785
|
+
input: {
|
|
1786
|
+
/** @description The recording to re-voice, as an asset id (asset_…) or an https URL, at most 5 minutes; clean single-speaker audio works best. */
|
|
1787
|
+
audio: string;
|
|
1788
|
+
/** @description The voice id the recording is re-voiced into, from GET /v1/voices. */
|
|
1789
|
+
voice: string;
|
|
1790
|
+
/**
|
|
1791
|
+
* @description Whether to strip background noise from the recording first; only for a noisy source, since it can hurt a clean one; false when left out.
|
|
1792
|
+
* @default false
|
|
1793
|
+
*/
|
|
1794
|
+
remove_background_noise?: boolean;
|
|
1795
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1796
|
+
name?: string;
|
|
1797
|
+
};
|
|
1798
|
+
/**
|
|
1799
|
+
* Format: uri
|
|
1800
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1801
|
+
*/
|
|
1802
|
+
webhook_url?: string;
|
|
1803
|
+
};
|
|
1804
|
+
/**
|
|
1805
|
+
* elevenlabs/voice-isolator
|
|
1806
|
+
* @description Pull the voice out of a recording, removing noise, music and ambience.
|
|
1807
|
+
*/
|
|
1808
|
+
Create_elevenlabs_voice_isolator: {
|
|
1809
|
+
/**
|
|
1810
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1811
|
+
* @enum {string}
|
|
1812
|
+
*/
|
|
1813
|
+
model: "elevenlabs/voice-isolator";
|
|
1814
|
+
input: {
|
|
1815
|
+
/** @description The audio to isolate the voice in, as an asset id (asset_…) or an https URL. */
|
|
1816
|
+
audio: string;
|
|
1817
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1818
|
+
name?: string;
|
|
1819
|
+
};
|
|
1820
|
+
/**
|
|
1821
|
+
* Format: uri
|
|
1822
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1823
|
+
*/
|
|
1824
|
+
webhook_url?: string;
|
|
1825
|
+
};
|
|
1826
|
+
/**
|
|
1827
|
+
* minimax/music
|
|
1828
|
+
* @description Songs sung from your lyrics, or instrumentals.
|
|
1829
|
+
*/
|
|
1830
|
+
Create_minimax_music: {
|
|
1831
|
+
/**
|
|
1832
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1833
|
+
* @enum {string}
|
|
1834
|
+
*/
|
|
1835
|
+
model: "minimax/music";
|
|
1836
|
+
input: {
|
|
1837
|
+
/** @description The style of the track: genre, mood, instruments, tempo and where it plays, from 10 to 2000 characters. */
|
|
1838
|
+
prompt: string;
|
|
1839
|
+
/** @description The words to sing, a line per line with tags such as [Verse], [Chorus] and [Bridge], up to 3500 characters, or auto to have MiniMax write them from the prompt; none when left out or empty, which makes an instrumental. */
|
|
1840
|
+
lyrics?: "auto" | string;
|
|
1841
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1842
|
+
name?: string;
|
|
1843
|
+
};
|
|
1844
|
+
/**
|
|
1845
|
+
* Format: uri
|
|
1846
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1847
|
+
*/
|
|
1848
|
+
webhook_url?: string;
|
|
1849
|
+
};
|
|
1850
|
+
/**
|
|
1851
|
+
* sonilo/music
|
|
1852
|
+
* @description Instrumental music to the exact second, trained only on licensed music and cleared for ads.
|
|
1853
|
+
*/
|
|
1854
|
+
Create_sonilo_music: {
|
|
1855
|
+
/**
|
|
1856
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1857
|
+
* @enum {string}
|
|
1858
|
+
*/
|
|
1859
|
+
model: "sonilo/music";
|
|
1860
|
+
input: {
|
|
1861
|
+
/** @description The track: genre, mood, instruments, tempo and where it plays. */
|
|
1862
|
+
prompt: string;
|
|
1863
|
+
/** @description Length in whole seconds from 1 to 600; the track runs exactly this long. */
|
|
1864
|
+
duration: number;
|
|
1865
|
+
/** @description What the output is called in your library; made from the prompt when left out. */
|
|
1866
|
+
name?: string;
|
|
1867
|
+
};
|
|
1868
|
+
/**
|
|
1869
|
+
* Format: uri
|
|
1870
|
+
* @description An https URL to POST a signed generation event to when it finishes
|
|
1871
|
+
*/
|
|
1872
|
+
webhook_url?: string;
|
|
1873
|
+
};
|
|
1874
|
+
GenerationEvent: {
|
|
1875
|
+
/** @description The same for every delivery of one event, so a retry can be told apart */
|
|
1876
|
+
id: string;
|
|
1877
|
+
/** @enum {string} */
|
|
1878
|
+
object: "event";
|
|
1879
|
+
/** @enum {string} */
|
|
1880
|
+
type: "generation.succeeded" | "generation.failed" | "generation.canceled";
|
|
1881
|
+
created_at: string;
|
|
1882
|
+
data: components["schemas"]["Generation"];
|
|
1883
|
+
};
|
|
1884
|
+
Generation: {
|
|
1885
|
+
/** @example gen_6c1f0e9a7b2d4c55a1e3f08b9d2c4e71 */
|
|
1886
|
+
id: string;
|
|
1887
|
+
/** @enum {string} */
|
|
1888
|
+
object: "generation";
|
|
1889
|
+
model: string;
|
|
1890
|
+
/**
|
|
1891
|
+
* @description queued, then running, then succeeded, failed or canceled
|
|
1892
|
+
* @enum {string}
|
|
1893
|
+
*/
|
|
1894
|
+
status: "queued" | "running" | "succeeded" | "failed" | "canceled";
|
|
1895
|
+
/** @description What it made, saved to your library; the main file comes first */
|
|
1896
|
+
output: {
|
|
1897
|
+
id: string;
|
|
1898
|
+
/** @enum {string} */
|
|
1899
|
+
object: "asset";
|
|
1900
|
+
/** @enum {string} */
|
|
1901
|
+
type: "image" | "video" | "audio";
|
|
1902
|
+
name: string | null;
|
|
1903
|
+
url: string;
|
|
1904
|
+
content_type: string;
|
|
1905
|
+
width?: number;
|
|
1906
|
+
height?: number;
|
|
1907
|
+
duration?: number;
|
|
1908
|
+
/** @enum {string} */
|
|
1909
|
+
role: "main" | "last_frame" | "layer";
|
|
1910
|
+
layer?: {
|
|
1911
|
+
name: string | null;
|
|
1912
|
+
description: string | null;
|
|
1913
|
+
x: number;
|
|
1914
|
+
y: number;
|
|
1915
|
+
width: number;
|
|
1916
|
+
height: number;
|
|
1917
|
+
z_index: number;
|
|
1918
|
+
};
|
|
1919
|
+
}[];
|
|
1920
|
+
/** @description Why it failed; failed generations are free */
|
|
1921
|
+
error: {
|
|
1922
|
+
/** @enum {string} */
|
|
1923
|
+
code: "invalid_input" | "insufficient_credits" | "generation_failed";
|
|
1924
|
+
message: string;
|
|
1925
|
+
} | null;
|
|
1926
|
+
/** @description What it was charged, in credits of $0.05, once it finished */
|
|
1927
|
+
credits: number | null;
|
|
1928
|
+
created_at: string;
|
|
1929
|
+
started_at: string | null;
|
|
1930
|
+
completed_at: string | null;
|
|
1931
|
+
};
|
|
1932
|
+
ModelList: {
|
|
1933
|
+
/** @enum {string} */
|
|
1934
|
+
object: "list";
|
|
1935
|
+
data: components["schemas"]["Model"][];
|
|
1936
|
+
has_more: boolean;
|
|
1937
|
+
/** @description Pass as `cursor` for the next page */
|
|
1938
|
+
next_cursor: string | null;
|
|
1939
|
+
};
|
|
1940
|
+
Model: {
|
|
1941
|
+
id: string;
|
|
1942
|
+
/** @enum {string} */
|
|
1943
|
+
object: "model";
|
|
1944
|
+
name: string;
|
|
1945
|
+
/** @enum {string} */
|
|
1946
|
+
type: "image" | "video" | "audio";
|
|
1947
|
+
task: string;
|
|
1948
|
+
summary: string;
|
|
1949
|
+
/** @description What a generation costs per unit, in USD. A generation is charged in credits of $0.05, rounded up, and only when it succeeds. */
|
|
1950
|
+
pricing: {
|
|
1951
|
+
rates: {
|
|
1952
|
+
/** @description What one rate is for: an image, a second, a minute, a character, a request or a token */
|
|
1953
|
+
unit: string;
|
|
1954
|
+
usd: number;
|
|
1955
|
+
/** @description The inputs, by their names in input, that this rate applies to; a media input is true when given and false when not; empty when it applies to all. A rate charged on the input itself carries `input`: the tokens of text or image, or true for an input file it charges for */
|
|
1956
|
+
when: {
|
|
1957
|
+
[key: string]: unknown;
|
|
1958
|
+
};
|
|
1959
|
+
/** @description Whether a generation that leaves these inputs at their defaults pays this rate */
|
|
1960
|
+
default: boolean;
|
|
1961
|
+
}[];
|
|
1962
|
+
};
|
|
1963
|
+
/** @description The JSON Schema of `input` */
|
|
1964
|
+
input_schema: {
|
|
1965
|
+
[key: string]: unknown;
|
|
1966
|
+
};
|
|
1967
|
+
};
|
|
1968
|
+
Error: {
|
|
1969
|
+
error: {
|
|
1970
|
+
/** @enum {string} */
|
|
1971
|
+
type: "invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "billing_error" | "rate_limit_error" | "api_error";
|
|
1972
|
+
/** @description A stable code to branch on, such as invalid_input or insufficient_credits */
|
|
1973
|
+
code: string;
|
|
1974
|
+
/** @description What went wrong and how to fix it */
|
|
1975
|
+
message: string;
|
|
1976
|
+
/** @description The part of the request at fault, such as input.prompt */
|
|
1977
|
+
param?: string;
|
|
1978
|
+
request_id: string;
|
|
1979
|
+
};
|
|
1980
|
+
};
|
|
1981
|
+
GenerationList: {
|
|
1982
|
+
/** @enum {string} */
|
|
1983
|
+
object: "list";
|
|
1984
|
+
data: components["schemas"]["Generation"][];
|
|
1985
|
+
has_more: boolean;
|
|
1986
|
+
/** @description Pass as `cursor` for the next page */
|
|
1987
|
+
next_cursor: string | null;
|
|
1988
|
+
};
|
|
1989
|
+
LibraryAssetList: {
|
|
1990
|
+
/** @enum {string} */
|
|
1991
|
+
object: "list";
|
|
1992
|
+
data: components["schemas"]["LibraryAsset"][];
|
|
1993
|
+
has_more: boolean;
|
|
1994
|
+
/** @description Pass as `cursor` for the next page */
|
|
1995
|
+
next_cursor: string | null;
|
|
1996
|
+
};
|
|
1997
|
+
LibraryAsset: {
|
|
1998
|
+
id: string;
|
|
1999
|
+
/** @enum {string} */
|
|
2000
|
+
object: "asset";
|
|
2001
|
+
/** @enum {string} */
|
|
2002
|
+
type: "image" | "video" | "audio" | "file";
|
|
2003
|
+
name: string | null;
|
|
2004
|
+
url: string | null;
|
|
2005
|
+
content_type: string | null;
|
|
2006
|
+
width?: number;
|
|
2007
|
+
height?: number;
|
|
2008
|
+
duration?: number;
|
|
2009
|
+
/** @description What the image shows, when it has been described */
|
|
2010
|
+
caption: string | null;
|
|
2011
|
+
liked: boolean;
|
|
2012
|
+
/** @description The offer the file is a photo of, offer_… */
|
|
2013
|
+
offer: string | null;
|
|
2014
|
+
created_at: string;
|
|
2015
|
+
};
|
|
2016
|
+
Asset: {
|
|
2017
|
+
id: string;
|
|
2018
|
+
/** @enum {string} */
|
|
2019
|
+
object: "asset";
|
|
2020
|
+
/** @enum {string} */
|
|
2021
|
+
type: "image" | "video" | "audio" | "file";
|
|
2022
|
+
name: string | null;
|
|
2023
|
+
url: string | null;
|
|
2024
|
+
content_type: string | null;
|
|
2025
|
+
width?: number;
|
|
2026
|
+
height?: number;
|
|
2027
|
+
duration?: number;
|
|
2028
|
+
};
|
|
2029
|
+
Brand: {
|
|
2030
|
+
/** @enum {string} */
|
|
2031
|
+
object: "brand";
|
|
2032
|
+
/** @description Send it as `Sandstorm-Brand` to work on this brand with a key made on another */
|
|
2033
|
+
id: string;
|
|
2034
|
+
name: string;
|
|
2035
|
+
summary: string | null;
|
|
2036
|
+
/** @description How the brand sounds, by surface */
|
|
2037
|
+
voice: string | null;
|
|
2038
|
+
audience: string | null;
|
|
2039
|
+
positioning: string | null;
|
|
2040
|
+
/** @description Taboos and preferences found in what the brand published */
|
|
2041
|
+
preferences: string | null;
|
|
2042
|
+
/** @description Rules people at the brand stated, newest first. They outrank everything above. */
|
|
2043
|
+
rules: {
|
|
2044
|
+
/** @enum {string} */
|
|
2045
|
+
kind: "preference" | "taboo";
|
|
2046
|
+
text: string;
|
|
2047
|
+
}[];
|
|
2048
|
+
colors: {
|
|
2049
|
+
hex: string;
|
|
2050
|
+
role: string | null;
|
|
2051
|
+
name: string | null;
|
|
2052
|
+
}[];
|
|
2053
|
+
typography: {
|
|
2054
|
+
/** @description heading1 to heading4, body, cta, link or overline */
|
|
2055
|
+
role: string;
|
|
2056
|
+
font_family: string | null;
|
|
2057
|
+
font_size: string | null;
|
|
2058
|
+
font_weight: string | null;
|
|
2059
|
+
letter_spacing: string | null;
|
|
2060
|
+
text_transform: string | null;
|
|
2061
|
+
}[];
|
|
2062
|
+
/** @description The site's primary call-to-action button */
|
|
2063
|
+
button: {
|
|
2064
|
+
text: string;
|
|
2065
|
+
color: string | null;
|
|
2066
|
+
background_color: string | null;
|
|
2067
|
+
border_radius: string | null;
|
|
2068
|
+
font_family: string | null;
|
|
2069
|
+
font_size: string | null;
|
|
2070
|
+
font_weight: string | null;
|
|
2071
|
+
} | null;
|
|
2072
|
+
fonts: {
|
|
2073
|
+
family: string;
|
|
2074
|
+
headings: boolean;
|
|
2075
|
+
body: boolean;
|
|
2076
|
+
files: {
|
|
2077
|
+
weight: string;
|
|
2078
|
+
style: string;
|
|
2079
|
+
url: string;
|
|
2080
|
+
}[];
|
|
2081
|
+
}[];
|
|
2082
|
+
logos: {
|
|
2083
|
+
/** @description An asset id, usable as a media input */
|
|
2084
|
+
id: string;
|
|
2085
|
+
/**
|
|
2086
|
+
* @description icon for a small mark, light for dark backgrounds, dark for light ones
|
|
2087
|
+
* @enum {string}
|
|
2088
|
+
*/
|
|
2089
|
+
variant: "icon" | "light" | "dark";
|
|
2090
|
+
format: string | null;
|
|
2091
|
+
width: number | null;
|
|
2092
|
+
height: number | null;
|
|
2093
|
+
url: string | null;
|
|
2094
|
+
}[];
|
|
2095
|
+
};
|
|
2096
|
+
OfferList: {
|
|
2097
|
+
/** @enum {string} */
|
|
2098
|
+
object: "list";
|
|
2099
|
+
data: components["schemas"]["OfferSummary"][];
|
|
2100
|
+
has_more: boolean;
|
|
2101
|
+
/** @description Pass as `cursor` for the next page */
|
|
2102
|
+
next_cursor: string | null;
|
|
2103
|
+
};
|
|
2104
|
+
OfferSummary: {
|
|
2105
|
+
id: string;
|
|
2106
|
+
/** @enum {string} */
|
|
2107
|
+
object: "offer";
|
|
2108
|
+
name: string;
|
|
2109
|
+
/** @description product, service, bundle */
|
|
2110
|
+
kind: string;
|
|
2111
|
+
/** @description hero, evergreen, seasonal */
|
|
2112
|
+
priority: string;
|
|
2113
|
+
summary: string;
|
|
2114
|
+
photo_count: number;
|
|
2115
|
+
variant_count: number;
|
|
2116
|
+
};
|
|
2117
|
+
Offer: {
|
|
2118
|
+
id: string;
|
|
2119
|
+
/** @enum {string} */
|
|
2120
|
+
object: "offer";
|
|
2121
|
+
name: string;
|
|
2122
|
+
/** @description product, service, bundle */
|
|
2123
|
+
kind: string;
|
|
2124
|
+
/** @description hero, evergreen, seasonal */
|
|
2125
|
+
priority: string;
|
|
2126
|
+
photo_count: number;
|
|
2127
|
+
description: string | null;
|
|
2128
|
+
/** @description Notes on how to sell it */
|
|
2129
|
+
context: string | null;
|
|
2130
|
+
variants: {
|
|
2131
|
+
id: string;
|
|
2132
|
+
name: string;
|
|
2133
|
+
sku: string | null;
|
|
2134
|
+
price: string | null;
|
|
2135
|
+
compare_at_price: string | null;
|
|
2136
|
+
sizes: string[];
|
|
2137
|
+
photo_count: number;
|
|
2138
|
+
photos: {
|
|
2139
|
+
/** @description An asset id, usable as a media input */
|
|
2140
|
+
id: string;
|
|
2141
|
+
url: string | null;
|
|
2142
|
+
width: number | null;
|
|
2143
|
+
height: number | null;
|
|
2144
|
+
orientation: string | null;
|
|
2145
|
+
shot_type: string | null;
|
|
2146
|
+
caption: string | null;
|
|
2147
|
+
liked: boolean;
|
|
2148
|
+
}[];
|
|
2149
|
+
}[];
|
|
2150
|
+
/** @description Photos of the offer that belong to no one variant */
|
|
2151
|
+
photos: {
|
|
2152
|
+
/** @description An asset id, usable as a media input */
|
|
2153
|
+
id: string;
|
|
2154
|
+
url: string | null;
|
|
2155
|
+
width: number | null;
|
|
2156
|
+
height: number | null;
|
|
2157
|
+
orientation: string | null;
|
|
2158
|
+
shot_type: string | null;
|
|
2159
|
+
caption: string | null;
|
|
2160
|
+
liked: boolean;
|
|
2161
|
+
}[];
|
|
2162
|
+
};
|
|
2163
|
+
CharacterList: {
|
|
2164
|
+
/** @enum {string} */
|
|
2165
|
+
object: "list";
|
|
2166
|
+
data: components["schemas"]["Character"][];
|
|
2167
|
+
has_more: boolean;
|
|
2168
|
+
/** @description Pass as `cursor` for the next page */
|
|
2169
|
+
next_cursor: string | null;
|
|
2170
|
+
};
|
|
2171
|
+
Character: {
|
|
2172
|
+
id: string;
|
|
2173
|
+
/** @enum {string} */
|
|
2174
|
+
object: "character";
|
|
2175
|
+
name: string;
|
|
2176
|
+
/** @description subject, product, place, voice, style */
|
|
2177
|
+
kind: string;
|
|
2178
|
+
description: string | null;
|
|
2179
|
+
usage: string | null;
|
|
2180
|
+
/** @description What every image of it has to keep, such as Face or Wardrobe */
|
|
2181
|
+
must_match: string[];
|
|
2182
|
+
items: {
|
|
2183
|
+
/** @description An asset id, usable as a media input */
|
|
2184
|
+
asset: string;
|
|
2185
|
+
/** @enum {string} */
|
|
2186
|
+
type: "image" | "video" | "audio";
|
|
2187
|
+
/** @description reference, first_frame, last_frame */
|
|
2188
|
+
role: string;
|
|
2189
|
+
angle: string | null;
|
|
2190
|
+
usage: string | null;
|
|
2191
|
+
url: string | null;
|
|
2192
|
+
}[];
|
|
2193
|
+
};
|
|
2194
|
+
VoiceList: {
|
|
2195
|
+
/** @enum {string} */
|
|
2196
|
+
object: "list";
|
|
2197
|
+
data: components["schemas"]["Voice"][];
|
|
2198
|
+
has_more: boolean;
|
|
2199
|
+
/** @description Pass as `cursor` for the next page */
|
|
2200
|
+
next_cursor: string | null;
|
|
2201
|
+
};
|
|
2202
|
+
Voice: {
|
|
2203
|
+
/** @description Pass as `voice` to a voiceover or voice change */
|
|
2204
|
+
id: string;
|
|
2205
|
+
/** @enum {string} */
|
|
2206
|
+
object: "voice";
|
|
2207
|
+
name: string;
|
|
2208
|
+
gender: string;
|
|
2209
|
+
age: string;
|
|
2210
|
+
accent: string;
|
|
2211
|
+
descriptive: string;
|
|
2212
|
+
use_case: string;
|
|
2213
|
+
description: string | null;
|
|
2214
|
+
/** @description A public sample to play */
|
|
2215
|
+
preview_url: string | null;
|
|
2216
|
+
};
|
|
2217
|
+
AdvertiserList: {
|
|
2218
|
+
/** @enum {string} */
|
|
2219
|
+
object: "list";
|
|
2220
|
+
data: components["schemas"]["Advertiser"][];
|
|
2221
|
+
has_more: boolean;
|
|
2222
|
+
/** @description Pass as `cursor` for the next page */
|
|
2223
|
+
next_cursor: string | null;
|
|
2224
|
+
};
|
|
2225
|
+
Advertiser: {
|
|
2226
|
+
id: string;
|
|
2227
|
+
/** @enum {string} */
|
|
2228
|
+
object: "advertiser";
|
|
2229
|
+
name: string | null;
|
|
2230
|
+
ads: number;
|
|
2231
|
+
active_ads: number;
|
|
2232
|
+
/** @description Whether your organization follows it */
|
|
2233
|
+
followed: boolean;
|
|
2234
|
+
/** @enum {string} */
|
|
2235
|
+
sync: "synced" | "syncing" | "failed" | "never";
|
|
2236
|
+
synced_at: string | null;
|
|
2237
|
+
};
|
|
2238
|
+
AdList: {
|
|
2239
|
+
/** @enum {string} */
|
|
2240
|
+
object: "list";
|
|
2241
|
+
data: components["schemas"]["AdSummary"][];
|
|
2242
|
+
has_more: boolean;
|
|
2243
|
+
/** @description Pass as `cursor` for the next page */
|
|
2244
|
+
next_cursor: string | null;
|
|
2245
|
+
};
|
|
2246
|
+
AdSummary: {
|
|
2247
|
+
id: string;
|
|
2248
|
+
/** @enum {string} */
|
|
2249
|
+
object: "ad";
|
|
2250
|
+
advertiser: string | null;
|
|
2251
|
+
advertiser_name: string | null;
|
|
2252
|
+
platform: string | null;
|
|
2253
|
+
format: string | null;
|
|
2254
|
+
status: string | null;
|
|
2255
|
+
title: string | null;
|
|
2256
|
+
body: string | null;
|
|
2257
|
+
cta_text: string | null;
|
|
2258
|
+
active_days: number | null;
|
|
2259
|
+
started_at: string | null;
|
|
2260
|
+
ad_library_url: string | null;
|
|
2261
|
+
};
|
|
2262
|
+
Ad: {
|
|
2263
|
+
id: string;
|
|
2264
|
+
/** @enum {string} */
|
|
2265
|
+
object: "ad";
|
|
2266
|
+
advertiser: string | null;
|
|
2267
|
+
advertiser_name: string | null;
|
|
2268
|
+
platform: string | null;
|
|
2269
|
+
format: string | null;
|
|
2270
|
+
status: string | null;
|
|
2271
|
+
title: string | null;
|
|
2272
|
+
body: string | null;
|
|
2273
|
+
cta_text: string | null;
|
|
2274
|
+
active_days: number | null;
|
|
2275
|
+
started_at: string | null;
|
|
2276
|
+
ad_library_url: string | null;
|
|
2277
|
+
duration: number | null;
|
|
2278
|
+
caption: string | null;
|
|
2279
|
+
cta_type: string | null;
|
|
2280
|
+
link_url: string | null;
|
|
2281
|
+
link_description: string | null;
|
|
2282
|
+
ended_at: string | null;
|
|
2283
|
+
first_seen_at: string | null;
|
|
2284
|
+
last_seen_at: string | null;
|
|
2285
|
+
variants: number | null;
|
|
2286
|
+
transcript: string | null;
|
|
2287
|
+
/** @description The ad's image or video */
|
|
2288
|
+
media_url: string | null;
|
|
2289
|
+
};
|
|
2290
|
+
Person: {
|
|
2291
|
+
/** @enum {string} */
|
|
2292
|
+
object: "person";
|
|
2293
|
+
id: string;
|
|
2294
|
+
email: string | null;
|
|
2295
|
+
organizations: {
|
|
2296
|
+
id: string;
|
|
2297
|
+
name: string | null;
|
|
2298
|
+
/** @description The organization Sandstorm opens for this person */
|
|
2299
|
+
current: boolean;
|
|
2300
|
+
role: string | null;
|
|
2301
|
+
/** @description The brand this person last worked on there */
|
|
2302
|
+
brand: string | null;
|
|
2303
|
+
}[];
|
|
2304
|
+
};
|
|
2305
|
+
ApiKey: {
|
|
2306
|
+
/** @enum {string} */
|
|
2307
|
+
object: "api_key";
|
|
2308
|
+
id: string;
|
|
2309
|
+
name: string;
|
|
2310
|
+
/** @description The key itself, shown this once */
|
|
2311
|
+
key: string;
|
|
2312
|
+
prefix: string;
|
|
2313
|
+
organization: {
|
|
2314
|
+
id: string;
|
|
2315
|
+
name: string | null;
|
|
2316
|
+
};
|
|
2317
|
+
brand: {
|
|
2318
|
+
id: string;
|
|
2319
|
+
name: string | null;
|
|
2320
|
+
} | null;
|
|
2321
|
+
created_at: string;
|
|
2322
|
+
};
|
|
2323
|
+
WebhookSecret: {
|
|
2324
|
+
/** @enum {string} */
|
|
2325
|
+
object: "webhook_secret";
|
|
2326
|
+
secret: string;
|
|
2327
|
+
};
|
|
2328
|
+
};
|
|
2329
|
+
responses: never;
|
|
2330
|
+
parameters: never;
|
|
2331
|
+
requestBodies: never;
|
|
2332
|
+
headers: never;
|
|
2333
|
+
pathItems: never;
|
|
2334
|
+
}
|
|
2335
|
+
export type $defs = Record<string, never>;
|
|
2336
|
+
export interface operations {
|
|
2337
|
+
listModels: {
|
|
2338
|
+
parameters: {
|
|
2339
|
+
query?: {
|
|
2340
|
+
/** @description Only image, video or audio models */
|
|
2341
|
+
type?: "image" | "video" | "audio";
|
|
2342
|
+
};
|
|
2343
|
+
header?: never;
|
|
2344
|
+
path?: never;
|
|
2345
|
+
cookie?: never;
|
|
2346
|
+
};
|
|
2347
|
+
requestBody?: never;
|
|
2348
|
+
responses: {
|
|
2349
|
+
/** @description The models */
|
|
2350
|
+
200: {
|
|
2351
|
+
headers: {
|
|
2352
|
+
[name: string]: unknown;
|
|
2353
|
+
};
|
|
2354
|
+
content: {
|
|
2355
|
+
"application/json": components["schemas"]["ModelList"];
|
|
2356
|
+
};
|
|
2357
|
+
};
|
|
2358
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2359
|
+
400: {
|
|
2360
|
+
headers: {
|
|
2361
|
+
[name: string]: unknown;
|
|
2362
|
+
};
|
|
2363
|
+
content: {
|
|
2364
|
+
"application/json": components["schemas"]["Error"];
|
|
2365
|
+
};
|
|
2366
|
+
};
|
|
2367
|
+
/** @description No API key, or not a valid one */
|
|
2368
|
+
401: {
|
|
2369
|
+
headers: {
|
|
2370
|
+
[name: string]: unknown;
|
|
2371
|
+
};
|
|
2372
|
+
content: {
|
|
2373
|
+
"application/json": components["schemas"]["Error"];
|
|
2374
|
+
};
|
|
2375
|
+
};
|
|
2376
|
+
/** @description More than 300 requests a minute */
|
|
2377
|
+
429: {
|
|
2378
|
+
headers: {
|
|
2379
|
+
[name: string]: unknown;
|
|
2380
|
+
};
|
|
2381
|
+
content: {
|
|
2382
|
+
"application/json": components["schemas"]["Error"];
|
|
2383
|
+
};
|
|
2384
|
+
};
|
|
2385
|
+
};
|
|
2386
|
+
};
|
|
2387
|
+
getModel: {
|
|
2388
|
+
parameters: {
|
|
2389
|
+
query?: never;
|
|
2390
|
+
header?: never;
|
|
2391
|
+
path: {
|
|
2392
|
+
id: string;
|
|
2393
|
+
};
|
|
2394
|
+
cookie?: never;
|
|
2395
|
+
};
|
|
2396
|
+
requestBody?: never;
|
|
2397
|
+
responses: {
|
|
2398
|
+
/** @description The model */
|
|
2399
|
+
200: {
|
|
2400
|
+
headers: {
|
|
2401
|
+
[name: string]: unknown;
|
|
2402
|
+
};
|
|
2403
|
+
content: {
|
|
2404
|
+
"application/json": components["schemas"]["Model"];
|
|
2405
|
+
};
|
|
2406
|
+
};
|
|
2407
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2408
|
+
400: {
|
|
2409
|
+
headers: {
|
|
2410
|
+
[name: string]: unknown;
|
|
2411
|
+
};
|
|
2412
|
+
content: {
|
|
2413
|
+
"application/json": components["schemas"]["Error"];
|
|
2414
|
+
};
|
|
2415
|
+
};
|
|
2416
|
+
/** @description No API key, or not a valid one */
|
|
2417
|
+
401: {
|
|
2418
|
+
headers: {
|
|
2419
|
+
[name: string]: unknown;
|
|
2420
|
+
};
|
|
2421
|
+
content: {
|
|
2422
|
+
"application/json": components["schemas"]["Error"];
|
|
2423
|
+
};
|
|
2424
|
+
};
|
|
2425
|
+
/** @description No such thing */
|
|
2426
|
+
404: {
|
|
2427
|
+
headers: {
|
|
2428
|
+
[name: string]: unknown;
|
|
2429
|
+
};
|
|
2430
|
+
content: {
|
|
2431
|
+
"application/json": components["schemas"]["Error"];
|
|
2432
|
+
};
|
|
2433
|
+
};
|
|
2434
|
+
/** @description More than 300 requests a minute */
|
|
2435
|
+
429: {
|
|
2436
|
+
headers: {
|
|
2437
|
+
[name: string]: unknown;
|
|
2438
|
+
};
|
|
2439
|
+
content: {
|
|
2440
|
+
"application/json": components["schemas"]["Error"];
|
|
2441
|
+
};
|
|
2442
|
+
};
|
|
2443
|
+
};
|
|
2444
|
+
};
|
|
2445
|
+
listGenerations: {
|
|
2446
|
+
parameters: {
|
|
2447
|
+
query?: {
|
|
2448
|
+
/** @description How many to list, from 1 to 100; 20 when left out */
|
|
2449
|
+
limit?: number;
|
|
2450
|
+
/** @description `next_cursor` from the previous page */
|
|
2451
|
+
cursor?: string;
|
|
2452
|
+
status?: "queued" | "running" | "succeeded" | "failed" | "canceled";
|
|
2453
|
+
model?: string;
|
|
2454
|
+
};
|
|
2455
|
+
header?: never;
|
|
2456
|
+
path?: never;
|
|
2457
|
+
cookie?: never;
|
|
2458
|
+
};
|
|
2459
|
+
requestBody?: never;
|
|
2460
|
+
responses: {
|
|
2461
|
+
/** @description The generations */
|
|
2462
|
+
200: {
|
|
2463
|
+
headers: {
|
|
2464
|
+
[name: string]: unknown;
|
|
2465
|
+
};
|
|
2466
|
+
content: {
|
|
2467
|
+
"application/json": components["schemas"]["GenerationList"];
|
|
2468
|
+
};
|
|
2469
|
+
};
|
|
2470
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2471
|
+
400: {
|
|
2472
|
+
headers: {
|
|
2473
|
+
[name: string]: unknown;
|
|
2474
|
+
};
|
|
2475
|
+
content: {
|
|
2476
|
+
"application/json": components["schemas"]["Error"];
|
|
2477
|
+
};
|
|
2478
|
+
};
|
|
2479
|
+
/** @description No API key, or not a valid one */
|
|
2480
|
+
401: {
|
|
2481
|
+
headers: {
|
|
2482
|
+
[name: string]: unknown;
|
|
2483
|
+
};
|
|
2484
|
+
content: {
|
|
2485
|
+
"application/json": components["schemas"]["Error"];
|
|
2486
|
+
};
|
|
2487
|
+
};
|
|
2488
|
+
/** @description More than 300 requests a minute */
|
|
2489
|
+
429: {
|
|
2490
|
+
headers: {
|
|
2491
|
+
[name: string]: unknown;
|
|
2492
|
+
};
|
|
2493
|
+
content: {
|
|
2494
|
+
"application/json": components["schemas"]["Error"];
|
|
2495
|
+
};
|
|
2496
|
+
};
|
|
2497
|
+
};
|
|
2498
|
+
};
|
|
2499
|
+
createGeneration: {
|
|
2500
|
+
parameters: {
|
|
2501
|
+
query?: never;
|
|
2502
|
+
header?: {
|
|
2503
|
+
/** @description `wait=<seconds>`, up to 200, answers the finished generation if it finishes in time */
|
|
2504
|
+
prefer?: string;
|
|
2505
|
+
/** @description Any unique string. Retrying with the same key answers the first generation instead of starting another. */
|
|
2506
|
+
"idempotency-key"?: string;
|
|
2507
|
+
};
|
|
2508
|
+
path?: never;
|
|
2509
|
+
cookie?: never;
|
|
2510
|
+
};
|
|
2511
|
+
requestBody: {
|
|
2512
|
+
content: {
|
|
2513
|
+
"application/json": components["schemas"]["CreateGeneration"];
|
|
2514
|
+
};
|
|
2515
|
+
};
|
|
2516
|
+
responses: {
|
|
2517
|
+
/** @description It finished; `status` says how */
|
|
2518
|
+
200: {
|
|
2519
|
+
headers: {
|
|
2520
|
+
[name: string]: unknown;
|
|
2521
|
+
};
|
|
2522
|
+
content: {
|
|
2523
|
+
"application/json": components["schemas"]["Generation"];
|
|
2524
|
+
};
|
|
2525
|
+
};
|
|
2526
|
+
/** @description It is queued or running; poll it, wait on it or take the webhook */
|
|
2527
|
+
202: {
|
|
2528
|
+
headers: {
|
|
2529
|
+
[name: string]: unknown;
|
|
2530
|
+
};
|
|
2531
|
+
content: {
|
|
2532
|
+
"application/json": components["schemas"]["Generation"];
|
|
2533
|
+
};
|
|
2534
|
+
};
|
|
2535
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2536
|
+
400: {
|
|
2537
|
+
headers: {
|
|
2538
|
+
[name: string]: unknown;
|
|
2539
|
+
};
|
|
2540
|
+
content: {
|
|
2541
|
+
"application/json": components["schemas"]["Error"];
|
|
2542
|
+
};
|
|
2543
|
+
};
|
|
2544
|
+
/** @description No API key, or not a valid one */
|
|
2545
|
+
401: {
|
|
2546
|
+
headers: {
|
|
2547
|
+
[name: string]: unknown;
|
|
2548
|
+
};
|
|
2549
|
+
content: {
|
|
2550
|
+
"application/json": components["schemas"]["Error"];
|
|
2551
|
+
};
|
|
2552
|
+
};
|
|
2553
|
+
/** @description Not enough credits */
|
|
2554
|
+
402: {
|
|
2555
|
+
headers: {
|
|
2556
|
+
[name: string]: unknown;
|
|
2557
|
+
};
|
|
2558
|
+
content: {
|
|
2559
|
+
"application/json": components["schemas"]["Error"];
|
|
2560
|
+
};
|
|
2561
|
+
};
|
|
2562
|
+
/** @description The key cannot use that brand */
|
|
2563
|
+
403: {
|
|
2564
|
+
headers: {
|
|
2565
|
+
[name: string]: unknown;
|
|
2566
|
+
};
|
|
2567
|
+
content: {
|
|
2568
|
+
"application/json": components["schemas"]["Error"];
|
|
2569
|
+
};
|
|
2570
|
+
};
|
|
2571
|
+
/** @description The Idempotency-Key was used with a different request */
|
|
2572
|
+
422: {
|
|
2573
|
+
headers: {
|
|
2574
|
+
[name: string]: unknown;
|
|
2575
|
+
};
|
|
2576
|
+
content: {
|
|
2577
|
+
"application/json": components["schemas"]["Error"];
|
|
2578
|
+
};
|
|
2579
|
+
};
|
|
2580
|
+
/** @description More than 300 requests a minute */
|
|
2581
|
+
429: {
|
|
2582
|
+
headers: {
|
|
2583
|
+
[name: string]: unknown;
|
|
2584
|
+
};
|
|
2585
|
+
content: {
|
|
2586
|
+
"application/json": components["schemas"]["Error"];
|
|
2587
|
+
};
|
|
2588
|
+
};
|
|
2589
|
+
/** @description Sandstorm could not take the request; retry it */
|
|
2590
|
+
503: {
|
|
2591
|
+
headers: {
|
|
2592
|
+
[name: string]: unknown;
|
|
2593
|
+
};
|
|
2594
|
+
content: {
|
|
2595
|
+
"application/json": components["schemas"]["Error"];
|
|
2596
|
+
};
|
|
2597
|
+
};
|
|
2598
|
+
};
|
|
2599
|
+
};
|
|
2600
|
+
getGeneration: {
|
|
2601
|
+
parameters: {
|
|
2602
|
+
query?: never;
|
|
2603
|
+
header?: {
|
|
2604
|
+
/** @description `wait=<seconds>`, up to 200, answers the finished generation if it finishes in time */
|
|
2605
|
+
prefer?: string;
|
|
2606
|
+
};
|
|
2607
|
+
path: {
|
|
2608
|
+
id: string;
|
|
2609
|
+
};
|
|
2610
|
+
cookie?: never;
|
|
2611
|
+
};
|
|
2612
|
+
requestBody?: never;
|
|
2613
|
+
responses: {
|
|
2614
|
+
/** @description The generation */
|
|
2615
|
+
200: {
|
|
2616
|
+
headers: {
|
|
2617
|
+
[name: string]: unknown;
|
|
2618
|
+
};
|
|
2619
|
+
content: {
|
|
2620
|
+
"application/json": components["schemas"]["Generation"];
|
|
2621
|
+
};
|
|
2622
|
+
};
|
|
2623
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2624
|
+
400: {
|
|
2625
|
+
headers: {
|
|
2626
|
+
[name: string]: unknown;
|
|
2627
|
+
};
|
|
2628
|
+
content: {
|
|
2629
|
+
"application/json": components["schemas"]["Error"];
|
|
2630
|
+
};
|
|
2631
|
+
};
|
|
2632
|
+
/** @description No API key, or not a valid one */
|
|
2633
|
+
401: {
|
|
2634
|
+
headers: {
|
|
2635
|
+
[name: string]: unknown;
|
|
2636
|
+
};
|
|
2637
|
+
content: {
|
|
2638
|
+
"application/json": components["schemas"]["Error"];
|
|
2639
|
+
};
|
|
2640
|
+
};
|
|
2641
|
+
/** @description No such thing */
|
|
2642
|
+
404: {
|
|
2643
|
+
headers: {
|
|
2644
|
+
[name: string]: unknown;
|
|
2645
|
+
};
|
|
2646
|
+
content: {
|
|
2647
|
+
"application/json": components["schemas"]["Error"];
|
|
2648
|
+
};
|
|
2649
|
+
};
|
|
2650
|
+
/** @description More than 300 requests a minute */
|
|
2651
|
+
429: {
|
|
2652
|
+
headers: {
|
|
2653
|
+
[name: string]: unknown;
|
|
2654
|
+
};
|
|
2655
|
+
content: {
|
|
2656
|
+
"application/json": components["schemas"]["Error"];
|
|
2657
|
+
};
|
|
2658
|
+
};
|
|
2659
|
+
};
|
|
2660
|
+
};
|
|
2661
|
+
cancelGeneration: {
|
|
2662
|
+
parameters: {
|
|
2663
|
+
query?: never;
|
|
2664
|
+
header?: never;
|
|
2665
|
+
path: {
|
|
2666
|
+
id: string;
|
|
2667
|
+
};
|
|
2668
|
+
cookie?: never;
|
|
2669
|
+
};
|
|
2670
|
+
requestBody?: never;
|
|
2671
|
+
responses: {
|
|
2672
|
+
/** @description Cancelling */
|
|
2673
|
+
202: {
|
|
2674
|
+
headers: {
|
|
2675
|
+
[name: string]: unknown;
|
|
2676
|
+
};
|
|
2677
|
+
content: {
|
|
2678
|
+
"application/json": components["schemas"]["Generation"];
|
|
2679
|
+
};
|
|
2680
|
+
};
|
|
2681
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2682
|
+
400: {
|
|
2683
|
+
headers: {
|
|
2684
|
+
[name: string]: unknown;
|
|
2685
|
+
};
|
|
2686
|
+
content: {
|
|
2687
|
+
"application/json": components["schemas"]["Error"];
|
|
2688
|
+
};
|
|
2689
|
+
};
|
|
2690
|
+
/** @description No API key, or not a valid one */
|
|
2691
|
+
401: {
|
|
2692
|
+
headers: {
|
|
2693
|
+
[name: string]: unknown;
|
|
2694
|
+
};
|
|
2695
|
+
content: {
|
|
2696
|
+
"application/json": components["schemas"]["Error"];
|
|
2697
|
+
};
|
|
2698
|
+
};
|
|
2699
|
+
/** @description No such thing */
|
|
2700
|
+
404: {
|
|
2701
|
+
headers: {
|
|
2702
|
+
[name: string]: unknown;
|
|
2703
|
+
};
|
|
2704
|
+
content: {
|
|
2705
|
+
"application/json": components["schemas"]["Error"];
|
|
2706
|
+
};
|
|
2707
|
+
};
|
|
2708
|
+
/** @description The request conflicts with the current state */
|
|
2709
|
+
409: {
|
|
2710
|
+
headers: {
|
|
2711
|
+
[name: string]: unknown;
|
|
2712
|
+
};
|
|
2713
|
+
content: {
|
|
2714
|
+
"application/json": components["schemas"]["Error"];
|
|
2715
|
+
};
|
|
2716
|
+
};
|
|
2717
|
+
/** @description More than 300 requests a minute */
|
|
2718
|
+
429: {
|
|
2719
|
+
headers: {
|
|
2720
|
+
[name: string]: unknown;
|
|
2721
|
+
};
|
|
2722
|
+
content: {
|
|
2723
|
+
"application/json": components["schemas"]["Error"];
|
|
2724
|
+
};
|
|
2725
|
+
};
|
|
2726
|
+
};
|
|
2727
|
+
};
|
|
2728
|
+
listAssets: {
|
|
2729
|
+
parameters: {
|
|
2730
|
+
query?: {
|
|
2731
|
+
type?: "image" | "video" | "audio";
|
|
2732
|
+
/** @description Only photos of this offer, offer_… */
|
|
2733
|
+
offer?: string;
|
|
2734
|
+
/** @description Only liked files */
|
|
2735
|
+
liked?: "true" | "false";
|
|
2736
|
+
/** @description Archived files instead of live ones */
|
|
2737
|
+
archived?: "true" | "false";
|
|
2738
|
+
/** @description How many to list, from 1 to 50; 20 when left out */
|
|
2739
|
+
limit?: number;
|
|
2740
|
+
/** @description `next_cursor` from the previous page */
|
|
2741
|
+
cursor?: string;
|
|
2742
|
+
};
|
|
2743
|
+
header?: never;
|
|
2744
|
+
path?: never;
|
|
2745
|
+
cookie?: never;
|
|
2746
|
+
};
|
|
2747
|
+
requestBody?: never;
|
|
2748
|
+
responses: {
|
|
2749
|
+
/** @description The files */
|
|
2750
|
+
200: {
|
|
2751
|
+
headers: {
|
|
2752
|
+
[name: string]: unknown;
|
|
2753
|
+
};
|
|
2754
|
+
content: {
|
|
2755
|
+
"application/json": components["schemas"]["LibraryAssetList"];
|
|
2756
|
+
};
|
|
2757
|
+
};
|
|
2758
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2759
|
+
400: {
|
|
2760
|
+
headers: {
|
|
2761
|
+
[name: string]: unknown;
|
|
2762
|
+
};
|
|
2763
|
+
content: {
|
|
2764
|
+
"application/json": components["schemas"]["Error"];
|
|
2765
|
+
};
|
|
2766
|
+
};
|
|
2767
|
+
/** @description No API key, or not a valid one */
|
|
2768
|
+
401: {
|
|
2769
|
+
headers: {
|
|
2770
|
+
[name: string]: unknown;
|
|
2771
|
+
};
|
|
2772
|
+
content: {
|
|
2773
|
+
"application/json": components["schemas"]["Error"];
|
|
2774
|
+
};
|
|
2775
|
+
};
|
|
2776
|
+
/** @description More than 300 requests a minute */
|
|
2777
|
+
429: {
|
|
2778
|
+
headers: {
|
|
2779
|
+
[name: string]: unknown;
|
|
2780
|
+
};
|
|
2781
|
+
content: {
|
|
2782
|
+
"application/json": components["schemas"]["Error"];
|
|
2783
|
+
};
|
|
2784
|
+
};
|
|
2785
|
+
};
|
|
2786
|
+
};
|
|
2787
|
+
importAsset: {
|
|
2788
|
+
parameters: {
|
|
2789
|
+
query?: never;
|
|
2790
|
+
header?: {
|
|
2791
|
+
"idempotency-key"?: string;
|
|
2792
|
+
};
|
|
2793
|
+
path?: never;
|
|
2794
|
+
cookie?: never;
|
|
2795
|
+
};
|
|
2796
|
+
requestBody: {
|
|
2797
|
+
content: {
|
|
2798
|
+
"application/json": {
|
|
2799
|
+
/** @description A public https link to a png, jpeg, webp, mp4, mov, mp3, m4a or wav file */
|
|
2800
|
+
url: string;
|
|
2801
|
+
/** @description What the file is called in your library */
|
|
2802
|
+
name?: string;
|
|
2803
|
+
};
|
|
2804
|
+
};
|
|
2805
|
+
};
|
|
2806
|
+
responses: {
|
|
2807
|
+
/** @description Imported */
|
|
2808
|
+
201: {
|
|
2809
|
+
headers: {
|
|
2810
|
+
[name: string]: unknown;
|
|
2811
|
+
};
|
|
2812
|
+
content: {
|
|
2813
|
+
"application/json": components["schemas"]["Asset"];
|
|
2814
|
+
};
|
|
2815
|
+
};
|
|
2816
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2817
|
+
400: {
|
|
2818
|
+
headers: {
|
|
2819
|
+
[name: string]: unknown;
|
|
2820
|
+
};
|
|
2821
|
+
content: {
|
|
2822
|
+
"application/json": components["schemas"]["Error"];
|
|
2823
|
+
};
|
|
2824
|
+
};
|
|
2825
|
+
/** @description No API key, or not a valid one */
|
|
2826
|
+
401: {
|
|
2827
|
+
headers: {
|
|
2828
|
+
[name: string]: unknown;
|
|
2829
|
+
};
|
|
2830
|
+
content: {
|
|
2831
|
+
"application/json": components["schemas"]["Error"];
|
|
2832
|
+
};
|
|
2833
|
+
};
|
|
2834
|
+
/** @description More than 300 requests a minute */
|
|
2835
|
+
429: {
|
|
2836
|
+
headers: {
|
|
2837
|
+
[name: string]: unknown;
|
|
2838
|
+
};
|
|
2839
|
+
content: {
|
|
2840
|
+
"application/json": components["schemas"]["Error"];
|
|
2841
|
+
};
|
|
2842
|
+
};
|
|
2843
|
+
/** @description Sandstorm could not take the request; retry it */
|
|
2844
|
+
503: {
|
|
2845
|
+
headers: {
|
|
2846
|
+
[name: string]: unknown;
|
|
2847
|
+
};
|
|
2848
|
+
content: {
|
|
2849
|
+
"application/json": components["schemas"]["Error"];
|
|
2850
|
+
};
|
|
2851
|
+
};
|
|
2852
|
+
};
|
|
2853
|
+
};
|
|
2854
|
+
getAsset: {
|
|
2855
|
+
parameters: {
|
|
2856
|
+
query?: never;
|
|
2857
|
+
header?: never;
|
|
2858
|
+
path: {
|
|
2859
|
+
id: string;
|
|
2860
|
+
};
|
|
2861
|
+
cookie?: never;
|
|
2862
|
+
};
|
|
2863
|
+
requestBody?: never;
|
|
2864
|
+
responses: {
|
|
2865
|
+
/** @description The asset */
|
|
2866
|
+
200: {
|
|
2867
|
+
headers: {
|
|
2868
|
+
[name: string]: unknown;
|
|
2869
|
+
};
|
|
2870
|
+
content: {
|
|
2871
|
+
"application/json": components["schemas"]["Asset"];
|
|
2872
|
+
};
|
|
2873
|
+
};
|
|
2874
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2875
|
+
400: {
|
|
2876
|
+
headers: {
|
|
2877
|
+
[name: string]: unknown;
|
|
2878
|
+
};
|
|
2879
|
+
content: {
|
|
2880
|
+
"application/json": components["schemas"]["Error"];
|
|
2881
|
+
};
|
|
2882
|
+
};
|
|
2883
|
+
/** @description No API key, or not a valid one */
|
|
2884
|
+
401: {
|
|
2885
|
+
headers: {
|
|
2886
|
+
[name: string]: unknown;
|
|
2887
|
+
};
|
|
2888
|
+
content: {
|
|
2889
|
+
"application/json": components["schemas"]["Error"];
|
|
2890
|
+
};
|
|
2891
|
+
};
|
|
2892
|
+
/** @description No such thing */
|
|
2893
|
+
404: {
|
|
2894
|
+
headers: {
|
|
2895
|
+
[name: string]: unknown;
|
|
2896
|
+
};
|
|
2897
|
+
content: {
|
|
2898
|
+
"application/json": components["schemas"]["Error"];
|
|
2899
|
+
};
|
|
2900
|
+
};
|
|
2901
|
+
/** @description More than 300 requests a minute */
|
|
2902
|
+
429: {
|
|
2903
|
+
headers: {
|
|
2904
|
+
[name: string]: unknown;
|
|
2905
|
+
};
|
|
2906
|
+
content: {
|
|
2907
|
+
"application/json": components["schemas"]["Error"];
|
|
2908
|
+
};
|
|
2909
|
+
};
|
|
2910
|
+
};
|
|
2911
|
+
};
|
|
2912
|
+
getBrand: {
|
|
2913
|
+
parameters: {
|
|
2914
|
+
query?: never;
|
|
2915
|
+
header?: never;
|
|
2916
|
+
path?: never;
|
|
2917
|
+
cookie?: never;
|
|
2918
|
+
};
|
|
2919
|
+
requestBody?: never;
|
|
2920
|
+
responses: {
|
|
2921
|
+
/** @description The brand kit */
|
|
2922
|
+
200: {
|
|
2923
|
+
headers: {
|
|
2924
|
+
[name: string]: unknown;
|
|
2925
|
+
};
|
|
2926
|
+
content: {
|
|
2927
|
+
"application/json": components["schemas"]["Brand"];
|
|
2928
|
+
};
|
|
2929
|
+
};
|
|
2930
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2931
|
+
400: {
|
|
2932
|
+
headers: {
|
|
2933
|
+
[name: string]: unknown;
|
|
2934
|
+
};
|
|
2935
|
+
content: {
|
|
2936
|
+
"application/json": components["schemas"]["Error"];
|
|
2937
|
+
};
|
|
2938
|
+
};
|
|
2939
|
+
/** @description No API key, or not a valid one */
|
|
2940
|
+
401: {
|
|
2941
|
+
headers: {
|
|
2942
|
+
[name: string]: unknown;
|
|
2943
|
+
};
|
|
2944
|
+
content: {
|
|
2945
|
+
"application/json": components["schemas"]["Error"];
|
|
2946
|
+
};
|
|
2947
|
+
};
|
|
2948
|
+
/** @description No such thing */
|
|
2949
|
+
404: {
|
|
2950
|
+
headers: {
|
|
2951
|
+
[name: string]: unknown;
|
|
2952
|
+
};
|
|
2953
|
+
content: {
|
|
2954
|
+
"application/json": components["schemas"]["Error"];
|
|
2955
|
+
};
|
|
2956
|
+
};
|
|
2957
|
+
/** @description More than 300 requests a minute */
|
|
2958
|
+
429: {
|
|
2959
|
+
headers: {
|
|
2960
|
+
[name: string]: unknown;
|
|
2961
|
+
};
|
|
2962
|
+
content: {
|
|
2963
|
+
"application/json": components["schemas"]["Error"];
|
|
2964
|
+
};
|
|
2965
|
+
};
|
|
2966
|
+
};
|
|
2967
|
+
};
|
|
2968
|
+
listOffers: {
|
|
2969
|
+
parameters: {
|
|
2970
|
+
query?: {
|
|
2971
|
+
/** @description Words to match */
|
|
2972
|
+
query?: string;
|
|
2973
|
+
/** @description How many to list, from 1 to 50; 20 when left out */
|
|
2974
|
+
limit?: number;
|
|
2975
|
+
/** @description `next_cursor` from the previous page */
|
|
2976
|
+
cursor?: string;
|
|
2977
|
+
};
|
|
2978
|
+
header?: never;
|
|
2979
|
+
path?: never;
|
|
2980
|
+
cookie?: never;
|
|
2981
|
+
};
|
|
2982
|
+
requestBody?: never;
|
|
2983
|
+
responses: {
|
|
2984
|
+
/** @description The offers */
|
|
2985
|
+
200: {
|
|
2986
|
+
headers: {
|
|
2987
|
+
[name: string]: unknown;
|
|
2988
|
+
};
|
|
2989
|
+
content: {
|
|
2990
|
+
"application/json": components["schemas"]["OfferList"];
|
|
2991
|
+
};
|
|
2992
|
+
};
|
|
2993
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
2994
|
+
400: {
|
|
2995
|
+
headers: {
|
|
2996
|
+
[name: string]: unknown;
|
|
2997
|
+
};
|
|
2998
|
+
content: {
|
|
2999
|
+
"application/json": components["schemas"]["Error"];
|
|
3000
|
+
};
|
|
3001
|
+
};
|
|
3002
|
+
/** @description No API key, or not a valid one */
|
|
3003
|
+
401: {
|
|
3004
|
+
headers: {
|
|
3005
|
+
[name: string]: unknown;
|
|
3006
|
+
};
|
|
3007
|
+
content: {
|
|
3008
|
+
"application/json": components["schemas"]["Error"];
|
|
3009
|
+
};
|
|
3010
|
+
};
|
|
3011
|
+
/** @description More than 300 requests a minute */
|
|
3012
|
+
429: {
|
|
3013
|
+
headers: {
|
|
3014
|
+
[name: string]: unknown;
|
|
3015
|
+
};
|
|
3016
|
+
content: {
|
|
3017
|
+
"application/json": components["schemas"]["Error"];
|
|
3018
|
+
};
|
|
3019
|
+
};
|
|
3020
|
+
};
|
|
3021
|
+
};
|
|
3022
|
+
getOffer: {
|
|
3023
|
+
parameters: {
|
|
3024
|
+
query?: never;
|
|
3025
|
+
header?: never;
|
|
3026
|
+
path: {
|
|
3027
|
+
id: string;
|
|
3028
|
+
};
|
|
3029
|
+
cookie?: never;
|
|
3030
|
+
};
|
|
3031
|
+
requestBody?: never;
|
|
3032
|
+
responses: {
|
|
3033
|
+
/** @description The offer */
|
|
3034
|
+
200: {
|
|
3035
|
+
headers: {
|
|
3036
|
+
[name: string]: unknown;
|
|
3037
|
+
};
|
|
3038
|
+
content: {
|
|
3039
|
+
"application/json": components["schemas"]["Offer"];
|
|
3040
|
+
};
|
|
3041
|
+
};
|
|
3042
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
3043
|
+
400: {
|
|
3044
|
+
headers: {
|
|
3045
|
+
[name: string]: unknown;
|
|
3046
|
+
};
|
|
3047
|
+
content: {
|
|
3048
|
+
"application/json": components["schemas"]["Error"];
|
|
3049
|
+
};
|
|
3050
|
+
};
|
|
3051
|
+
/** @description No API key, or not a valid one */
|
|
3052
|
+
401: {
|
|
3053
|
+
headers: {
|
|
3054
|
+
[name: string]: unknown;
|
|
3055
|
+
};
|
|
3056
|
+
content: {
|
|
3057
|
+
"application/json": components["schemas"]["Error"];
|
|
3058
|
+
};
|
|
3059
|
+
};
|
|
3060
|
+
/** @description No such thing */
|
|
3061
|
+
404: {
|
|
3062
|
+
headers: {
|
|
3063
|
+
[name: string]: unknown;
|
|
3064
|
+
};
|
|
3065
|
+
content: {
|
|
3066
|
+
"application/json": components["schemas"]["Error"];
|
|
3067
|
+
};
|
|
3068
|
+
};
|
|
3069
|
+
/** @description More than 300 requests a minute */
|
|
3070
|
+
429: {
|
|
3071
|
+
headers: {
|
|
3072
|
+
[name: string]: unknown;
|
|
3073
|
+
};
|
|
3074
|
+
content: {
|
|
3075
|
+
"application/json": components["schemas"]["Error"];
|
|
3076
|
+
};
|
|
3077
|
+
};
|
|
3078
|
+
};
|
|
3079
|
+
};
|
|
3080
|
+
listCharacters: {
|
|
3081
|
+
parameters: {
|
|
3082
|
+
query?: {
|
|
3083
|
+
/** @description Words in the name */
|
|
3084
|
+
query?: string;
|
|
3085
|
+
kind?: "subject" | "product" | "place" | "voice" | "style";
|
|
3086
|
+
/** @description `next_cursor` from the previous page */
|
|
3087
|
+
cursor?: string;
|
|
3088
|
+
};
|
|
3089
|
+
header?: never;
|
|
3090
|
+
path?: never;
|
|
3091
|
+
cookie?: never;
|
|
3092
|
+
};
|
|
3093
|
+
requestBody?: never;
|
|
3094
|
+
responses: {
|
|
3095
|
+
/** @description The characters */
|
|
3096
|
+
200: {
|
|
3097
|
+
headers: {
|
|
3098
|
+
[name: string]: unknown;
|
|
3099
|
+
};
|
|
3100
|
+
content: {
|
|
3101
|
+
"application/json": components["schemas"]["CharacterList"];
|
|
3102
|
+
};
|
|
3103
|
+
};
|
|
3104
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
3105
|
+
400: {
|
|
3106
|
+
headers: {
|
|
3107
|
+
[name: string]: unknown;
|
|
3108
|
+
};
|
|
3109
|
+
content: {
|
|
3110
|
+
"application/json": components["schemas"]["Error"];
|
|
3111
|
+
};
|
|
3112
|
+
};
|
|
3113
|
+
/** @description No API key, or not a valid one */
|
|
3114
|
+
401: {
|
|
3115
|
+
headers: {
|
|
3116
|
+
[name: string]: unknown;
|
|
3117
|
+
};
|
|
3118
|
+
content: {
|
|
3119
|
+
"application/json": components["schemas"]["Error"];
|
|
3120
|
+
};
|
|
3121
|
+
};
|
|
3122
|
+
/** @description More than 300 requests a minute */
|
|
3123
|
+
429: {
|
|
3124
|
+
headers: {
|
|
3125
|
+
[name: string]: unknown;
|
|
3126
|
+
};
|
|
3127
|
+
content: {
|
|
3128
|
+
"application/json": components["schemas"]["Error"];
|
|
3129
|
+
};
|
|
3130
|
+
};
|
|
3131
|
+
};
|
|
3132
|
+
};
|
|
3133
|
+
listVoices: {
|
|
3134
|
+
parameters: {
|
|
3135
|
+
query?: {
|
|
3136
|
+
/** @description Words in the name or description */
|
|
3137
|
+
query?: string;
|
|
3138
|
+
gender?: "male" | "female" | "neutral";
|
|
3139
|
+
age?: "young" | "middle_aged" | "old";
|
|
3140
|
+
/** @description Such as american, british or australian */
|
|
3141
|
+
accent?: string;
|
|
3142
|
+
/** @description Such as advertisement, narrative_story or social_media */
|
|
3143
|
+
use_case?: string;
|
|
3144
|
+
/** @description How many to list, from 1 to 20; 20 when left out */
|
|
3145
|
+
limit?: number;
|
|
3146
|
+
};
|
|
3147
|
+
header?: never;
|
|
3148
|
+
path?: never;
|
|
3149
|
+
cookie?: never;
|
|
3150
|
+
};
|
|
3151
|
+
requestBody?: never;
|
|
3152
|
+
responses: {
|
|
3153
|
+
/** @description The voices */
|
|
3154
|
+
200: {
|
|
3155
|
+
headers: {
|
|
3156
|
+
[name: string]: unknown;
|
|
3157
|
+
};
|
|
3158
|
+
content: {
|
|
3159
|
+
"application/json": components["schemas"]["VoiceList"];
|
|
3160
|
+
};
|
|
3161
|
+
};
|
|
3162
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
3163
|
+
400: {
|
|
3164
|
+
headers: {
|
|
3165
|
+
[name: string]: unknown;
|
|
3166
|
+
};
|
|
3167
|
+
content: {
|
|
3168
|
+
"application/json": components["schemas"]["Error"];
|
|
3169
|
+
};
|
|
3170
|
+
};
|
|
3171
|
+
/** @description No API key, or not a valid one */
|
|
3172
|
+
401: {
|
|
3173
|
+
headers: {
|
|
3174
|
+
[name: string]: unknown;
|
|
3175
|
+
};
|
|
3176
|
+
content: {
|
|
3177
|
+
"application/json": components["schemas"]["Error"];
|
|
3178
|
+
};
|
|
3179
|
+
};
|
|
3180
|
+
/** @description More than 300 requests a minute */
|
|
3181
|
+
429: {
|
|
3182
|
+
headers: {
|
|
3183
|
+
[name: string]: unknown;
|
|
3184
|
+
};
|
|
3185
|
+
content: {
|
|
3186
|
+
"application/json": components["schemas"]["Error"];
|
|
3187
|
+
};
|
|
3188
|
+
};
|
|
3189
|
+
};
|
|
3190
|
+
};
|
|
3191
|
+
listAdvertisers: {
|
|
3192
|
+
parameters: {
|
|
3193
|
+
query: {
|
|
3194
|
+
/** @description A brand name */
|
|
3195
|
+
query: string;
|
|
3196
|
+
/** @description How many to list, from 1 to 20; 20 when left out */
|
|
3197
|
+
limit?: number;
|
|
3198
|
+
};
|
|
3199
|
+
header?: never;
|
|
3200
|
+
path?: never;
|
|
3201
|
+
cookie?: never;
|
|
3202
|
+
};
|
|
3203
|
+
requestBody?: never;
|
|
3204
|
+
responses: {
|
|
3205
|
+
/** @description The advertisers */
|
|
3206
|
+
200: {
|
|
3207
|
+
headers: {
|
|
3208
|
+
[name: string]: unknown;
|
|
3209
|
+
};
|
|
3210
|
+
content: {
|
|
3211
|
+
"application/json": components["schemas"]["AdvertiserList"];
|
|
3212
|
+
};
|
|
3213
|
+
};
|
|
3214
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
3215
|
+
400: {
|
|
3216
|
+
headers: {
|
|
3217
|
+
[name: string]: unknown;
|
|
3218
|
+
};
|
|
3219
|
+
content: {
|
|
3220
|
+
"application/json": components["schemas"]["Error"];
|
|
3221
|
+
};
|
|
3222
|
+
};
|
|
3223
|
+
/** @description No API key, or not a valid one */
|
|
3224
|
+
401: {
|
|
3225
|
+
headers: {
|
|
3226
|
+
[name: string]: unknown;
|
|
3227
|
+
};
|
|
3228
|
+
content: {
|
|
3229
|
+
"application/json": components["schemas"]["Error"];
|
|
3230
|
+
};
|
|
3231
|
+
};
|
|
3232
|
+
/** @description More than 300 requests a minute */
|
|
3233
|
+
429: {
|
|
3234
|
+
headers: {
|
|
3235
|
+
[name: string]: unknown;
|
|
3236
|
+
};
|
|
3237
|
+
content: {
|
|
3238
|
+
"application/json": components["schemas"]["Error"];
|
|
3239
|
+
};
|
|
3240
|
+
};
|
|
3241
|
+
};
|
|
3242
|
+
};
|
|
3243
|
+
listAds: {
|
|
3244
|
+
parameters: {
|
|
3245
|
+
query?: {
|
|
3246
|
+
/** @description What the ads say or show; across every tracked brand unless `advertiser` narrows it */
|
|
3247
|
+
query?: string;
|
|
3248
|
+
/** @description Only these advertisers, advertiser_…, several separated by commas */
|
|
3249
|
+
advertiser?: string;
|
|
3250
|
+
/** @description Only these platforms: meta, linkedin, google, several separated by commas */
|
|
3251
|
+
platform?: string;
|
|
3252
|
+
/** @description Only these formats: image, video, carousel, dco, several separated by commas */
|
|
3253
|
+
format?: string;
|
|
3254
|
+
status?: "active" | "inactive";
|
|
3255
|
+
/** @description Only ads that ran at least this many days */
|
|
3256
|
+
min_active_days?: number | null;
|
|
3257
|
+
/** @description Only ads that started on or after this day, YYYY-MM-DD */
|
|
3258
|
+
started_after?: string;
|
|
3259
|
+
/** @description Only ads that started before this day, YYYY-MM-DD */
|
|
3260
|
+
started_before?: string;
|
|
3261
|
+
/** @description How many to list, from 1 to 50; 20 when left out */
|
|
3262
|
+
limit?: number;
|
|
3263
|
+
/** @description `next_cursor` from the previous page */
|
|
3264
|
+
cursor?: string;
|
|
3265
|
+
};
|
|
3266
|
+
header?: never;
|
|
3267
|
+
path?: never;
|
|
3268
|
+
cookie?: never;
|
|
3269
|
+
};
|
|
3270
|
+
requestBody?: never;
|
|
3271
|
+
responses: {
|
|
3272
|
+
/** @description The ads */
|
|
3273
|
+
200: {
|
|
3274
|
+
headers: {
|
|
3275
|
+
[name: string]: unknown;
|
|
3276
|
+
};
|
|
3277
|
+
content: {
|
|
3278
|
+
"application/json": components["schemas"]["AdList"];
|
|
3279
|
+
};
|
|
3280
|
+
};
|
|
3281
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
3282
|
+
400: {
|
|
3283
|
+
headers: {
|
|
3284
|
+
[name: string]: unknown;
|
|
3285
|
+
};
|
|
3286
|
+
content: {
|
|
3287
|
+
"application/json": components["schemas"]["Error"];
|
|
3288
|
+
};
|
|
3289
|
+
};
|
|
3290
|
+
/** @description No API key, or not a valid one */
|
|
3291
|
+
401: {
|
|
3292
|
+
headers: {
|
|
3293
|
+
[name: string]: unknown;
|
|
3294
|
+
};
|
|
3295
|
+
content: {
|
|
3296
|
+
"application/json": components["schemas"]["Error"];
|
|
3297
|
+
};
|
|
3298
|
+
};
|
|
3299
|
+
/** @description More than 300 requests a minute */
|
|
3300
|
+
429: {
|
|
3301
|
+
headers: {
|
|
3302
|
+
[name: string]: unknown;
|
|
3303
|
+
};
|
|
3304
|
+
content: {
|
|
3305
|
+
"application/json": components["schemas"]["Error"];
|
|
3306
|
+
};
|
|
3307
|
+
};
|
|
3308
|
+
};
|
|
3309
|
+
};
|
|
3310
|
+
getAd: {
|
|
3311
|
+
parameters: {
|
|
3312
|
+
query?: never;
|
|
3313
|
+
header?: never;
|
|
3314
|
+
path: {
|
|
3315
|
+
id: string;
|
|
3316
|
+
};
|
|
3317
|
+
cookie?: never;
|
|
3318
|
+
};
|
|
3319
|
+
requestBody?: never;
|
|
3320
|
+
responses: {
|
|
3321
|
+
/** @description The ad */
|
|
3322
|
+
200: {
|
|
3323
|
+
headers: {
|
|
3324
|
+
[name: string]: unknown;
|
|
3325
|
+
};
|
|
3326
|
+
content: {
|
|
3327
|
+
"application/json": components["schemas"]["Ad"];
|
|
3328
|
+
};
|
|
3329
|
+
};
|
|
3330
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
3331
|
+
400: {
|
|
3332
|
+
headers: {
|
|
3333
|
+
[name: string]: unknown;
|
|
3334
|
+
};
|
|
3335
|
+
content: {
|
|
3336
|
+
"application/json": components["schemas"]["Error"];
|
|
3337
|
+
};
|
|
3338
|
+
};
|
|
3339
|
+
/** @description No API key, or not a valid one */
|
|
3340
|
+
401: {
|
|
3341
|
+
headers: {
|
|
3342
|
+
[name: string]: unknown;
|
|
3343
|
+
};
|
|
3344
|
+
content: {
|
|
3345
|
+
"application/json": components["schemas"]["Error"];
|
|
3346
|
+
};
|
|
3347
|
+
};
|
|
3348
|
+
/** @description No such thing */
|
|
3349
|
+
404: {
|
|
3350
|
+
headers: {
|
|
3351
|
+
[name: string]: unknown;
|
|
3352
|
+
};
|
|
3353
|
+
content: {
|
|
3354
|
+
"application/json": components["schemas"]["Error"];
|
|
3355
|
+
};
|
|
3356
|
+
};
|
|
3357
|
+
/** @description More than 300 requests a minute */
|
|
3358
|
+
429: {
|
|
3359
|
+
headers: {
|
|
3360
|
+
[name: string]: unknown;
|
|
3361
|
+
};
|
|
3362
|
+
content: {
|
|
3363
|
+
"application/json": components["schemas"]["Error"];
|
|
3364
|
+
};
|
|
3365
|
+
};
|
|
3366
|
+
};
|
|
3367
|
+
};
|
|
3368
|
+
getMe: {
|
|
3369
|
+
parameters: {
|
|
3370
|
+
query?: never;
|
|
3371
|
+
header?: never;
|
|
3372
|
+
path?: never;
|
|
3373
|
+
cookie?: never;
|
|
3374
|
+
};
|
|
3375
|
+
requestBody?: never;
|
|
3376
|
+
responses: {
|
|
3377
|
+
/** @description The person */
|
|
3378
|
+
200: {
|
|
3379
|
+
headers: {
|
|
3380
|
+
[name: string]: unknown;
|
|
3381
|
+
};
|
|
3382
|
+
content: {
|
|
3383
|
+
"application/json": components["schemas"]["Person"];
|
|
3384
|
+
};
|
|
3385
|
+
};
|
|
3386
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
3387
|
+
400: {
|
|
3388
|
+
headers: {
|
|
3389
|
+
[name: string]: unknown;
|
|
3390
|
+
};
|
|
3391
|
+
content: {
|
|
3392
|
+
"application/json": components["schemas"]["Error"];
|
|
3393
|
+
};
|
|
3394
|
+
};
|
|
3395
|
+
/** @description No API key, or not a valid one */
|
|
3396
|
+
401: {
|
|
3397
|
+
headers: {
|
|
3398
|
+
[name: string]: unknown;
|
|
3399
|
+
};
|
|
3400
|
+
content: {
|
|
3401
|
+
"application/json": components["schemas"]["Error"];
|
|
3402
|
+
};
|
|
3403
|
+
};
|
|
3404
|
+
/** @description More than 300 requests a minute */
|
|
3405
|
+
429: {
|
|
3406
|
+
headers: {
|
|
3407
|
+
[name: string]: unknown;
|
|
3408
|
+
};
|
|
3409
|
+
content: {
|
|
3410
|
+
"application/json": components["schemas"]["Error"];
|
|
3411
|
+
};
|
|
3412
|
+
};
|
|
3413
|
+
};
|
|
3414
|
+
};
|
|
3415
|
+
createKey: {
|
|
3416
|
+
parameters: {
|
|
3417
|
+
query?: never;
|
|
3418
|
+
header?: never;
|
|
3419
|
+
path?: never;
|
|
3420
|
+
cookie?: never;
|
|
3421
|
+
};
|
|
3422
|
+
requestBody?: {
|
|
3423
|
+
content: {
|
|
3424
|
+
"application/json": {
|
|
3425
|
+
/** @description What the key is for */
|
|
3426
|
+
name?: string;
|
|
3427
|
+
/**
|
|
3428
|
+
* Format: uuid
|
|
3429
|
+
* @description Which organization; needed when you belong to several
|
|
3430
|
+
*/
|
|
3431
|
+
organization?: string;
|
|
3432
|
+
/**
|
|
3433
|
+
* Format: uuid
|
|
3434
|
+
* @description The brand the key works on; the one you last used when left out
|
|
3435
|
+
*/
|
|
3436
|
+
brand?: string;
|
|
3437
|
+
};
|
|
3438
|
+
};
|
|
3439
|
+
};
|
|
3440
|
+
responses: {
|
|
3441
|
+
/** @description The key */
|
|
3442
|
+
201: {
|
|
3443
|
+
headers: {
|
|
3444
|
+
[name: string]: unknown;
|
|
3445
|
+
};
|
|
3446
|
+
content: {
|
|
3447
|
+
"application/json": components["schemas"]["ApiKey"];
|
|
3448
|
+
};
|
|
3449
|
+
};
|
|
3450
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
3451
|
+
400: {
|
|
3452
|
+
headers: {
|
|
3453
|
+
[name: string]: unknown;
|
|
3454
|
+
};
|
|
3455
|
+
content: {
|
|
3456
|
+
"application/json": components["schemas"]["Error"];
|
|
3457
|
+
};
|
|
3458
|
+
};
|
|
3459
|
+
/** @description No API key, or not a valid one */
|
|
3460
|
+
401: {
|
|
3461
|
+
headers: {
|
|
3462
|
+
[name: string]: unknown;
|
|
3463
|
+
};
|
|
3464
|
+
content: {
|
|
3465
|
+
"application/json": components["schemas"]["Error"];
|
|
3466
|
+
};
|
|
3467
|
+
};
|
|
3468
|
+
/** @description The key cannot use that brand */
|
|
3469
|
+
403: {
|
|
3470
|
+
headers: {
|
|
3471
|
+
[name: string]: unknown;
|
|
3472
|
+
};
|
|
3473
|
+
content: {
|
|
3474
|
+
"application/json": components["schemas"]["Error"];
|
|
3475
|
+
};
|
|
3476
|
+
};
|
|
3477
|
+
/** @description The request conflicts with the current state */
|
|
3478
|
+
409: {
|
|
3479
|
+
headers: {
|
|
3480
|
+
[name: string]: unknown;
|
|
3481
|
+
};
|
|
3482
|
+
content: {
|
|
3483
|
+
"application/json": components["schemas"]["Error"];
|
|
3484
|
+
};
|
|
3485
|
+
};
|
|
3486
|
+
/** @description More than 300 requests a minute */
|
|
3487
|
+
429: {
|
|
3488
|
+
headers: {
|
|
3489
|
+
[name: string]: unknown;
|
|
3490
|
+
};
|
|
3491
|
+
content: {
|
|
3492
|
+
"application/json": components["schemas"]["Error"];
|
|
3493
|
+
};
|
|
3494
|
+
};
|
|
3495
|
+
};
|
|
3496
|
+
};
|
|
3497
|
+
getWebhookSecret: {
|
|
3498
|
+
parameters: {
|
|
3499
|
+
query?: never;
|
|
3500
|
+
header?: never;
|
|
3501
|
+
path?: never;
|
|
3502
|
+
cookie?: never;
|
|
3503
|
+
};
|
|
3504
|
+
requestBody?: never;
|
|
3505
|
+
responses: {
|
|
3506
|
+
/** @description The secret */
|
|
3507
|
+
200: {
|
|
3508
|
+
headers: {
|
|
3509
|
+
[name: string]: unknown;
|
|
3510
|
+
};
|
|
3511
|
+
content: {
|
|
3512
|
+
"application/json": components["schemas"]["WebhookSecret"];
|
|
3513
|
+
};
|
|
3514
|
+
};
|
|
3515
|
+
/** @description The request is not valid; `error.param` names the part at fault */
|
|
3516
|
+
400: {
|
|
3517
|
+
headers: {
|
|
3518
|
+
[name: string]: unknown;
|
|
3519
|
+
};
|
|
3520
|
+
content: {
|
|
3521
|
+
"application/json": components["schemas"]["Error"];
|
|
3522
|
+
};
|
|
3523
|
+
};
|
|
3524
|
+
/** @description No API key, or not a valid one */
|
|
3525
|
+
401: {
|
|
3526
|
+
headers: {
|
|
3527
|
+
[name: string]: unknown;
|
|
3528
|
+
};
|
|
3529
|
+
content: {
|
|
3530
|
+
"application/json": components["schemas"]["Error"];
|
|
3531
|
+
};
|
|
3532
|
+
};
|
|
3533
|
+
/** @description More than 300 requests a minute */
|
|
3534
|
+
429: {
|
|
3535
|
+
headers: {
|
|
3536
|
+
[name: string]: unknown;
|
|
3537
|
+
};
|
|
3538
|
+
content: {
|
|
3539
|
+
"application/json": components["schemas"]["Error"];
|
|
3540
|
+
};
|
|
3541
|
+
};
|
|
3542
|
+
};
|
|
3543
|
+
};
|
|
3544
|
+
}
|