@agentutility/mcp-mediakit 0.1.8
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/README.md +123 -0
- package/dist/index.js +86 -0
- package/dist/tools.generated.js +1612 -0
- package/package.json +46 -0
|
@@ -0,0 +1,1612 @@
|
|
|
1
|
+
/** Auto-generated by scripts/generate-mcp-clusters.mjs. Do not edit by hand. */
|
|
2
|
+
export const CLUSTER_SLUG = "mediakit";
|
|
3
|
+
export const VERSION = "0.1.8";
|
|
4
|
+
export const TOOLS = [
|
|
5
|
+
{
|
|
6
|
+
"name": "audio-loudnorm",
|
|
7
|
+
"http_name": "audio-loudnorm",
|
|
8
|
+
"description": "(0.02 USDC/call) Audio loudness normalizer (EBU R128 LUFS). Podcast / Spotify / YouTube target presets (-23 / -16 / -14). Two-pass dynamic mode. Returns hosted MP3.",
|
|
9
|
+
"method": "POST",
|
|
10
|
+
"input_schema": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"audio_url": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Public URL of an audio or video file to normalize. Must be HTTPS-accessible."
|
|
16
|
+
},
|
|
17
|
+
"target_lufs": {
|
|
18
|
+
"type": "number",
|
|
19
|
+
"description": "Target integrated loudness in LUFS. Defaults to -16 (podcast/Spotify standard). Range: -30 to -10. Common targets: -23 (broadcast/EBU R128), -16 (podcast), -14 (YouTube/Apple Music)."
|
|
20
|
+
},
|
|
21
|
+
"true_peak": {
|
|
22
|
+
"type": "number",
|
|
23
|
+
"description": "Maximum true peak in dBTP. Defaults to -1.5. Range: -9 to 0."
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"required": [
|
|
27
|
+
"audio_url"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "audio-transcribe",
|
|
33
|
+
"http_name": "audio-transcribe",
|
|
34
|
+
"description": "(0.01 USDC/call) Audio transcribe / speech-to-text / Whisper-large / multi-language ASR / OpenAI Whisper API compat. Server-side fetches the audio URL (max 25 MB), relays to Venice's audio/transcriptions endpoint with whisper-large-v3, and returns the transcript with detected language, duration, and per-segment timestamps when response_format='verbose_json' (default). Also supports raw text, SRT, and VTT outputs.",
|
|
35
|
+
"method": "POST",
|
|
36
|
+
"input_schema": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"properties": {
|
|
39
|
+
"audio_url": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Public http(s) URL of the audio file (mp3, wav, m4a, ogg, flac, webm). Up to 25 MB."
|
|
42
|
+
},
|
|
43
|
+
"language": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "BCP-47 language hint (e.g. 'en', 'es'). 'auto' or omitted = auto-detect."
|
|
46
|
+
},
|
|
47
|
+
"model": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "Override the model. Default 'openai/whisper-large-v3'."
|
|
50
|
+
},
|
|
51
|
+
"response_format": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"enum": [
|
|
54
|
+
"json",
|
|
55
|
+
"text",
|
|
56
|
+
"verbose_json",
|
|
57
|
+
"srt",
|
|
58
|
+
"vtt"
|
|
59
|
+
],
|
|
60
|
+
"description": "Output format. Default 'verbose_json' (transcript + segments)."
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"required": [
|
|
64
|
+
"audio_url"
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "compress-pdf",
|
|
70
|
+
"http_name": "compress-pdf",
|
|
71
|
+
"description": "(0.005 USDC/call) PDF compressor / PDF size reducer. CloudConvert optimize task. Profiles: web (default), print, archive, mrc (scanned), max. Reports % saved.",
|
|
72
|
+
"method": "POST",
|
|
73
|
+
"input_schema": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"properties": {
|
|
76
|
+
"pdf_url": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"description": "Public URL of the PDF to compress."
|
|
79
|
+
},
|
|
80
|
+
"profile": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"enum": [
|
|
83
|
+
"web",
|
|
84
|
+
"print",
|
|
85
|
+
"archive",
|
|
86
|
+
"mrc",
|
|
87
|
+
"max"
|
|
88
|
+
],
|
|
89
|
+
"description": "'web' (default), 'print', 'archive', 'mrc', 'max'."
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"required": [
|
|
93
|
+
"pdf_url"
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "convert-html-to-markdown",
|
|
99
|
+
"http_name": "convert-html-to-markdown",
|
|
100
|
+
"description": "(0.005 USDC/call) Convert HTML to Markdown. Strips nav, scripts, ads, and other boilerplate. Preserves headings, lists, tables, code blocks, links, and images. Accepts raw HTML or a URL. Returns clean Markdown ideal for LLM context windows or RAG ingestion.",
|
|
101
|
+
"method": "POST",
|
|
102
|
+
"input_schema": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"properties": {
|
|
105
|
+
"html": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"description": "Raw HTML to convert. Mutually exclusive with 'url' — supply one."
|
|
108
|
+
},
|
|
109
|
+
"url": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"description": "Page URL to fetch and convert. Server follows redirects. Mutually exclusive with 'html'."
|
|
112
|
+
},
|
|
113
|
+
"include_links": {
|
|
114
|
+
"type": "boolean",
|
|
115
|
+
"description": "Keep hyperlinks as Markdown [text](href). Default true. Set false for prose-only output."
|
|
116
|
+
},
|
|
117
|
+
"include_images": {
|
|
118
|
+
"type": "boolean",
|
|
119
|
+
"description": "Keep images as Markdown . Default true."
|
|
120
|
+
},
|
|
121
|
+
"user_agent": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"description": "Optional User-Agent header sent when fetching 'url'. Default is a generic browser UA."
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "convert-pdf",
|
|
130
|
+
"http_name": "convert-pdf",
|
|
131
|
+
"description": "(0.20 USDC/call) Convert PDF to Markdown, HTML, JSON, or structured text via Datalab Marker. AI-powered, layout-aware, best-in-class for tables / equations / multi-column docs. For PDF→JPG/PNG see pdf-to-jpg; for PDF merge see pdf-merge; for PDF split see pdf-split; for PDF compression see compress-pdf. 30 pages max.",
|
|
132
|
+
"method": "POST",
|
|
133
|
+
"input_schema": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"pdf_url": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"description": "Public URL of a PDF file."
|
|
139
|
+
},
|
|
140
|
+
"output_format": {
|
|
141
|
+
"type": "string",
|
|
142
|
+
"enum": [
|
|
143
|
+
"markdown",
|
|
144
|
+
"html",
|
|
145
|
+
"json"
|
|
146
|
+
],
|
|
147
|
+
"description": "'markdown' (default), 'html', or 'json'."
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"required": [
|
|
151
|
+
"pdf_url"
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "csv-to-ics",
|
|
157
|
+
"http_name": "csv-to-ics",
|
|
158
|
+
"description": "(0.01 USDC/call) CSV calendar to ICS / iCal file generator. RFC 5545 compliant. Auto-detects column mapping (summary/date/time/location). All-day + timed events. Up to 1000 rows.",
|
|
159
|
+
"method": "POST",
|
|
160
|
+
"input_schema": {
|
|
161
|
+
"type": "object",
|
|
162
|
+
"properties": {
|
|
163
|
+
"csv": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"description": "CSV content as a string. First row must be a header. Max 200,000 chars / 1000 events."
|
|
166
|
+
},
|
|
167
|
+
"columns": {
|
|
168
|
+
"type": "object",
|
|
169
|
+
"description": "Optional explicit column-name mapping with keys: summary, start_date, end_date, start_time, end_time, location, description, url. Each value is the matching CSV header."
|
|
170
|
+
},
|
|
171
|
+
"calendar_name": {
|
|
172
|
+
"type": "string",
|
|
173
|
+
"description": "X-WR-CALNAME for the .ics output. Default 'Imported Events'."
|
|
174
|
+
},
|
|
175
|
+
"default_duration_minutes": {
|
|
176
|
+
"type": "number",
|
|
177
|
+
"description": "Used when only start_time is given. Default 60."
|
|
178
|
+
},
|
|
179
|
+
"delimiter": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"description": "Single-character delimiter. Default ','. Use ';' for European CSVs or '\\t' for TSV."
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"required": [
|
|
185
|
+
"csv"
|
|
186
|
+
]
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"name": "csv-to-jsonl",
|
|
191
|
+
"http_name": "csv-to-jsonl",
|
|
192
|
+
"description": "(0.02 USDC/call) CSV to JSON / CSV to JSONL converter / data pipeline preprocessor. RFC 4180 parser. Type inference (booleans, integers, floats, ISO dates, null). Configurable delimiter, quote, header, rename, drop columns.",
|
|
193
|
+
"method": "POST",
|
|
194
|
+
"input_schema": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"properties": {
|
|
197
|
+
"csv": {
|
|
198
|
+
"type": "string",
|
|
199
|
+
"description": "Raw CSV / TSV text. Up to ~1MB recommended."
|
|
200
|
+
},
|
|
201
|
+
"format": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"enum": [
|
|
204
|
+
"jsonl",
|
|
205
|
+
"json",
|
|
206
|
+
"ndarray"
|
|
207
|
+
],
|
|
208
|
+
"description": "Output shape. 'jsonl' (default, newline-delimited JSON objects), 'json' (single JSON array), 'ndarray' (column-oriented arrays)."
|
|
209
|
+
},
|
|
210
|
+
"delimiter": {
|
|
211
|
+
"type": "string",
|
|
212
|
+
"description": "Field delimiter. Default ','. Use '\\t' for TSV, ';' for European CSV, '|' for pipe-delimited."
|
|
213
|
+
},
|
|
214
|
+
"quote_char": {
|
|
215
|
+
"type": "string",
|
|
216
|
+
"description": "Quote character for fields containing the delimiter or newlines. Default '\"'."
|
|
217
|
+
},
|
|
218
|
+
"has_header": {
|
|
219
|
+
"type": "boolean",
|
|
220
|
+
"description": "Whether the first row is the header. Default true. If false, columns are named c1, c2, ..."
|
|
221
|
+
},
|
|
222
|
+
"rename": {
|
|
223
|
+
"type": "object",
|
|
224
|
+
"description": "Optional column-rename map, e.g. { 'first name': 'first_name', 'DOB': 'date_of_birth' }."
|
|
225
|
+
},
|
|
226
|
+
"drop_columns": {
|
|
227
|
+
"type": "array",
|
|
228
|
+
"description": "Column names to drop from the output."
|
|
229
|
+
},
|
|
230
|
+
"infer_types": {
|
|
231
|
+
"type": "boolean",
|
|
232
|
+
"description": "If true (default), parse booleans, integers, floats, ISO-8601 dates, and null tokens. If false, every value stays a string."
|
|
233
|
+
},
|
|
234
|
+
"null_values": {
|
|
235
|
+
"type": "array",
|
|
236
|
+
"description": "Strings to coerce to JSON null. Default ['', 'null', 'NULL', 'NA', 'N/A']."
|
|
237
|
+
},
|
|
238
|
+
"trim": {
|
|
239
|
+
"type": "boolean",
|
|
240
|
+
"description": "Trim leading/trailing whitespace from each field. Default true."
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"required": [
|
|
244
|
+
"csv"
|
|
245
|
+
]
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"name": "excel-to-csv",
|
|
250
|
+
"http_name": "excel-to-csv",
|
|
251
|
+
"description": "(0.005 USDC/call) Excel (.xlsx / .xls) → CSV / TSV / JSON converter. Multi-sheet handling. Returns each sheet by name. Adjacent to 'convert excel to google sheets' demand cluster.",
|
|
252
|
+
"method": "POST",
|
|
253
|
+
"input_schema": {
|
|
254
|
+
"type": "object",
|
|
255
|
+
"properties": {
|
|
256
|
+
"xlsx_url": {
|
|
257
|
+
"type": "string",
|
|
258
|
+
"description": "Public URL of the .xlsx or .xls workbook to download and convert."
|
|
259
|
+
},
|
|
260
|
+
"sheet": {
|
|
261
|
+
"type": "string",
|
|
262
|
+
"description": "Name of a specific sheet to extract; omit to return the first sheet or all sheets."
|
|
263
|
+
},
|
|
264
|
+
"format": {
|
|
265
|
+
"type": "string",
|
|
266
|
+
"enum": [
|
|
267
|
+
"csv",
|
|
268
|
+
"tsv",
|
|
269
|
+
"json"
|
|
270
|
+
],
|
|
271
|
+
"description": "Output format for sheet data: csv, tsv, or json."
|
|
272
|
+
},
|
|
273
|
+
"include_all_sheets": {
|
|
274
|
+
"type": "boolean",
|
|
275
|
+
"description": "If true, returns every sheet keyed by name instead of just one."
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
"required": [
|
|
279
|
+
"xlsx_url"
|
|
280
|
+
]
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"name": "excel-to-google-sheets",
|
|
285
|
+
"http_name": "excel-to-google-sheets",
|
|
286
|
+
"description": "(0.005 USDC/call) Convert Excel to Google Sheets / XLSX to Google Sheets / spreadsheet import / Numbers to Google Sheets / Excel to gsheet. Outputs CSV that imports directly into Google Sheets via File → Import → Upload (or paste-into-cells). Multi-sheet handling, encoding control, quote style. Same handler as excel-to-csv / xlsx-to-csv under a Google-Sheets-named slug.",
|
|
287
|
+
"method": "POST",
|
|
288
|
+
"input_schema": {
|
|
289
|
+
"type": "object",
|
|
290
|
+
"properties": {
|
|
291
|
+
"xlsx_url": {
|
|
292
|
+
"type": "string",
|
|
293
|
+
"description": "Public URL of the Excel (.xlsx/.xls) or Numbers file to convert to Google-Sheets-ready CSV."
|
|
294
|
+
},
|
|
295
|
+
"sheet": {
|
|
296
|
+
"type": "string",
|
|
297
|
+
"description": "Sheet name or zero-based index to export; defaults to the first sheet when omitted."
|
|
298
|
+
},
|
|
299
|
+
"format": {
|
|
300
|
+
"type": "string",
|
|
301
|
+
"enum": [
|
|
302
|
+
"csv",
|
|
303
|
+
"tsv",
|
|
304
|
+
"json"
|
|
305
|
+
],
|
|
306
|
+
"description": "Output format selector (csv, tsv) controlling delimiter and quoting style for the Google Sheets import."
|
|
307
|
+
},
|
|
308
|
+
"include_all_sheets": {
|
|
309
|
+
"type": "boolean",
|
|
310
|
+
"description": "When true, exports every sheet concatenated or zipped instead of just the selected one."
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"required": [
|
|
314
|
+
"xlsx_url"
|
|
315
|
+
]
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"name": "extract-tables",
|
|
320
|
+
"http_name": "extract-tables",
|
|
321
|
+
"description": "(0.10 USDC/call) Extract tables from PDF / table extractor / PDF to CSV / spreadsheet from PDF. Detects and extracts every table from a PDF document. Returns structured JSON or CSV per table. 30 pages max via Datalab Marker.",
|
|
322
|
+
"method": "POST",
|
|
323
|
+
"input_schema": {
|
|
324
|
+
"type": "object",
|
|
325
|
+
"properties": {
|
|
326
|
+
"pdf_url": {
|
|
327
|
+
"type": "string",
|
|
328
|
+
"description": "Public URL of a PDF file (http or https). Must be directly fetchable, not behind auth or a viewer redirect. Max 30 pages."
|
|
329
|
+
},
|
|
330
|
+
"page_range": {
|
|
331
|
+
"type": "string",
|
|
332
|
+
"description": "Optional 1-indexed page filter applied after extraction. Accepts ranges, single pages, or comma-lists: '1-5', '3', '1,3,5'. Default: all pages."
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
"required": [
|
|
336
|
+
"pdf_url"
|
|
337
|
+
]
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"name": "html-to-markdown",
|
|
342
|
+
"http_name": "html-to-markdown",
|
|
343
|
+
"description": "(0.005 USDC/call) HTML → Markdown converter. Accepts raw HTML or a URL. Strips nav/script/style/ad noise. Preserves headings, lists, tables, code blocks, links, images.",
|
|
344
|
+
"method": "POST",
|
|
345
|
+
"input_schema": {
|
|
346
|
+
"type": "object",
|
|
347
|
+
"properties": {
|
|
348
|
+
"html": {
|
|
349
|
+
"type": "string",
|
|
350
|
+
"description": "Raw HTML to convert. Mutually exclusive with 'url' — supply one."
|
|
351
|
+
},
|
|
352
|
+
"url": {
|
|
353
|
+
"type": "string",
|
|
354
|
+
"description": "Page URL to fetch and convert. Server follows redirects. Mutually exclusive with 'html'."
|
|
355
|
+
},
|
|
356
|
+
"include_links": {
|
|
357
|
+
"type": "boolean",
|
|
358
|
+
"description": "Keep hyperlinks as Markdown [text](href). Default true. Set false for prose-only output."
|
|
359
|
+
},
|
|
360
|
+
"include_images": {
|
|
361
|
+
"type": "boolean",
|
|
362
|
+
"description": "Keep images as Markdown . Default true."
|
|
363
|
+
},
|
|
364
|
+
"user_agent": {
|
|
365
|
+
"type": "string",
|
|
366
|
+
"description": "Optional User-Agent header sent when fetching 'url'. Default is a generic browser UA."
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"name": "html-to-pdf",
|
|
373
|
+
"http_name": "html-to-pdf",
|
|
374
|
+
"description": "(0.08 USDC/call) URL to PDF / HTML to PDF / webpage screenshot to PDF. CloudConvert capture-website. Configurable page size, orientation, margins, wait conditions. Renders JS.",
|
|
375
|
+
"method": "POST",
|
|
376
|
+
"input_schema": {
|
|
377
|
+
"type": "object",
|
|
378
|
+
"properties": {
|
|
379
|
+
"url": {
|
|
380
|
+
"type": "string",
|
|
381
|
+
"description": "Public URL to render."
|
|
382
|
+
},
|
|
383
|
+
"page_format": {
|
|
384
|
+
"type": "string",
|
|
385
|
+
"description": "letter, legal, tabloid, ledger, a0-a6."
|
|
386
|
+
},
|
|
387
|
+
"page_orientation": {
|
|
388
|
+
"type": "string",
|
|
389
|
+
"enum": [
|
|
390
|
+
"portrait",
|
|
391
|
+
"landscape"
|
|
392
|
+
],
|
|
393
|
+
"description": "'portrait' (default) or 'landscape'."
|
|
394
|
+
},
|
|
395
|
+
"margin_top": {
|
|
396
|
+
"type": "number",
|
|
397
|
+
"description": "Inches. 0-5."
|
|
398
|
+
},
|
|
399
|
+
"margin_bottom": {
|
|
400
|
+
"type": "number",
|
|
401
|
+
"description": "Inches. 0-5."
|
|
402
|
+
},
|
|
403
|
+
"print_background": {
|
|
404
|
+
"type": "boolean",
|
|
405
|
+
"description": "Print CSS backgrounds. Default true."
|
|
406
|
+
},
|
|
407
|
+
"wait_until": {
|
|
408
|
+
"type": "string",
|
|
409
|
+
"description": "'load' (default), 'domcontentloaded', 'networkidle0', 'networkidle2'."
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
"required": [
|
|
413
|
+
"url"
|
|
414
|
+
]
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"name": "image-convert",
|
|
419
|
+
"http_name": "image-convert",
|
|
420
|
+
"description": "(0.01 USDC/call) Universal image format converter (PNG, JPG, WEBP, AVIF, GIF, BMP, TIFF, ICO, HEIC, HEIF, PSD, SVG). Optional resize + quality. CloudConvert engine.",
|
|
421
|
+
"method": "POST",
|
|
422
|
+
"input_schema": {
|
|
423
|
+
"type": "object",
|
|
424
|
+
"properties": {
|
|
425
|
+
"image_url": {
|
|
426
|
+
"type": "string",
|
|
427
|
+
"description": "URL of source image. Format inferred from extension."
|
|
428
|
+
},
|
|
429
|
+
"output_format": {
|
|
430
|
+
"type": "string",
|
|
431
|
+
"description": "Target format: png, jpg, webp, avif, gif, bmp, tiff, ico, heic, heif, psd."
|
|
432
|
+
},
|
|
433
|
+
"quality": {
|
|
434
|
+
"type": "number",
|
|
435
|
+
"description": "1-100. Affects jpg/webp/avif."
|
|
436
|
+
},
|
|
437
|
+
"width": {
|
|
438
|
+
"type": "number",
|
|
439
|
+
"description": "Optional resize width (1-16000)."
|
|
440
|
+
},
|
|
441
|
+
"height": {
|
|
442
|
+
"type": "number",
|
|
443
|
+
"description": "Optional resize height (1-16000)."
|
|
444
|
+
},
|
|
445
|
+
"fit": {
|
|
446
|
+
"type": "string",
|
|
447
|
+
"enum": [
|
|
448
|
+
"max",
|
|
449
|
+
"crop",
|
|
450
|
+
"scale"
|
|
451
|
+
],
|
|
452
|
+
"description": "'max' (default), 'crop', or 'scale' when resizing."
|
|
453
|
+
}
|
|
454
|
+
},
|
|
455
|
+
"required": [
|
|
456
|
+
"image_url",
|
|
457
|
+
"output_format"
|
|
458
|
+
]
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"name": "image-format-convert",
|
|
463
|
+
"http_name": "image-format-convert",
|
|
464
|
+
"description": "(0.01 USDC/call) Image converter. Convert any image between PNG, JPG, WEBP, AVIF, GIF, BMP, TIFF, ICO, HEIC, HEIF, PSD, and SVG. Optional resize and quality. CloudConvert engine. Same backend as image-convert under a more search-friendly slug.",
|
|
465
|
+
"method": "POST",
|
|
466
|
+
"input_schema": {
|
|
467
|
+
"type": "object",
|
|
468
|
+
"properties": {
|
|
469
|
+
"image_url": {
|
|
470
|
+
"type": "string",
|
|
471
|
+
"description": "HTTPS URL of the source image to convert; CloudConvert fetches it directly."
|
|
472
|
+
},
|
|
473
|
+
"output_format": {
|
|
474
|
+
"type": "string",
|
|
475
|
+
"description": "Target format: png, jpg, webp, avif, gif, bmp, tiff, ico, heic, heif, psd, or svg."
|
|
476
|
+
},
|
|
477
|
+
"quality": {
|
|
478
|
+
"type": "number",
|
|
479
|
+
"description": "Encoder quality 1-100 for lossy outputs (jpg/webp/avif); ignored for lossless formats."
|
|
480
|
+
},
|
|
481
|
+
"width": {
|
|
482
|
+
"type": "number",
|
|
483
|
+
"description": "Optional target width in pixels; pair with height or omit to preserve aspect ratio."
|
|
484
|
+
},
|
|
485
|
+
"height": {
|
|
486
|
+
"type": "number",
|
|
487
|
+
"description": "Optional target height in pixels; pair with width or omit to preserve aspect ratio."
|
|
488
|
+
},
|
|
489
|
+
"fit": {
|
|
490
|
+
"type": "string",
|
|
491
|
+
"enum": [
|
|
492
|
+
"max",
|
|
493
|
+
"crop",
|
|
494
|
+
"scale"
|
|
495
|
+
],
|
|
496
|
+
"description": "Resize mode when width/height are set: contain, cover, fill, inside, or outside."
|
|
497
|
+
}
|
|
498
|
+
},
|
|
499
|
+
"required": [
|
|
500
|
+
"image_url",
|
|
501
|
+
"output_format"
|
|
502
|
+
]
|
|
503
|
+
}
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"name": "image-translate",
|
|
507
|
+
"http_name": "image-translate",
|
|
508
|
+
"description": "(0.02 USDC/call) Image translator: vision-OCR + Venice translate. Demand-intel: 40 unmet signals for 'how to translate a picture'.",
|
|
509
|
+
"method": "POST",
|
|
510
|
+
"input_schema": {
|
|
511
|
+
"type": "object",
|
|
512
|
+
"properties": {
|
|
513
|
+
"image_url": {
|
|
514
|
+
"type": "string",
|
|
515
|
+
"description": "Public URL of the image containing text to extract and translate."
|
|
516
|
+
},
|
|
517
|
+
"target_language": {
|
|
518
|
+
"type": "string",
|
|
519
|
+
"description": "ISO language code or name to translate the extracted text into (e.g. 'es', 'Japanese')."
|
|
520
|
+
},
|
|
521
|
+
"preserve_layout": {
|
|
522
|
+
"type": "boolean",
|
|
523
|
+
"description": "If true, preserves the original spatial layout of text blocks in the returned translation."
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
"required": [
|
|
527
|
+
"image_url",
|
|
528
|
+
"target_language"
|
|
529
|
+
]
|
|
530
|
+
}
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"name": "image-upscale",
|
|
534
|
+
"http_name": "image-upscale",
|
|
535
|
+
"description": "(0.02 USDC/call) Image upscale / 2x upscaler / 4x upscaler / super-resolution / sharpen image / enlarge image without loss. Upscales an image 2x or 4x via Venice's image/upscale endpoint (default model: venice-sd35). Returns a permanent fal-hosted URL.",
|
|
536
|
+
"method": "POST",
|
|
537
|
+
"input_schema": {
|
|
538
|
+
"type": "object",
|
|
539
|
+
"properties": {
|
|
540
|
+
"image_url": {
|
|
541
|
+
"type": "string",
|
|
542
|
+
"description": "Public http(s) URL of the source image."
|
|
543
|
+
},
|
|
544
|
+
"scale": {
|
|
545
|
+
"type": "number",
|
|
546
|
+
"enum": [
|
|
547
|
+
2,
|
|
548
|
+
4
|
|
549
|
+
],
|
|
550
|
+
"description": "Upscale factor. Default 2."
|
|
551
|
+
},
|
|
552
|
+
"model": {
|
|
553
|
+
"type": "string",
|
|
554
|
+
"description": "Override the upscaler model. Default 'venice-sd35'."
|
|
555
|
+
}
|
|
556
|
+
},
|
|
557
|
+
"required": [
|
|
558
|
+
"image_url"
|
|
559
|
+
]
|
|
560
|
+
}
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
"name": "json-yaml",
|
|
564
|
+
"http_name": "json-yaml",
|
|
565
|
+
"description": "(0.002 USDC/call) JSON ↔ YAML bidirectional converter. Auto-detects input format. Pure parse, no upstream API.",
|
|
566
|
+
"method": "POST",
|
|
567
|
+
"input_schema": {
|
|
568
|
+
"type": "object",
|
|
569
|
+
"properties": {
|
|
570
|
+
"input": {
|
|
571
|
+
"type": "string",
|
|
572
|
+
"description": "JSON or YAML text."
|
|
573
|
+
},
|
|
574
|
+
"to": {
|
|
575
|
+
"type": "string",
|
|
576
|
+
"enum": [
|
|
577
|
+
"json",
|
|
578
|
+
"yaml",
|
|
579
|
+
"auto"
|
|
580
|
+
],
|
|
581
|
+
"description": "Target format. 'auto' converts to the opposite of the detected input. Default 'auto'."
|
|
582
|
+
},
|
|
583
|
+
"pretty": {
|
|
584
|
+
"type": "boolean",
|
|
585
|
+
"description": "Pretty-print JSON output (2-space indent by default). Ignored when target is YAML. Default true."
|
|
586
|
+
},
|
|
587
|
+
"indent": {
|
|
588
|
+
"type": "number",
|
|
589
|
+
"description": "Indent width in spaces (1-8). Default 2."
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
"required": [
|
|
593
|
+
"input"
|
|
594
|
+
]
|
|
595
|
+
}
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"name": "logo-detect",
|
|
599
|
+
"http_name": "logo-detect",
|
|
600
|
+
"description": "(0.03 USDC/call) Brand logo detection / brand recognition in images. Vision LLM. Returns brands with confidence, location, evidence (wordmark/logomark/lockup/color_scheme), element_type. Supports hint_brands.",
|
|
601
|
+
"method": "POST",
|
|
602
|
+
"input_schema": {
|
|
603
|
+
"type": "object",
|
|
604
|
+
"properties": {
|
|
605
|
+
"image_url": {
|
|
606
|
+
"type": "string",
|
|
607
|
+
"description": "URL of the image to scan for brand logos, wordmarks, lockups, or other brand elements."
|
|
608
|
+
},
|
|
609
|
+
"hint_brands": {
|
|
610
|
+
"type": "array",
|
|
611
|
+
"description": "Optional list of brands the caller suspects may be present (max 30)."
|
|
612
|
+
}
|
|
613
|
+
},
|
|
614
|
+
"required": [
|
|
615
|
+
"image_url"
|
|
616
|
+
]
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"name": "merge-pdf",
|
|
621
|
+
"http_name": "merge-pdf",
|
|
622
|
+
"description": "(0.01 USDC/call) PDF merger / combine PDFs / concatenate PDF files / join multiple PDFs into one. 2-50 input PDFs from URLs to single PDF. Preserves bookmarks. CloudConvert engine.",
|
|
623
|
+
"method": "POST",
|
|
624
|
+
"input_schema": {
|
|
625
|
+
"type": "object",
|
|
626
|
+
"properties": {
|
|
627
|
+
"pdf_urls": {
|
|
628
|
+
"type": "array",
|
|
629
|
+
"items": {
|
|
630
|
+
"type": "string"
|
|
631
|
+
},
|
|
632
|
+
"description": "Array of 2-50 HTTPS URLs pointing to source PDF files to merge in the given order."
|
|
633
|
+
},
|
|
634
|
+
"filename": {
|
|
635
|
+
"type": "string",
|
|
636
|
+
"description": "Output filename for the merged PDF (without .pdf extension or with it; defaults if omitted)."
|
|
637
|
+
}
|
|
638
|
+
},
|
|
639
|
+
"required": [
|
|
640
|
+
"pdf_urls"
|
|
641
|
+
]
|
|
642
|
+
}
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
"name": "mp4-to-mp3",
|
|
646
|
+
"http_name": "mp4-to-mp3",
|
|
647
|
+
"description": "(0.10 USDC/call) MP4 → MP3 audio extractor. Any video format (mov, webm, mkv, avi, m4v, flv) → MP3 via CloudConvert. Selectable bitrate (96/128/192 kbps). 60-min / 500MB max.",
|
|
648
|
+
"method": "POST",
|
|
649
|
+
"input_schema": {
|
|
650
|
+
"type": "object",
|
|
651
|
+
"properties": {
|
|
652
|
+
"video_url": {
|
|
653
|
+
"type": "string",
|
|
654
|
+
"description": "Public URL of a video file (mp4, webm, mov, mkv, etc.). Max 60 minutes / 500MB."
|
|
655
|
+
},
|
|
656
|
+
"bitrate": {
|
|
657
|
+
"type": "number",
|
|
658
|
+
"enum": [
|
|
659
|
+
96,
|
|
660
|
+
128,
|
|
661
|
+
192
|
|
662
|
+
],
|
|
663
|
+
"description": "MP3 bitrate in kbps. One of: 96, 128 (default), 192."
|
|
664
|
+
}
|
|
665
|
+
},
|
|
666
|
+
"required": [
|
|
667
|
+
"video_url"
|
|
668
|
+
]
|
|
669
|
+
}
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"name": "ocr",
|
|
673
|
+
"http_name": "ocr",
|
|
674
|
+
"description": "(0.20 USDC/call) OCR / optical character recognition / scanned document extractor / image-PDF to text. Run OCR on scanned PDFs and image-based documents. Datalab Marker engine — preserves layout, tables, math. Returns clean Markdown or plain text. 30 pages max.",
|
|
675
|
+
"method": "POST",
|
|
676
|
+
"input_schema": {
|
|
677
|
+
"type": "object",
|
|
678
|
+
"properties": {
|
|
679
|
+
"pdf_url": {
|
|
680
|
+
"type": "string",
|
|
681
|
+
"description": "Public URL of a PDF file (http or https). Must be directly fetchable, not behind auth or a viewer redirect. Max 30 pages."
|
|
682
|
+
},
|
|
683
|
+
"output_format": {
|
|
684
|
+
"type": "string",
|
|
685
|
+
"enum": [
|
|
686
|
+
"markdown",
|
|
687
|
+
"html",
|
|
688
|
+
"json"
|
|
689
|
+
],
|
|
690
|
+
"description": "'markdown' (default — best for LLM downstream), 'html' (preserves more layout structure), or 'json' (per-page blocks with type + bbox)."
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
"required": [
|
|
694
|
+
"pdf_url"
|
|
695
|
+
]
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
"name": "office-to-pdf",
|
|
700
|
+
"http_name": "office-to-pdf",
|
|
701
|
+
"description": "(0.05 USDC/call) Office to PDF converter — DOCX/DOC, XLSX/XLS, PPTX/PPT, ODT/ODS/ODP, RTF, TXT, CSV, EPUB, MD, HTML, Apple Pages/Numbers/Keynote → PDF. CloudConvert engine.",
|
|
702
|
+
"method": "POST",
|
|
703
|
+
"input_schema": {
|
|
704
|
+
"type": "object",
|
|
705
|
+
"properties": {
|
|
706
|
+
"file_url": {
|
|
707
|
+
"type": "string",
|
|
708
|
+
"description": "URL of the source Office file. Format inferred from extension."
|
|
709
|
+
}
|
|
710
|
+
},
|
|
711
|
+
"required": [
|
|
712
|
+
"file_url"
|
|
713
|
+
]
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
"name": "pdf-compress",
|
|
718
|
+
"http_name": "pdf-compress",
|
|
719
|
+
"description": "(0.005 USDC/call) PDF compressor / shrink PDF / PDF size reducer / smaller PDF for email. Three quality levels: ebook (lowest, web-quality), printer (medium), prepress (highest, archival). CloudConvert engine.",
|
|
720
|
+
"method": "POST",
|
|
721
|
+
"input_schema": {
|
|
722
|
+
"type": "object",
|
|
723
|
+
"properties": {
|
|
724
|
+
"pdf_url": {
|
|
725
|
+
"type": "string",
|
|
726
|
+
"description": "Publicly reachable URL of the source PDF to compress."
|
|
727
|
+
},
|
|
728
|
+
"profile": {
|
|
729
|
+
"type": "string",
|
|
730
|
+
"enum": [
|
|
731
|
+
"web",
|
|
732
|
+
"print",
|
|
733
|
+
"archive",
|
|
734
|
+
"mrc",
|
|
735
|
+
"max"
|
|
736
|
+
],
|
|
737
|
+
"description": "Compression preset: ebook (smallest, web-quality), printer (medium), or prepress (largest, archival)."
|
|
738
|
+
}
|
|
739
|
+
},
|
|
740
|
+
"required": [
|
|
741
|
+
"pdf_url"
|
|
742
|
+
]
|
|
743
|
+
}
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
"name": "pdf-extract-tables",
|
|
747
|
+
"http_name": "pdf-extract-tables",
|
|
748
|
+
"description": "(0.10 USDC/call) PDF table extractor / table from PDF / scanned-table parsing / financial-table OCR / multi-page table consolidator / Datalab Marker tables. AI + OCR pipeline that finds every table in a PDF (digital or scanned) and returns row × column text matrices, page-by-page. Optional cell bounding boxes for downstream layout reconstruction. Optional page_range filter ('1-5', '3', '1,3,5'). Handles merged headers, multi-page financial statements, balance sheets, lab results, scanned reports. 30 pages max. Sibling of pdf-to-markdown using the same Datalab backend, but pre-parsed to tables only.",
|
|
749
|
+
"method": "POST",
|
|
750
|
+
"input_schema": {
|
|
751
|
+
"type": "object",
|
|
752
|
+
"properties": {
|
|
753
|
+
"pdf_url": {
|
|
754
|
+
"type": "string",
|
|
755
|
+
"description": "Public URL of a PDF file (http or https). Must be directly fetchable, not behind auth or a viewer redirect. Max 30 pages."
|
|
756
|
+
},
|
|
757
|
+
"page_range": {
|
|
758
|
+
"type": "string",
|
|
759
|
+
"description": "Optional 1-indexed page filter applied after extraction. Accepts ranges, single pages, or comma-lists: '1-5', '3', '1,3,5'. Default: all pages."
|
|
760
|
+
}
|
|
761
|
+
},
|
|
762
|
+
"required": [
|
|
763
|
+
"pdf_url"
|
|
764
|
+
]
|
|
765
|
+
}
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
"name": "pdf-merge",
|
|
769
|
+
"http_name": "pdf-merge",
|
|
770
|
+
"description": "(0.01 USDC/call) PDF merger / PDF combiner / PDF concatenator. 2-50 PDFs from URLs → single PDF. Preserves bookmarks. CloudConvert engine.",
|
|
771
|
+
"method": "POST",
|
|
772
|
+
"input_schema": {
|
|
773
|
+
"type": "object",
|
|
774
|
+
"properties": {
|
|
775
|
+
"pdf_urls": {
|
|
776
|
+
"type": "array",
|
|
777
|
+
"items": {
|
|
778
|
+
"type": "string"
|
|
779
|
+
},
|
|
780
|
+
"description": "Array of 2-50 PDF URLs in merge order."
|
|
781
|
+
},
|
|
782
|
+
"filename": {
|
|
783
|
+
"type": "string",
|
|
784
|
+
"description": "Output filename (must end in .pdf). Default 'merged.pdf'."
|
|
785
|
+
}
|
|
786
|
+
},
|
|
787
|
+
"required": [
|
|
788
|
+
"pdf_urls"
|
|
789
|
+
]
|
|
790
|
+
}
|
|
791
|
+
},
|
|
792
|
+
{
|
|
793
|
+
"name": "pdf-split",
|
|
794
|
+
"http_name": "pdf-split",
|
|
795
|
+
"description": "(0.04 USDC/call) PDF splitter / PDF page extractor. Two modes: page ranges (['1-3','5','7-end']) or one PDF per source page. CloudConvert engine.",
|
|
796
|
+
"method": "POST",
|
|
797
|
+
"input_schema": {
|
|
798
|
+
"type": "object",
|
|
799
|
+
"properties": {
|
|
800
|
+
"pdf_url": {
|
|
801
|
+
"type": "string",
|
|
802
|
+
"description": "Public URL of the source PDF to split into separate files by page range or one-per-page."
|
|
803
|
+
},
|
|
804
|
+
"ranges": {
|
|
805
|
+
"type": "array",
|
|
806
|
+
"items": {
|
|
807
|
+
"type": "string"
|
|
808
|
+
},
|
|
809
|
+
"description": "Array of page-range strings. Examples: '1', '1-3', '5-end'. Up to 50 ranges."
|
|
810
|
+
},
|
|
811
|
+
"split_each_page": {
|
|
812
|
+
"type": "boolean",
|
|
813
|
+
"description": "If true (and ranges omitted), produces one PDF per source page."
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
"required": [
|
|
817
|
+
"pdf_url"
|
|
818
|
+
]
|
|
819
|
+
}
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
"name": "pdf-to-jpg",
|
|
823
|
+
"http_name": "pdf-to-jpg",
|
|
824
|
+
"description": "(0.10 USDC/call) PDF to JPG / PNG / WEBP image converter. Renders every page at configurable DPI (36-600). Returns one image URL per page. CloudConvert backend.",
|
|
825
|
+
"method": "POST",
|
|
826
|
+
"input_schema": {
|
|
827
|
+
"type": "object",
|
|
828
|
+
"properties": {
|
|
829
|
+
"pdf_url": {
|
|
830
|
+
"type": "string",
|
|
831
|
+
"description": "Public URL of the PDF."
|
|
832
|
+
},
|
|
833
|
+
"format": {
|
|
834
|
+
"type": "string",
|
|
835
|
+
"enum": [
|
|
836
|
+
"jpg",
|
|
837
|
+
"png",
|
|
838
|
+
"webp"
|
|
839
|
+
],
|
|
840
|
+
"description": "'jpg' (default), 'png', or 'webp'."
|
|
841
|
+
},
|
|
842
|
+
"quality": {
|
|
843
|
+
"type": "number",
|
|
844
|
+
"description": "JPG quality 1-100 (default 85). Ignored for png/webp."
|
|
845
|
+
},
|
|
846
|
+
"pixel_density": {
|
|
847
|
+
"type": "number",
|
|
848
|
+
"description": "DPI for rasterization. Default 144. Range 36-600."
|
|
849
|
+
}
|
|
850
|
+
},
|
|
851
|
+
"required": [
|
|
852
|
+
"pdf_url"
|
|
853
|
+
]
|
|
854
|
+
}
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
"name": "pdf-to-markdown",
|
|
858
|
+
"http_name": "pdf-to-markdown",
|
|
859
|
+
"description": "(0.20 USDC/call) AI PDF extractor: PDF to Markdown / HTML / structured JSON via Datalab Marker. OCR + layout-aware. Best-in-class for tables, equations, multi-column docs. 30 pages max.",
|
|
860
|
+
"method": "POST",
|
|
861
|
+
"input_schema": {
|
|
862
|
+
"type": "object",
|
|
863
|
+
"properties": {
|
|
864
|
+
"pdf_url": {
|
|
865
|
+
"type": "string",
|
|
866
|
+
"description": "Public URL of a PDF file. Max 30 pages."
|
|
867
|
+
},
|
|
868
|
+
"output_format": {
|
|
869
|
+
"type": "string",
|
|
870
|
+
"enum": [
|
|
871
|
+
"markdown",
|
|
872
|
+
"html",
|
|
873
|
+
"json"
|
|
874
|
+
],
|
|
875
|
+
"description": "Output format: 'markdown' (default), 'html', or 'json'."
|
|
876
|
+
}
|
|
877
|
+
},
|
|
878
|
+
"required": [
|
|
879
|
+
"pdf_url"
|
|
880
|
+
]
|
|
881
|
+
}
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
"name": "pdf-to-text",
|
|
885
|
+
"http_name": "pdf-to-text",
|
|
886
|
+
"description": "(0.20 USDC/call) PDF to text / extract text from PDF. AI-powered text extraction via Datalab Marker. OCR + layout-aware. Best-in-class for tables, equations, multi-column layouts. Outputs plain text or structured markdown. 30 pages max.",
|
|
887
|
+
"method": "POST",
|
|
888
|
+
"input_schema": {
|
|
889
|
+
"type": "object",
|
|
890
|
+
"properties": {
|
|
891
|
+
"pdf_url": {
|
|
892
|
+
"type": "string",
|
|
893
|
+
"description": "Public URL of a PDF file."
|
|
894
|
+
},
|
|
895
|
+
"output_format": {
|
|
896
|
+
"type": "string",
|
|
897
|
+
"enum": [
|
|
898
|
+
"markdown",
|
|
899
|
+
"html",
|
|
900
|
+
"json"
|
|
901
|
+
],
|
|
902
|
+
"description": "'markdown' (default), 'html', or 'json'."
|
|
903
|
+
}
|
|
904
|
+
},
|
|
905
|
+
"required": [
|
|
906
|
+
"pdf_url"
|
|
907
|
+
]
|
|
908
|
+
}
|
|
909
|
+
},
|
|
910
|
+
{
|
|
911
|
+
"name": "pdf-watermark",
|
|
912
|
+
"http_name": "pdf-watermark",
|
|
913
|
+
"description": "(0.02 USDC/call) PDF watermark / image watermark / video watermark — text or image overlay on PDFs, PNG/JPG/GIF, or MP4/MOV/WEBM. Configurable position, opacity, font, rotation, margin. CloudConvert engine.",
|
|
914
|
+
"method": "POST",
|
|
915
|
+
"input_schema": {
|
|
916
|
+
"type": "object",
|
|
917
|
+
"properties": {
|
|
918
|
+
"file_url": {
|
|
919
|
+
"type": "string",
|
|
920
|
+
"description": "URL of the source PDF, image (PNG/JPG/GIF), or video (MP4/MOV/WEBM) to watermark."
|
|
921
|
+
},
|
|
922
|
+
"text": {
|
|
923
|
+
"type": "string",
|
|
924
|
+
"description": "Text string to overlay as the watermark; omit if using image_url instead."
|
|
925
|
+
},
|
|
926
|
+
"image_url": {
|
|
927
|
+
"type": "string",
|
|
928
|
+
"description": "URL of an image to overlay as the watermark; omit if using text instead."
|
|
929
|
+
},
|
|
930
|
+
"font_size": {
|
|
931
|
+
"type": "number",
|
|
932
|
+
"description": "Point size for text watermarks; ignored when overlaying an image."
|
|
933
|
+
},
|
|
934
|
+
"font_color": {
|
|
935
|
+
"type": "string",
|
|
936
|
+
"description": "Hex or named color for text watermarks (e.g. #FF0000 or red)."
|
|
937
|
+
},
|
|
938
|
+
"opacity": {
|
|
939
|
+
"type": "number",
|
|
940
|
+
"description": "Watermark transparency from 0 (invisible) to 1 (fully opaque)."
|
|
941
|
+
},
|
|
942
|
+
"rotation": {
|
|
943
|
+
"type": "number",
|
|
944
|
+
"description": "Rotation angle in degrees applied to the watermark overlay."
|
|
945
|
+
},
|
|
946
|
+
"position_vertical": {
|
|
947
|
+
"type": "string",
|
|
948
|
+
"enum": [
|
|
949
|
+
"top",
|
|
950
|
+
"center",
|
|
951
|
+
"bottom"
|
|
952
|
+
],
|
|
953
|
+
"description": "Vertical placement: top, center, or bottom."
|
|
954
|
+
},
|
|
955
|
+
"position_horizontal": {
|
|
956
|
+
"type": "string",
|
|
957
|
+
"enum": [
|
|
958
|
+
"left",
|
|
959
|
+
"center",
|
|
960
|
+
"right"
|
|
961
|
+
],
|
|
962
|
+
"description": "Horizontal placement: left, center, or right."
|
|
963
|
+
}
|
|
964
|
+
},
|
|
965
|
+
"required": [
|
|
966
|
+
"file_url"
|
|
967
|
+
]
|
|
968
|
+
}
|
|
969
|
+
},
|
|
970
|
+
{
|
|
971
|
+
"name": "pdf2md",
|
|
972
|
+
"http_name": "pdf2md",
|
|
973
|
+
"description": "(0.20 USDC/call) PDF to Markdown converter. AI PDF extractor. Datalab Marker — OCR + layout-aware. Best-in-class for tables, equations, multi-column.",
|
|
974
|
+
"method": "POST",
|
|
975
|
+
"input_schema": {
|
|
976
|
+
"type": "object",
|
|
977
|
+
"properties": {
|
|
978
|
+
"pdf_url": {
|
|
979
|
+
"type": "string",
|
|
980
|
+
"description": "Public URL of a PDF file. Max 30 pages."
|
|
981
|
+
},
|
|
982
|
+
"output_format": {
|
|
983
|
+
"type": "string",
|
|
984
|
+
"description": "Output format: 'markdown' (default), 'html', or 'json'."
|
|
985
|
+
}
|
|
986
|
+
},
|
|
987
|
+
"required": [
|
|
988
|
+
"pdf_url"
|
|
989
|
+
]
|
|
990
|
+
}
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
"name": "receipt-ocr",
|
|
994
|
+
"http_name": "receipt-ocr",
|
|
995
|
+
"description": "(0.01 USDC/call) Receipt OCR. Reads any receipt photo and returns a structured JSON object with vendor, address, date, line items (qty / unit_price / total), subtotal, tax, tip, total, and payment method. Vision-LLM powered. Same backend as receipt-parser under a clearer slug for expense + accounting + reimbursement workflows.",
|
|
996
|
+
"method": "POST",
|
|
997
|
+
"input_schema": {
|
|
998
|
+
"type": "object",
|
|
999
|
+
"properties": {
|
|
1000
|
+
"image_url": {
|
|
1001
|
+
"type": "string",
|
|
1002
|
+
"description": "Public URL of the receipt photo to parse (JPEG, PNG, or HEIC)."
|
|
1003
|
+
},
|
|
1004
|
+
"currency_hint": {
|
|
1005
|
+
"type": "string",
|
|
1006
|
+
"description": "Optional ISO currency code (e.g. USD, EUR) to disambiguate amounts when the receipt is unclear."
|
|
1007
|
+
}
|
|
1008
|
+
},
|
|
1009
|
+
"required": [
|
|
1010
|
+
"image_url"
|
|
1011
|
+
]
|
|
1012
|
+
}
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
"name": "receipt-parser",
|
|
1016
|
+
"http_name": "receipt-parser",
|
|
1017
|
+
"description": "(0.01 USDC/call) Receipt → structured JSON (vendor, address, date, line items with qty/unit_price/total, subtotal, tax, tip, total, payment method). Vision LLM only.",
|
|
1018
|
+
"method": "POST",
|
|
1019
|
+
"input_schema": {
|
|
1020
|
+
"type": "object",
|
|
1021
|
+
"properties": {
|
|
1022
|
+
"image_url": {
|
|
1023
|
+
"type": "string",
|
|
1024
|
+
"description": "Public URL of the receipt image (JPEG/PNG) to parse via vision LLM."
|
|
1025
|
+
},
|
|
1026
|
+
"currency_hint": {
|
|
1027
|
+
"type": "string",
|
|
1028
|
+
"description": "Optional ISO currency code (e.g., USD, EUR) to disambiguate amounts when the receipt is unclear."
|
|
1029
|
+
}
|
|
1030
|
+
},
|
|
1031
|
+
"required": [
|
|
1032
|
+
"image_url"
|
|
1033
|
+
]
|
|
1034
|
+
}
|
|
1035
|
+
},
|
|
1036
|
+
{
|
|
1037
|
+
"name": "speaker-diarize",
|
|
1038
|
+
"http_name": "speaker-diarize",
|
|
1039
|
+
"description": "(0.10 USDC/call) Speaker diarization / who-said-what transcription. Whisper v3 + speaker labels. Returns utterances grouped by speaker, plus per-speaker stats (count, seconds, words). 60 min max.",
|
|
1040
|
+
"method": "POST",
|
|
1041
|
+
"input_schema": {
|
|
1042
|
+
"type": "object",
|
|
1043
|
+
"properties": {
|
|
1044
|
+
"media_url": {
|
|
1045
|
+
"type": "string",
|
|
1046
|
+
"description": "Public URL to the audio or video file to transcribe and diarize (mp3, mp4, wav, m4a, etc., up to 60 min)."
|
|
1047
|
+
},
|
|
1048
|
+
"language": {
|
|
1049
|
+
"type": "string",
|
|
1050
|
+
"description": "Optional ISO-639-1 language hint (e.g. 'en', 'es'); omit to auto-detect from the audio."
|
|
1051
|
+
},
|
|
1052
|
+
"num_speakers": {
|
|
1053
|
+
"type": "number",
|
|
1054
|
+
"description": "1-20 hint. Auto-detected if omitted."
|
|
1055
|
+
}
|
|
1056
|
+
},
|
|
1057
|
+
"required": [
|
|
1058
|
+
"media_url"
|
|
1059
|
+
]
|
|
1060
|
+
}
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"name": "split-pdf",
|
|
1064
|
+
"http_name": "split-pdf",
|
|
1065
|
+
"description": "(0.04 USDC/call) PDF splitter / PDF page extractor / split PDF by range / PDF to multiple files. Split a PDF by page ranges into multiple PDFs. CloudConvert engine.",
|
|
1066
|
+
"method": "POST",
|
|
1067
|
+
"input_schema": {
|
|
1068
|
+
"type": "object",
|
|
1069
|
+
"properties": {
|
|
1070
|
+
"pdf_url": {
|
|
1071
|
+
"type": "string",
|
|
1072
|
+
"description": "HTTPS URL of the source PDF to split into multiple files."
|
|
1073
|
+
},
|
|
1074
|
+
"ranges": {
|
|
1075
|
+
"type": "array",
|
|
1076
|
+
"items": {
|
|
1077
|
+
"type": "string"
|
|
1078
|
+
},
|
|
1079
|
+
"description": "Array of page range strings like '1-3' or '5,7-9' defining each output PDF's pages."
|
|
1080
|
+
},
|
|
1081
|
+
"split_each_page": {
|
|
1082
|
+
"type": "boolean",
|
|
1083
|
+
"description": "If true, splits the PDF so every page becomes its own separate PDF file."
|
|
1084
|
+
}
|
|
1085
|
+
},
|
|
1086
|
+
"required": [
|
|
1087
|
+
"pdf_url"
|
|
1088
|
+
]
|
|
1089
|
+
}
|
|
1090
|
+
},
|
|
1091
|
+
{
|
|
1092
|
+
"name": "subtitles",
|
|
1093
|
+
"http_name": "subtitles",
|
|
1094
|
+
"description": "(0.08 USDC/call) SRT / VTT subtitle generator from video or audio. Whisper v3. Word-wrapped, ready for VLC / Premiere / FFmpeg.",
|
|
1095
|
+
"method": "POST",
|
|
1096
|
+
"input_schema": {
|
|
1097
|
+
"type": "object",
|
|
1098
|
+
"properties": {
|
|
1099
|
+
"media_url": {
|
|
1100
|
+
"type": "string",
|
|
1101
|
+
"description": "Public URL of an audio or video file. mp3, mp4, mpeg, mpga, m4a, wav, webm. Max 60 minutes."
|
|
1102
|
+
},
|
|
1103
|
+
"format": {
|
|
1104
|
+
"type": "string",
|
|
1105
|
+
"description": "'srt' (default) or 'vtt'."
|
|
1106
|
+
},
|
|
1107
|
+
"language": {
|
|
1108
|
+
"type": "string",
|
|
1109
|
+
"description": "Optional ISO language code. Auto-detected if omitted."
|
|
1110
|
+
},
|
|
1111
|
+
"task": {
|
|
1112
|
+
"type": "string",
|
|
1113
|
+
"description": "'transcribe' (default) or 'translate' (translates to English)."
|
|
1114
|
+
},
|
|
1115
|
+
"max_chars_per_line": {
|
|
1116
|
+
"type": "number",
|
|
1117
|
+
"description": "Max characters per subtitle line. Default 42. Range 16-120."
|
|
1118
|
+
}
|
|
1119
|
+
},
|
|
1120
|
+
"required": [
|
|
1121
|
+
"media_url"
|
|
1122
|
+
]
|
|
1123
|
+
}
|
|
1124
|
+
},
|
|
1125
|
+
{
|
|
1126
|
+
"name": "transcribe",
|
|
1127
|
+
"http_name": "transcribe",
|
|
1128
|
+
"description": "(0.10 USDC/call) Video / audio transcription via Whisper v3. 90+ languages, translate-to-English mode, optional speaker diarization. 60-min max.",
|
|
1129
|
+
"method": "POST",
|
|
1130
|
+
"input_schema": {
|
|
1131
|
+
"type": "object",
|
|
1132
|
+
"properties": {
|
|
1133
|
+
"media_url": {
|
|
1134
|
+
"type": "string",
|
|
1135
|
+
"description": "Public URL of an audio or video file. Supports mp3, mp4, mpeg, mpga, m4a, wav, webm. Max 60 minutes."
|
|
1136
|
+
},
|
|
1137
|
+
"language": {
|
|
1138
|
+
"type": "string",
|
|
1139
|
+
"description": "Optional ISO language code (e.g. 'en', 'fr', 'es'). If omitted, auto-detected."
|
|
1140
|
+
},
|
|
1141
|
+
"task": {
|
|
1142
|
+
"type": "string",
|
|
1143
|
+
"description": "Either 'transcribe' (default) or 'translate' (translates to English)."
|
|
1144
|
+
},
|
|
1145
|
+
"diarize": {
|
|
1146
|
+
"type": "boolean",
|
|
1147
|
+
"description": "Whether to identify different speakers. Default false."
|
|
1148
|
+
}
|
|
1149
|
+
},
|
|
1150
|
+
"required": [
|
|
1151
|
+
"media_url"
|
|
1152
|
+
]
|
|
1153
|
+
}
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
"name": "upscale-image",
|
|
1157
|
+
"http_name": "upscale-image",
|
|
1158
|
+
"description": "(0.10 USDC/call) AI image upscaler / super-resolution / image enlarger. ESRGAN. 1-8× scale factor. Best for photos and illustrations. fal.ai backend.",
|
|
1159
|
+
"method": "POST",
|
|
1160
|
+
"input_schema": {
|
|
1161
|
+
"type": "object",
|
|
1162
|
+
"properties": {
|
|
1163
|
+
"image_url": {
|
|
1164
|
+
"type": "string",
|
|
1165
|
+
"description": "URL of the source image to upscale; must be publicly reachable for the fal.ai ESRGAN backend to fetch."
|
|
1166
|
+
},
|
|
1167
|
+
"scale": {
|
|
1168
|
+
"type": "number",
|
|
1169
|
+
"minimum": 1,
|
|
1170
|
+
"maximum": 8,
|
|
1171
|
+
"description": "1-8. Default 2."
|
|
1172
|
+
}
|
|
1173
|
+
},
|
|
1174
|
+
"required": [
|
|
1175
|
+
"image_url"
|
|
1176
|
+
]
|
|
1177
|
+
}
|
|
1178
|
+
},
|
|
1179
|
+
{
|
|
1180
|
+
"name": "video-summarize",
|
|
1181
|
+
"http_name": "video-summarize",
|
|
1182
|
+
"description": "(0.10 USDC/call) Video summarizer / podcast summarizer / lecture notes generator. One call: Whisper v3 transcribes + Mistral summarizes. 5 styles: tldr, bullets, paragraph, executive, chapters. Returns summary + transcript. 60 min max.",
|
|
1183
|
+
"method": "POST",
|
|
1184
|
+
"input_schema": {
|
|
1185
|
+
"type": "object",
|
|
1186
|
+
"properties": {
|
|
1187
|
+
"media_url": {
|
|
1188
|
+
"type": "string",
|
|
1189
|
+
"description": "Public URL of the video or podcast audio file to transcribe and summarize (60 minute max length)."
|
|
1190
|
+
},
|
|
1191
|
+
"style": {
|
|
1192
|
+
"type": "string",
|
|
1193
|
+
"enum": [
|
|
1194
|
+
"tldr",
|
|
1195
|
+
"bullets",
|
|
1196
|
+
"paragraph",
|
|
1197
|
+
"executive",
|
|
1198
|
+
"chapters"
|
|
1199
|
+
],
|
|
1200
|
+
"description": "Summary format: tldr, bullets, paragraph, executive, or chapters."
|
|
1201
|
+
},
|
|
1202
|
+
"max_words": {
|
|
1203
|
+
"type": "number",
|
|
1204
|
+
"description": "Target word count cap for the generated summary."
|
|
1205
|
+
},
|
|
1206
|
+
"language": {
|
|
1207
|
+
"type": "string",
|
|
1208
|
+
"description": "ISO language code hint for Whisper transcription; auto-detected if omitted."
|
|
1209
|
+
}
|
|
1210
|
+
},
|
|
1211
|
+
"required": [
|
|
1212
|
+
"media_url"
|
|
1213
|
+
]
|
|
1214
|
+
}
|
|
1215
|
+
},
|
|
1216
|
+
{
|
|
1217
|
+
"name": "video-thumbnail",
|
|
1218
|
+
"http_name": "video-thumbnail",
|
|
1219
|
+
"description": "(0.03 USDC/call) Video thumbnail / video frame extractor. First, middle, or last frame as JPG. fal.ai ffmpeg. Fast — no full transcode.",
|
|
1220
|
+
"method": "POST",
|
|
1221
|
+
"input_schema": {
|
|
1222
|
+
"type": "object",
|
|
1223
|
+
"properties": {
|
|
1224
|
+
"video_url": {
|
|
1225
|
+
"type": "string",
|
|
1226
|
+
"description": "Public URL of a video file."
|
|
1227
|
+
},
|
|
1228
|
+
"frame_type": {
|
|
1229
|
+
"type": "string",
|
|
1230
|
+
"enum": [
|
|
1231
|
+
"first",
|
|
1232
|
+
"middle",
|
|
1233
|
+
"last"
|
|
1234
|
+
],
|
|
1235
|
+
"description": "'first' (default), 'middle', or 'last'."
|
|
1236
|
+
}
|
|
1237
|
+
},
|
|
1238
|
+
"required": [
|
|
1239
|
+
"video_url"
|
|
1240
|
+
]
|
|
1241
|
+
}
|
|
1242
|
+
},
|
|
1243
|
+
{
|
|
1244
|
+
"name": "video-to-audio",
|
|
1245
|
+
"http_name": "video-to-audio",
|
|
1246
|
+
"description": "(0.10 USDC/call) Video → audio extractor / video to audio converter. Extract MP3 audio track from any video URL (MP4, MOV, WEBM, MKV, AVI, M4V, FLV). Selectable bitrate (96/128/192 kbps). Useful for podcast extraction, audio archival, transcription pre-processing. 60-min / 500MB max. CloudConvert backend.",
|
|
1247
|
+
"method": "POST",
|
|
1248
|
+
"input_schema": {
|
|
1249
|
+
"type": "object",
|
|
1250
|
+
"properties": {
|
|
1251
|
+
"video_url": {
|
|
1252
|
+
"type": "string",
|
|
1253
|
+
"description": "Public URL of the source video. Max 500MB / 60 minutes."
|
|
1254
|
+
},
|
|
1255
|
+
"bitrate": {
|
|
1256
|
+
"type": "number",
|
|
1257
|
+
"enum": [
|
|
1258
|
+
96,
|
|
1259
|
+
128,
|
|
1260
|
+
192
|
|
1261
|
+
],
|
|
1262
|
+
"description": "Output MP3 bitrate in kbps. 96 (smaller, voice), 128 (default, balanced), 192 (higher quality)."
|
|
1263
|
+
}
|
|
1264
|
+
},
|
|
1265
|
+
"required": [
|
|
1266
|
+
"video_url"
|
|
1267
|
+
]
|
|
1268
|
+
}
|
|
1269
|
+
},
|
|
1270
|
+
{
|
|
1271
|
+
"name": "video-to-subtitles",
|
|
1272
|
+
"http_name": "video-to-subtitles",
|
|
1273
|
+
"description": "(0.02 USDC/call) SRT / VTT subtitle generator from video or audio. Whisper v3 powered. Word-wrapped, ready for VLC / Premiere / FFmpeg. Auto-detect language + translate-to-English.",
|
|
1274
|
+
"method": "POST",
|
|
1275
|
+
"input_schema": {
|
|
1276
|
+
"type": "object",
|
|
1277
|
+
"properties": {
|
|
1278
|
+
"media_url": {
|
|
1279
|
+
"type": "string",
|
|
1280
|
+
"description": "Public URL of an audio or video file. mp3, mp4, mpeg, mpga, m4a, wav, webm. Max 60 minutes."
|
|
1281
|
+
},
|
|
1282
|
+
"format": {
|
|
1283
|
+
"type": "string",
|
|
1284
|
+
"enum": [
|
|
1285
|
+
"srt",
|
|
1286
|
+
"vtt"
|
|
1287
|
+
],
|
|
1288
|
+
"description": "'srt' (default) or 'vtt'."
|
|
1289
|
+
},
|
|
1290
|
+
"language": {
|
|
1291
|
+
"type": "string",
|
|
1292
|
+
"description": "Optional ISO language code. Auto-detected if omitted."
|
|
1293
|
+
},
|
|
1294
|
+
"task": {
|
|
1295
|
+
"type": "string",
|
|
1296
|
+
"enum": [
|
|
1297
|
+
"transcribe",
|
|
1298
|
+
"translate"
|
|
1299
|
+
],
|
|
1300
|
+
"description": "'transcribe' (default) or 'translate' (translates to English)."
|
|
1301
|
+
},
|
|
1302
|
+
"max_chars_per_line": {
|
|
1303
|
+
"type": "number",
|
|
1304
|
+
"description": "Max characters per subtitle line. Default 42. Range 16-120."
|
|
1305
|
+
}
|
|
1306
|
+
},
|
|
1307
|
+
"required": [
|
|
1308
|
+
"media_url"
|
|
1309
|
+
]
|
|
1310
|
+
}
|
|
1311
|
+
},
|
|
1312
|
+
{
|
|
1313
|
+
"name": "video-to-text",
|
|
1314
|
+
"http_name": "video-to-text",
|
|
1315
|
+
"description": "(0.10 USDC/call) Video transcription / audio transcription via Whisper v3 large. Auto-detects 90+ languages. Translate-to-English mode. Speaker diarization optional. 60 min max.",
|
|
1316
|
+
"method": "POST",
|
|
1317
|
+
"input_schema": {
|
|
1318
|
+
"type": "object",
|
|
1319
|
+
"properties": {
|
|
1320
|
+
"media_url": {
|
|
1321
|
+
"type": "string",
|
|
1322
|
+
"description": "Public URL of an audio or video file. Supports mp3, mp4, mpeg, mpga, m4a, wav, webm. Max 60 minutes."
|
|
1323
|
+
},
|
|
1324
|
+
"language": {
|
|
1325
|
+
"type": "string",
|
|
1326
|
+
"description": "Optional ISO language code (e.g. 'en', 'fr', 'es'). If omitted, auto-detected."
|
|
1327
|
+
},
|
|
1328
|
+
"task": {
|
|
1329
|
+
"type": "string",
|
|
1330
|
+
"enum": [
|
|
1331
|
+
"transcribe",
|
|
1332
|
+
"translate"
|
|
1333
|
+
],
|
|
1334
|
+
"description": "Either 'transcribe' (default) or 'translate' (translates to English)."
|
|
1335
|
+
},
|
|
1336
|
+
"diarize": {
|
|
1337
|
+
"type": "boolean",
|
|
1338
|
+
"description": "Whether to identify different speakers. Default false."
|
|
1339
|
+
}
|
|
1340
|
+
},
|
|
1341
|
+
"required": [
|
|
1342
|
+
"media_url"
|
|
1343
|
+
]
|
|
1344
|
+
}
|
|
1345
|
+
},
|
|
1346
|
+
{
|
|
1347
|
+
"name": "video-transcribe",
|
|
1348
|
+
"http_name": "video-transcribe",
|
|
1349
|
+
"description": "(0.10 USDC/call) Transcribe video / video transcription / video to audio transcription / video-to-text. Whisper v3 large transcription for any video URL. Auto-detects 90+ languages. Translate-to-English mode. 60-min / 500MB max. Speaker diarization optional. Same backend as video-to-text under a clearer slug.",
|
|
1350
|
+
"method": "POST",
|
|
1351
|
+
"input_schema": {
|
|
1352
|
+
"type": "object",
|
|
1353
|
+
"properties": {
|
|
1354
|
+
"media_url": {
|
|
1355
|
+
"type": "string",
|
|
1356
|
+
"description": "Public URL of an audio or video file. Supports mp3, mp4, mpeg, mpga, m4a, wav, webm. Max 60 minutes."
|
|
1357
|
+
},
|
|
1358
|
+
"language": {
|
|
1359
|
+
"type": "string",
|
|
1360
|
+
"description": "Optional ISO language code (e.g. 'en', 'fr', 'es'). If omitted, auto-detected."
|
|
1361
|
+
},
|
|
1362
|
+
"task": {
|
|
1363
|
+
"type": "string",
|
|
1364
|
+
"enum": [
|
|
1365
|
+
"transcribe",
|
|
1366
|
+
"translate"
|
|
1367
|
+
],
|
|
1368
|
+
"description": "Either 'transcribe' (default) or 'translate' (translates to English)."
|
|
1369
|
+
},
|
|
1370
|
+
"diarize": {
|
|
1371
|
+
"type": "boolean",
|
|
1372
|
+
"description": "Whether to identify different speakers. Default false."
|
|
1373
|
+
}
|
|
1374
|
+
},
|
|
1375
|
+
"required": [
|
|
1376
|
+
"media_url"
|
|
1377
|
+
]
|
|
1378
|
+
}
|
|
1379
|
+
},
|
|
1380
|
+
{
|
|
1381
|
+
"name": "video-trim",
|
|
1382
|
+
"http_name": "video-trim",
|
|
1383
|
+
"description": "(0.02 USDC/call) Video trimmer / video cutter / video clip tool. Pass start + end OR start + duration. HH:MM:SS, MM:SS, or seconds. CloudConvert + x264 re-encode.",
|
|
1384
|
+
"method": "POST",
|
|
1385
|
+
"input_schema": {
|
|
1386
|
+
"type": "object",
|
|
1387
|
+
"properties": {
|
|
1388
|
+
"video_url": {
|
|
1389
|
+
"type": "string",
|
|
1390
|
+
"description": "Public URL of a video file."
|
|
1391
|
+
},
|
|
1392
|
+
"trim_start": {
|
|
1393
|
+
"description": "Start time. HH:MM:SS, MM:SS, or seconds."
|
|
1394
|
+
},
|
|
1395
|
+
"trim_end": {
|
|
1396
|
+
"description": "End time. HH:MM:SS, MM:SS, or seconds. Use this OR duration."
|
|
1397
|
+
},
|
|
1398
|
+
"duration": {
|
|
1399
|
+
"description": "Length to keep from trim_start. HH:MM:SS, MM:SS, or seconds."
|
|
1400
|
+
},
|
|
1401
|
+
"output_format": {
|
|
1402
|
+
"type": "string",
|
|
1403
|
+
"description": "Output format. Default: same as input."
|
|
1404
|
+
}
|
|
1405
|
+
},
|
|
1406
|
+
"required": [
|
|
1407
|
+
"video_url",
|
|
1408
|
+
"trim_start"
|
|
1409
|
+
]
|
|
1410
|
+
}
|
|
1411
|
+
},
|
|
1412
|
+
{
|
|
1413
|
+
"name": "watermark",
|
|
1414
|
+
"http_name": "watermark",
|
|
1415
|
+
"description": "(0.02 USDC/call) PDF / image / video watermarking — text or image overlay. CloudConvert engine. Configurable position, opacity, font, rotation, margin. Works on PDFs, PNG/JPG/GIF, MP4/MOV/WEBM.",
|
|
1416
|
+
"method": "POST",
|
|
1417
|
+
"input_schema": {
|
|
1418
|
+
"type": "object",
|
|
1419
|
+
"properties": {
|
|
1420
|
+
"file_url": {
|
|
1421
|
+
"type": "string",
|
|
1422
|
+
"description": "Public URL of the input file (PDF, PNG, JPG, GIF, BMP, TIFF, WEBP, MP4, MOV, WEBM, MKV, AVI, etc.). The URL extension is used to detect format."
|
|
1423
|
+
},
|
|
1424
|
+
"text": {
|
|
1425
|
+
"type": "string",
|
|
1426
|
+
"description": "Watermark text. Provide either text OR image_url (not both)."
|
|
1427
|
+
},
|
|
1428
|
+
"image_url": {
|
|
1429
|
+
"type": "string",
|
|
1430
|
+
"description": "Public URL of an image to use as the watermark (use a transparent PNG)."
|
|
1431
|
+
},
|
|
1432
|
+
"font_size": {
|
|
1433
|
+
"type": "number",
|
|
1434
|
+
"description": "Font size in points (text watermark). Default 40. Range 6-400."
|
|
1435
|
+
},
|
|
1436
|
+
"font_color": {
|
|
1437
|
+
"type": "string",
|
|
1438
|
+
"description": "Font color as 6-digit hex (e.g. '#FF0000'). Default '#000000'."
|
|
1439
|
+
},
|
|
1440
|
+
"opacity": {
|
|
1441
|
+
"type": "number",
|
|
1442
|
+
"description": "Opacity 0-100. 100 = fully visible."
|
|
1443
|
+
},
|
|
1444
|
+
"rotation": {
|
|
1445
|
+
"type": "number",
|
|
1446
|
+
"description": "Rotation in degrees (-360 to 360)."
|
|
1447
|
+
},
|
|
1448
|
+
"position_vertical": {
|
|
1449
|
+
"type": "string",
|
|
1450
|
+
"enum": [
|
|
1451
|
+
"top",
|
|
1452
|
+
"center",
|
|
1453
|
+
"bottom"
|
|
1454
|
+
],
|
|
1455
|
+
"description": "'top', 'center' (default), or 'bottom'."
|
|
1456
|
+
},
|
|
1457
|
+
"position_horizontal": {
|
|
1458
|
+
"type": "string",
|
|
1459
|
+
"enum": [
|
|
1460
|
+
"left",
|
|
1461
|
+
"center",
|
|
1462
|
+
"right"
|
|
1463
|
+
],
|
|
1464
|
+
"description": "'left', 'center' (default), or 'right'."
|
|
1465
|
+
}
|
|
1466
|
+
},
|
|
1467
|
+
"required": [
|
|
1468
|
+
"file_url"
|
|
1469
|
+
]
|
|
1470
|
+
}
|
|
1471
|
+
},
|
|
1472
|
+
{
|
|
1473
|
+
"name": "watermark-pdf",
|
|
1474
|
+
"http_name": "watermark-pdf",
|
|
1475
|
+
"description": "(0.02 USDC/call) Add watermark to PDF. Text or image overlay on PDFs, PNG / JPG / GIF, or MP4 / MOV / WEBM with configurable position, opacity, font, rotation, and margin. Same backend as watermark / pdf-watermark under a clearer search slug. CloudConvert engine.",
|
|
1476
|
+
"method": "POST",
|
|
1477
|
+
"input_schema": {
|
|
1478
|
+
"type": "object",
|
|
1479
|
+
"properties": {
|
|
1480
|
+
"file_url": {
|
|
1481
|
+
"type": "string",
|
|
1482
|
+
"description": "URL of the PDF, image, or video file to watermark."
|
|
1483
|
+
},
|
|
1484
|
+
"text": {
|
|
1485
|
+
"type": "string",
|
|
1486
|
+
"description": "Watermark text to overlay on the file; mutually exclusive with image_url."
|
|
1487
|
+
},
|
|
1488
|
+
"image_url": {
|
|
1489
|
+
"type": "string",
|
|
1490
|
+
"description": "URL of an image to use as the watermark overlay; mutually exclusive with text."
|
|
1491
|
+
},
|
|
1492
|
+
"font_size": {
|
|
1493
|
+
"type": "number",
|
|
1494
|
+
"description": "Font size in points for text watermarks."
|
|
1495
|
+
},
|
|
1496
|
+
"font_color": {
|
|
1497
|
+
"type": "string",
|
|
1498
|
+
"description": "Hex color code (e.g., #FF0000) for the watermark text."
|
|
1499
|
+
},
|
|
1500
|
+
"opacity": {
|
|
1501
|
+
"type": "number",
|
|
1502
|
+
"description": "Watermark opacity from 0 (transparent) to 1 (fully opaque)."
|
|
1503
|
+
},
|
|
1504
|
+
"rotation": {
|
|
1505
|
+
"type": "number",
|
|
1506
|
+
"description": "Rotation angle in degrees applied to the watermark."
|
|
1507
|
+
},
|
|
1508
|
+
"position_vertical": {
|
|
1509
|
+
"type": "string",
|
|
1510
|
+
"enum": [
|
|
1511
|
+
"top",
|
|
1512
|
+
"center",
|
|
1513
|
+
"bottom"
|
|
1514
|
+
],
|
|
1515
|
+
"description": "Vertical placement of the watermark: top, center, or bottom."
|
|
1516
|
+
},
|
|
1517
|
+
"position_horizontal": {
|
|
1518
|
+
"type": "string",
|
|
1519
|
+
"enum": [
|
|
1520
|
+
"left",
|
|
1521
|
+
"center",
|
|
1522
|
+
"right"
|
|
1523
|
+
],
|
|
1524
|
+
"description": "Horizontal placement of the watermark: left, center, or right."
|
|
1525
|
+
}
|
|
1526
|
+
},
|
|
1527
|
+
"required": [
|
|
1528
|
+
"file_url"
|
|
1529
|
+
]
|
|
1530
|
+
}
|
|
1531
|
+
},
|
|
1532
|
+
{
|
|
1533
|
+
"name": "xlsx-to-csv",
|
|
1534
|
+
"http_name": "xlsx-to-csv",
|
|
1535
|
+
"description": "(0.005 USDC/call) Excel to CSV / XLSX to CSV / Numbers to CSV / spreadsheet to CSV. Convert any sheet of an .xlsx, .xlsm, .xls, or .ods workbook to CSV. Sheet selection, encoding, quote style. CloudConvert.",
|
|
1536
|
+
"method": "POST",
|
|
1537
|
+
"input_schema": {
|
|
1538
|
+
"type": "object",
|
|
1539
|
+
"properties": {
|
|
1540
|
+
"xlsx_url": {
|
|
1541
|
+
"type": "string",
|
|
1542
|
+
"description": "URL of the .xlsx, .xlsm, .xls, or .ods workbook to download and convert."
|
|
1543
|
+
},
|
|
1544
|
+
"sheet": {
|
|
1545
|
+
"type": "string",
|
|
1546
|
+
"description": "Name or index of the sheet to convert; defaults to the first sheet if omitted."
|
|
1547
|
+
},
|
|
1548
|
+
"format": {
|
|
1549
|
+
"type": "string",
|
|
1550
|
+
"enum": [
|
|
1551
|
+
"csv",
|
|
1552
|
+
"tsv",
|
|
1553
|
+
"json"
|
|
1554
|
+
],
|
|
1555
|
+
"description": "Output CSV format options like delimiter, quote style, or encoding (e.g. utf8, latin1)."
|
|
1556
|
+
},
|
|
1557
|
+
"include_all_sheets": {
|
|
1558
|
+
"type": "boolean",
|
|
1559
|
+
"description": "When true, converts every sheet in the workbook instead of just the selected one."
|
|
1560
|
+
}
|
|
1561
|
+
},
|
|
1562
|
+
"required": [
|
|
1563
|
+
"xlsx_url"
|
|
1564
|
+
]
|
|
1565
|
+
}
|
|
1566
|
+
},
|
|
1567
|
+
{
|
|
1568
|
+
"name": "xml-to-word",
|
|
1569
|
+
"http_name": "xml-to-word",
|
|
1570
|
+
"description": "(0.05 USDC/call) XML → Microsoft Word (DOCX) converter via CloudConvert. Demand-intel: 43 unmet signals.",
|
|
1571
|
+
"method": "POST",
|
|
1572
|
+
"input_schema": {
|
|
1573
|
+
"type": "object",
|
|
1574
|
+
"properties": {
|
|
1575
|
+
"xml_url": {
|
|
1576
|
+
"type": "string",
|
|
1577
|
+
"description": "Public URL of the source XML file to convert into a DOCX document."
|
|
1578
|
+
},
|
|
1579
|
+
"xml": {
|
|
1580
|
+
"type": "string",
|
|
1581
|
+
"description": "Raw XML content as a string, used when no xml_url is provided."
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
},
|
|
1586
|
+
{
|
|
1587
|
+
"name": "youtube-transcript",
|
|
1588
|
+
"http_name": "youtube-transcript",
|
|
1589
|
+
"description": "(0.01 USDC/call) YouTube transcript / closed-caption fetcher / video subtitles puller / auto-generated CC reader. Pulls YouTube auto-generated or manual captions for any video and returns the full text plus per-segment {start, duration, text}. Optional language pick. Backed by Supadata's transcript pipeline (server-side; no caller key required). If no transcript is available for the video, returns a 404 with a clear error.",
|
|
1590
|
+
"method": "POST",
|
|
1591
|
+
"input_schema": {
|
|
1592
|
+
"type": "object",
|
|
1593
|
+
"properties": {
|
|
1594
|
+
"video_id_or_url": {
|
|
1595
|
+
"type": "string",
|
|
1596
|
+
"description": "YouTube video ID (11-char) or full URL (youtube.com/watch?v=…, youtu.be/…, /embed/…, /shorts/…)."
|
|
1597
|
+
},
|
|
1598
|
+
"language": {
|
|
1599
|
+
"type": "string",
|
|
1600
|
+
"description": "Preferred caption language code (e.g. 'en', 'es', 'ja'). Default: pick the first available."
|
|
1601
|
+
},
|
|
1602
|
+
"include_chapters": {
|
|
1603
|
+
"type": "boolean",
|
|
1604
|
+
"description": "Parse chapter timestamps from the video description. Default false."
|
|
1605
|
+
}
|
|
1606
|
+
},
|
|
1607
|
+
"required": [
|
|
1608
|
+
"video_id_or_url"
|
|
1609
|
+
]
|
|
1610
|
+
}
|
|
1611
|
+
}
|
|
1612
|
+
];
|