Skip to content
GigAI Tools

Developer API / docs

Tool catalog

Generated from the same manifest the server validates against, so this page and the API cannot disagree. GET /v1/tools returns it as JSON.

Merge PDF merge-pdf

Combine two or more PDFs into one, in order. Lossless page copying - text stays selectable.

In: pdf (up to 100 MB, several files). Out: pdf.

No options.

task

"work": { "operation": "merge-pdf", "input": ["in1", "in2"] }

Split PDF split-pdf

Extract pages from a PDF into a new document. 'pages' takes numbers and ranges, e.g. "1-3,7,9-10".

In: pdf (up to 100 MB, one file). Out: pdf.

  • pages - string, required

task

"work": { "operation": "split-pdf", "input": ["in1"], "pages": "..." }

Rotate PDF rotate-pdf

Rotate all pages, or just the pages you name, by 90, 180 or 270 degrees.

In: pdf (up to 100 MB, one file). Out: pdf.

  • angle - integer, one of 90, 180, 270, required
  • pages - string

task

"work": { "operation": "rotate-pdf", "input": ["in1"], "angle": 90 }

PDF to Text pdf-to-text

Extract the text layer of a PDF to plain text, one blank line between pages. Scanned pages without a text layer come out empty - this is extraction, not OCR.

In: pdf (up to 100 MB, one file). Out: txt.

No options.

task

"work": { "operation": "pdf-to-text", "input": ["in1"] }

Convert Image convert-image

Convert PNG, JPEG, WebP, AVIF or GIF to PNG, JPEG, WebP or AVIF.

In: png, jpg, webp, avif, gif (up to 50 MB, one file). Out: png, jpg, webp, avif.

  • format - string, one of png, jpeg, webp, avif, required
  • quality - integer, 1..100

task

"work": { "operation": "convert-image", "input": ["in1"], "format": "..." }

Resize Image resize-image

Resize by width, height or both. 'fit' controls how the aspect ratio is handled (inside keeps it, cover crops, fill stretches).

In: png, jpg, webp, avif, gif (up to 50 MB, one file). Out: png, jpg, webp, avif.

  • width - integer, 1..10000
  • height - integer, 1..10000
  • fit - string, one of inside, cover, contain, fill
  • format - string, one of png, jpeg, webp, avif

task

"work": { "operation": "resize-image", "input": ["in1"] }

Compress Image compress-image

Recompress an image by quality, or give target_kb and the engine finds the best quality that fits under that size. If the target is impossible it says so instead of silently missing it.

In: png, jpg, webp, avif, gif (up to 50 MB, one file). Out: jpg, webp, avif.

  • quality - integer, 1..100
  • target_kb - integer, 1..51200
  • format - string, one of jpeg, webp, avif

task

"work": { "operation": "compress-image", "input": ["in1"] }

Optimize SVG optimize-svg

Minify an SVG with svgo (multipass). 'precision' sets decimal places for coordinates.

In: svg (up to 10 MB, one file). Out: svg.

  • precision - integer, 0..8

task

"work": { "operation": "optimize-svg", "input": ["in1"] }

Markdown to HTML markdown-to-html

Render Markdown to a standalone HTML document.

In: md, txt (up to 10 MB, one file). Out: html.

  • title - string

task

"work": { "operation": "markdown-to-html", "input": ["in1"] }

Generate QR Code generate-qr

Generate a QR code as PNG or SVG from text or a URL. No input file - the 'text' option is the payload.

No input file. Out: png, svg.

  • text - string, required
  • format - string, one of png, svg
  • size - integer, 128..2048
  • margin - integer, 0..8
  • ecc - string, one of L, M, Q, H

task

"work": { "operation": "generate-qr", "text": "..." }

Delete PDF Pages delete-pdf-pages

Remove the pages you name and keep the rest. 'pages' takes numbers and ranges, e.g. "2,5-7".

In: pdf (up to 100 MB, one file). Out: pdf.

  • pages - string, required

task

"work": { "operation": "delete-pdf-pages", "input": ["in1"], "pages": "..." }

