Skip to content
Cyber24

The workbench, over HTTP

API

Every file tool is reachable programmatically at a single endpoint, with an admin-owned key. The same engine runs behind it, so the conversions, limits, and cleanup are identical to the site. It is stable enough to back a native app.

Authenticate

Requests carry an API key in the x-api-key header. Keys are admin-owned, created and revoked from the vault panel; the plaintext is shown once and stored only as a SHA-256 hash. A real key that does not belong to an admin is refused.

x-api-key: c24_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Convert a file

POST /api/v1/convert/<tool> as multipart/form-data. Attach the input as one or more files fields, and an optional optionsfield holding a JSON object of the tool's settings. The response is the produced file, as an attachment.

curl -X POST https://cyber24.dev/api/v1/convert/pdf-compress \
  -H "x-api-key: $CYBER24_KEY" \
  -F "[email protected]" \
  -F 'options={"level":"ebook"}' \
  -o report.compressed.pdf

A multi-file result (for example splitting a PDF into pages) comes back as a single .zip. Errors return JSON, { "error": "..." }, with a status code and never any internal detail.

Discover tools

GET /api/v1/convert, same auth, lists every tool a key may drive with its accepted extensions, file count, and size cap.

curl https://cyber24.dev/api/v1/convert -H "x-api-key: $CYBER24_KEY"

Limits

Each key is limited to 60 requests per minute, on top of the shared engine gates. A burst gets 429 with a retry-after header; a saturated box gets 503. Bodies stream, so large uploads do not need to be sent in one buffer.

Tools

Slugs, what they take, and the options they accept.

toolacceptsoptions
pdf-mergepdfnone
pdf-splitpdf
range: string
pdf-compresspdf
level: one of "screen", "ebook", "printer", "prepress" (default "ebook")
pdf-protectpdf
password: string
pdf-unlockpdf
password: string
pdf-rotatepdf
angle: one of "90", "180", "270" (default "90")
pdf-to-imagespdf
format: one of "png", "jpg" (default "png")
dpi: number 72..300 (default 150) dpi
images-to-pdfpng jpg webp tiff bmpnone
pdf-to-textpdf
layout: boolean (default false)
pdf-ocrpdf png jpg tiff
out: one of "pdf", "txt" (default "pdf")
image-convertpng jpg webp avif gif tiff heic bmp
format: one of "webp", "jpg", "png", "avif", "tiff" (default "webp")
quality: number 1..100 (default 82)
width: number 0..10000 (default 0) px
stripMeta: boolean (default true)
image-compresspng jpg webp tiff
quality: number 1..100 (default 78)
image-resizepng jpg webp avif tiff
width: number 0..10000 (default 1280) px
height: number 0..10000 (default 0) px
format: one of "webp", "jpg", "png", "avif", "tiff" (default "webp")
raw-convertcr2 cr3 nef arw dng raf rw2 orf pef
format: one of "jpg", "png", "tiff", "webp" (default "jpg")
quality: number 1..100 (default 90)
video-convertmp4 mkv mov webm avi flv m4v wmv
format: one of "mp4", "webm", "mkv" (default "mp4")
video-compressmp4 mkv mov webm avi m4v
crf: number 20..35 (default 28)
video-to-gifmp4 mkv mov webm avi m4v
start: number 0..100000 (default 0) s
duration: number 1..30 (default 6) s
width: number 120..1000 (default 480) px
fps: number 5..24 (default 12)
video-trimmp4 mkv mov webm avi m4v
start: number 0..100000 (default 0) s
duration: number 1..100000 (default 10) s
audio-extractmp4 mkv mov webm avi m4v flv
format: one of "mp3", "m4a", "wav", "flac", "opus" (default "mp3")
audio-convertmp3 wav m4a flac ogg opus aac wma aiff
format: one of "mp3", "wav", "m4a", "flac", "opus", "ogg" (default "mp3")
audio-compressmp3 wav m4a flac ogg opus aac
bitrate: one of "96k", "128k", "160k", "192k" (default "128k")
document-convertdoc docx docm dot dotx odt rtf txt md html htm wps wpd abw lwp sdw tex pages
format: one of "pdf", "docx", "odt", "rtf", "txt", "html", "epub" (default "pdf")
spreadsheet-convertxls xlsx xlsm xlsb xltx ods csv tsv dbf et numbers
format: one of "xlsx", "ods", "csv", "pdf", "html" (default "xlsx")
presentation-convertppt pptx pptm odp key
format: one of "pdf", "pptx", "odp" (default "pdf")
ebook-convertepub mobi azw azw3 azw4 fb2 lit lrf pdb pml rb snb tcr htmlz cbz cbr chm prc docx txt html pdf
format: one of "epub", "mobi", "azw3", "pdf", "txt", "fb2", "docx" (default "epub")

Keys are created and revoked from the admin vault panel. Keep them secret; a leaked key can be revoked there.