Add Page Numbers add-page-numbers

Stamp a page number on every page. Choose the corner and the starting number.

In: pdf (up to 100 MB, one file). Out: pdf.

  • position - string, one of bottom-center, bottom-left, bottom-right, top-center, top-left, top-right
  • start - integer, 0..9999
  • size - integer, 6..36

task

"work": { "operation": "add-page-numbers", "input": ["in1"] }

Watermark PDF watermark-pdf

Stamp a diagonal text watermark across every page. Text only - image watermarks are not supported yet and the docs say so.

In: pdf (up to 100 MB, one file). Out: pdf.

  • text - string, required
  • size - integer, 8..144
  • angle - integer, 0..90
  • opacity - number, 0.05..1

task

"work": { "operation": "watermark-pdf", "input": ["in1"], "text": "..." }

Edit PDF Metadata pdf-metadata

Set or strip the document info: title, author, subject, keywords. strip=true clears everything first.

In: pdf (up to 100 MB, one file). Out: pdf.

  • title - string
  • author - string
  • subject - string
  • keywords - string
  • strip - boolean

task

"work": { "operation": "pdf-metadata", "input": ["in1"] }

Images to PDF image-to-pdf

Combine images into a PDF, one page per image, in input order. page=a4 centers each image on A4.

In: png, jpg, webp, avif, gif (up to 50 MB, several files). Out: pdf.

  • page - string, one of auto, a4

task

"work": { "operation": "image-to-pdf", "input": ["in1", "in2"] }

PDF to JPG pdf-to-jpg

Render PDF pages to images, one file per page. 'pages' like "1-3", at most 20 per task.

In: pdf (up to 50 MB, one file). Out: jpg, png.

  • pages - string
  • scale - integer, 1..4
  • format - string, one of jpg, png

task

"work": { "operation": "pdf-to-jpg", "input": ["in1"] }

Crop Image crop-image

Cut a rectangle out of an image: left, top, width, height in pixels.

In: png, jpg, webp, avif, gif (up to 50 MB, one file). Out: png, jpg, webp, avif.

  • left - integer, 0..100000
  • top - integer, 0..100000
  • width - integer, 1..100000, required
  • height - integer, 1..100000, required

task

"work": { "operation": "crop-image", "input": ["in1"], "width": 1, "height": 1 }

Rotate Image rotate-image

Rotate by any angle. Non-right angles get a white background on JPEG, transparent elsewhere.

In: png, jpg, webp, avif, gif (up to 50 MB, one file). Out: png, jpg, webp, avif.

  • angle - integer, -360..360, required

task

"work": { "operation": "rotate-image", "input": ["in1"], "angle": 1 }

Flip Image flip-image

Mirror an image horizontally or vertically.

In: png, jpg, webp, avif, gif (up to 50 MB, one file). Out: png, jpg, webp, avif.

  • direction - string, one of horizontal, vertical, required

task

"work": { "operation": "flip-image", "input": ["in1"], "direction": "..." }

Grayscale Image grayscale-image

Convert an image to grayscale.

In: png, jpg, webp, avif, gif (up to 50 MB, one file). Out: png, jpg, webp, avif.

No options.

task

"work": { "operation": "grayscale-image", "input": ["in1"] }

Blur Image blur-image

Gaussian blur. sigma controls the strength.

In: png, jpg, webp, avif, gif (up to 50 MB, one file). Out: png, jpg, webp, avif.

  • sigma - number, 0.3..100, required

task

"work": { "operation": "blur-image", "input": ["in1"], "sigma": 1 }

Strip Image Metadata strip-image-metadata

Re-encode the image without EXIF, GPS, ICC and XMP data. Pixels unchanged apart from re-encoding.

In: png, jpg, webp, avif, gif (up to 50 MB, one file). Out: png, jpg, webp, avif, gif.

No options.

task

"work": { "operation": "strip-image-metadata", "input": ["in1"] }

SVG to PNG svg-to-png

Rasterize an SVG. Set width/height, or scale to multiply its intrinsic size.

In: svg (up to 10 MB, one file). Out: png.

  • width - integer, 1..10000
  • height - integer, 1..10000
  • scale - integer, 1..10

task

"work": { "operation": "svg-to-png", "input": ["in1"] }

JSON to YAML json-to-yaml

Convert a JSON document to YAML.

In: json (up to 10 MB, one file). Out: yaml.

No options.

task

"work": { "operation": "json-to-yaml", "input": ["in1"] }

YAML to JSON yaml-to-json

Convert a YAML document to JSON.

In: yaml (up to 10 MB, one file). Out: json.

  • indent - integer, 0..8

task

"work": { "operation": "yaml-to-json", "input": ["in1"] }

CSV to JSON csv-to-json

Parse a CSV (first row as headers) into a JSON array of objects. Numbers become numbers.

In: csv (up to 10 MB, one file). Out: json.

No options.

task

"work": { "operation": "csv-to-json", "input": ["in1"] }

JSON to CSV json-to-csv

Turn a JSON array of objects into CSV. Nested values are stringified into their cell.

In: json (up to 10 MB, one file). Out: csv.

  • delimiter - string, one of ,, ;, tab

task

"work": { "operation": "json-to-csv", "input": ["in1"] }

Format JSON format-json

Pretty-print or minify JSON. indent=0 minifies.

In: json (up to 10 MB, one file). Out: json.

  • indent - integer, 0..8

task

"work": { "operation": "format-json", "input": ["in1"] }

Minify CSS minify-css

Minify a stylesheet with clean-css.

In: css (up to 5 MB, one file). Out: css.

No options.

task

"work": { "operation": "minify-css", "input": ["in1"] }

Minify JavaScript minify-js

Minify a script with terser.

In: js (up to 5 MB, one file). Out: js.

No options.

task

"work": { "operation": "minify-js", "input": ["in1"] }

Minify HTML minify-html

Minify an HTML document, including its inline CSS and JS.

In: html (up to 5 MB, one file). Out: html.

No options.

task

"work": { "operation": "minify-html", "input": ["in1"] }

HTML to Markdown html-to-markdown

Convert an HTML document to Markdown (ATX headings, fenced code).

In: html (up to 5 MB, one file). Out: md.

No options.

task

"work": { "operation": "html-to-markdown", "input": ["in1"] }

Convert Subtitles convert-subtitles

Convert between SRT and VTT. Already in the target format passes through unchanged.

In: srt, vtt, txt (up to 5 MB, one file). Out: srt, vtt.

  • format - string, one of srt, vtt, required

task

"work": { "operation": "convert-subtitles", "input": ["in1"], "format": "..." }

Detect Indian PII detect-pii

Scan text for 18 Indian identifier types (Aadhaar with checksum, PAN, GSTIN, UPI, IFSC, phone, voter ID and more). The JSON report gives positions, validity, confidence and a masked stand-in - it never repeats the raw identifier.

In: txt, md, csv, json, html (up to 10 MB, one file). Out: json.

  • types - string
  • require_valid - boolean

task

"work": { "operation": "detect-pii", "input": ["in1"] }

Redact Indian PII redact-pii

Return a copy of the text with every detected Indian identifier replaced by its masked form. Checksum-validated detection, same engine as detect-pii.

In: txt, md, csv, json, html (up to 10 MB, one file). Out: txt.

  • types - string
  • require_valid - boolean
  • mask_char - string

task

"work": { "operation": "redact-pii", "input": ["in1"] }

OCR PDF (33 languages) ocr-pdf

Extract text from scanned or image-based PDFs with OCR in 33 languages: English, Hindi and other Devanagari scripts, Arabic, Chinese, Japanese, Korean, Tamil, Telugu, Bengali, Urdu and more. format=text gives reading-order plain text, format=json gives every token with its position - the raw material for building spreadsheets from scanned tables.

In: pdf (up to 30 MB, one file). Out: txt, json.

  • langs - string
  • format - string, one of text, json

task

"work": { "operation": "ocr-pdf", "input": ["in1"] }
Was this page helpful?