API reference // v1

PDF and image processing API with webhooks

106 live endpoints behind one shape: POST /v1/tools/{slug}. Merge, split, compress, watermark and number PDFs. Convert, resize, compress and strip EXIF from images. Fire and forget with async jobs and HMAC-signed webhooks, from $29 a month. Billed per call, not per conversion minute, and refunded when an upstream call fails.

Bearer auth
Generate keys in your dashboard. 39 endpoints need no key at all.
Live capability catalog
GET /v1/tools returns this same reference as JSON, availability included, so you never pay for a 501.
Async jobs
Queue work and get an HMAC-signed webhook when it finishes.
Credit-metered
Pay per call, at a published rate. Refunded on upstream failure.
Cheapest plan with async jobs + webhooksPriceBilling unit
FileOven Business$29 / moCredits per call, fixed and published
Zamzar Growth$99 / moCredits per file
CloudConvertfrom ~$9 / moConversion minutes, so cost varies with file size

FileOven covers PDF operations, image processing and data utilities. It is not a 200-format transcoder. If you need obscure legacy or CAD formats, CloudConvert is the right tool and we will say so.

Quickstart

# Merge two PDFs (3 credits)
curl -X POST https://fileoven.com/api/v1/tools/pdf-merge \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@invoice.pdf" -F "file=@terms.pdf" \
  -o merged.pdf

# List every tool and its live availability
curl https://fileoven.com/api/v1/tools

# Inspect one endpoint, parameters included
curl https://fileoven.com/api/v1/tools/pdf-merge

# JSON tool (color converter, free, no key)
curl -X POST https://fileoven.com/api/v1/tools/color-converter \
  -H "Content-Type: application/json" \
  -d '{"hex":"#3b82f6"}'

Authentication

Paid endpoints take a bearer key generated in your dashboard. Send it on every request; there is no session, cookie or signing step. Free endpoints ignore the header entirely, so you can try them before signing up.

  • Base URL: https://fileoven.com/api/v1
  • Rate limit: 60 requests per minute per key, with Retry-After on a 429.
  • Upload cap: 50 MB per multipart request, 128 KB per JSON body.
  • Every paid response carries x-credits-used.
Authorization: Bearer sk_live_...

# Verify the key without spending a credit
curl https://fileoven.com/api/v1/tools \
  -H "Authorization: Bearer sk_live_..."

Async jobs and webhooks

Queue any available JSON-input tool and get an HTTP 202 back immediately. When the job finishes we POST the result to your URL with x-fileoven-signature: sha256=..., an HMAC-SHA256 of the raw request body keyed with the secret you supplied. Verify it before trusting the payload.

# Queue a job (returns HTTP 202 with a job id)
curl -X POST https://fileoven.com/api/v1/jobs \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"tool_slug":"color-converter","input":{"hex":"#3b82f6"},"webhook":{"url":"https://client.example/hooks/fileoven","secret":"replace-with-16-plus-characters"}}'

# Poll it instead, if you would rather not run a listener
curl https://fileoven.com/api/v1/jobs/JOB_ID \
  -H "Authorization: Bearer sk_live_..."

Endpoint reference

Search, filter, expand. Every entry is generated from the live catalog, so the parameters and examples here are the ones the server actually accepts.

146 endpoints

Click any endpoint to expand it

Documents43

POST/v1/tools/pdf-to-md3 credits

Extract text as Markdown, with detected tables as GFM pipe tables.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-to-md \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-to-image3 credits

Render one PDF page to PNG at a chosen scale.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
pagenumber11-indexed page to render.
scalenumber2Render scale, up to 4. 2 is roughly 144 dpi.
passwordstring-Required only if the PDF is encrypted.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-to-image \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/image-to-pdf3 credits

Combine images into a PDF.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filesrequiredfile[]-One or more images, 15 MB each.

Example request

curl -X POST https://fileoven.com/api/v1/tools/image-to-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "files=@input.pdf" -F "files=@second-input.pdf" \
  -o images.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/scan-to-pdf501 browser-onlyfree

Not available server-side: Captures pages from the device camera, which has no server equivalent. Use /tools/scan-to-pdf.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/scan-to-pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-merge3 credits

Merge multiple PDFs into one.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filesrequiredfile[]-Two or more PDFs, in order.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-merge \
  -H "Authorization: Bearer sk_live_..." \
  -F "files=@input.pdf" -F "files=@second-input.pdf" \
  -o merged.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-split3 credits

Split a PDF into one file per page (zip).

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-split \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o pages.zip

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/extract-pdf-pages3 credits

Extract selected pages into one PDF or a ZIP.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
pagesrequiredstringallPage range, e.g. "1,3,5-7". Omit for every page.
modestringsinglesingle for one PDF, zip for one file per page.

Example request

curl -X POST https://fileoven.com/api/v1/tools/extract-pdf-pages \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -F "pages=1-3" \
  -o extracted.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-compress2 credits

Rebuild PDF with object streams; strip metadata.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-compress \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o compressed.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/word-to-pdf4 credits

Render a .docx to a paginated PDF via its extracted text.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/word-to-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.docx" \
  -o document.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/word-text2 credits

Extract plain text from a .docx.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/word-text \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.docx"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/word-html2 credits

Convert a .docx to semantic HTML, keeping headings, lists and tables.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/word-html \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.docx"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-to-word4 credits

Extract text and tables to DOCX as real paragraphs and Word tables.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-to-word \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o extracted.docx

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/ocr-pdf5 credits

OCR a scanned PDF to text with tesseract, up to 10 pages per call.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.
languagestringengTesseract language codes, e.g. "eng" or "eng+deu".
passwordstring-Required only if the PDF is encrypted.

Example request

curl -X POST https://fileoven.com/api/v1/tools/ocr-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-rotate2 credits

Rotate selected pages by a multiple of 90 degrees.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
anglenumber90A multiple of 90.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-rotate \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o rotated.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/crop-pdf2 credits

Trim page margins by insetting the MediaBox, in points.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
topnumber0Inset from the top, in points.
rightnumber0Inset from the right.
bottomnumber0Inset from the bottom.
leftnumber0Inset from the left.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.

Example request

curl -X POST https://fileoven.com/api/v1/tools/crop-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o cropped.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/compare-pdf3 credits

Line-level text comparison of two PDFs (file_a, file_b).

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
file_arequiredfile-The baseline PDF. Lines present here but not in file_b are reported as removed.
file_brequiredfile-The revised PDF. Lines only in this file are reported as added.

Example request

curl -X POST https://fileoven.com/api/v1/tools/compare-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file_a=@input.pdf" \
  -F "file_b=@input.pdf"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/redact-pdf4 credits

Redact regions by rasterizing each page and painting boxes over them, which removes the underlying text rather than hiding it.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
regionsrequiredstring-JSON array of regions in 0-1 page coordinates, measured from the top-left.
scalenumber2Raster scale of the output pages, up to 4.
passwordstring-Required only if the PDF is encrypted.

Example request

curl -X POST https://fileoven.com/api/v1/tools/redact-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -F 'regions=[{"page":1,"x":0.1,"y":0.1,"width":0.3,"height":0.05}]'

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/repair-pdf3 credits

Rebuild a damaged PDF, dropping unreadable objects.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/repair-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o repaired.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-to-pdfa4 credits

Tag a PDF with PDF/A-2b metadata and an sRGB output intent. Content is not re-encoded.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
titlestring-Document title for the XMP metadata.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-to-pdfa \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o pdfa.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-watermark3 credits

Add a positioned text watermark to selected PDF pages.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
textrequiredstring-Watermark text.
positionstringcenterNine-point grid, e.g. top-left, center, bottom-right.
opacitynumber0.3Watermark opacity, 0 (invisible) to 1 (solid).
font_sizenumber48Watermark text size, in points.
rotationnumber45Rotation of the watermark text, in degrees.
colorstring#888888Watermark text colour, as hex.
fontstringhelveticahelvetica, times or courier.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-watermark \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -F "text=hello world" \
  -o watermarked.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-page-numbers2 credits

Add page numbers to all or selected PDF pages.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
startnumber1The number to print on the first page.
positionstringbottom-centertop/bottom paired with left/center/right.
font_sizenumber10Page-number text size, in points.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-page-numbers \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o numbered.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/bates-numbering3 credits

Stamp sequential Bates numbers with a prefix, suffix and zero padding.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
startnumber1The number stamped on the first page.
prefixstring-Text printed before the Bates number.
suffixstring-Text printed after the Bates number.
paddingnumber6Zero padding width, 1-12.
sizenumber10Bates label text size, in points.

Example request

curl -X POST https://fileoven.com/api/v1/tools/bates-numbering \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o bates.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/flatten-pdf2 credits

Flatten interactive form fields into static page content.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/flatten-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o flattened.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-forms3 credits

List a PDF's form fields, or fill them from a JSON map and optionally flatten.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
fieldsstring-JSON object of fieldName to value. Omit to list the fields instead.
flattenbooleanfalseFlatten after filling so values cannot be edited.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-forms \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -F 'fields={"applicant.name":"Ada Lovelace"}' \
  -o filled.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/edit-pdf501 browser-onlyfree

Not available server-side: Interactive page editing is a UI, not a single request. Use /tools/edit-pdf.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/edit-pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/sign-pdf3 credits

Stamp a signature image onto a page at a given position and width.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
signaturerequiredfile-PNG or JPEG signature image.
pagenumberlast1-indexed target page.
xnumber-Left offset in points. Defaults to the bottom right.
ynumber48Bottom offset in points.
widthnumber150Signature width. Height follows the aspect ratio.
opacitynumber1Signature opacity, 0 (invisible) to 1 (solid).

Example request

curl -X POST https://fileoven.com/api/v1/tools/sign-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -F "signature=@input.pdf" \
  -o signed.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/excel-to-pdf4 credits

Render a workbook to PDF, one sheet per section, as a monospaced grid.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/excel-to-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.xlsx" \
  -o spreadsheet.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/powerpoint-to-pdf501 browser-onlyfree

Not available server-side: Needs a rasterizer to draw PDF or Office pages to pixels, which means a canvas dependency we do not run server-side. The text layer is available at /v1/tools/pdf-extract. Use /tools/powerpoint-to-pdf.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/powerpoint-to-pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/powerpoint-images501 browser-onlyfree

Not available server-side: Needs a rasterizer to draw PDF or Office pages to pixels, which means a canvas dependency we do not run server-side. The text layer is available at /v1/tools/pdf-extract. Use /tools/powerpoint-images.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/powerpoint-images

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-to-powerpoint501 browser-onlyfree

Not available server-side: Needs a rasterizer to draw PDF or Office pages to pixels, which means a canvas dependency we do not run server-side. The text layer is available at /v1/tools/pdf-extract. Use /tools/pdf-to-powerpoint.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-to-powerpoint

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-to-excel4 credits

Extract detected tables to XLSX, one sheet per table.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-to-excel \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o extracted.xlsx

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-password-remove3 credits

Remove encryption from a PDF you have the password for. Requires the correct password; this is not a cracker.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
passwordrequiredstring-The password that opens the document.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-password-remove \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -F "password=your-password"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/protect-pdf3 credits

Encrypt a PDF with AES-256 or RC4 and set permission flags.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
passwordrequiredstring-User password, at least 4 characters.
owner_passwordstring-Permissions password. Defaults to the user password.
algorithmstringaes256aes256 or rc4.
allow_printingbooleanfalsePermissions default to denied.
allow_copyingbooleanfalseAllow text copying.
allow_modifyingbooleanfalseAllow edits.
allow_annotatingbooleanfalseAllow annotations.
allow_filling_formsbooleanfalseAllow form filling.
allow_extractionbooleanfalseAllow accessibility extraction.
allow_assemblybooleanfalseAllow page assembly.
allow_high_quality_printbooleanfalseAllow high-resolution printing.

Example request

curl -X POST https://fileoven.com/api/v1/tools/protect-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -F "password=your-password" \
  -o protected.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/html-to-pdf501 browser-onlyfree

Not available server-side: Needs a rasterizer to draw PDF or Office pages to pixels, which means a canvas dependency we do not run server-side. The text layer is available at /v1/tools/pdf-extract. Use /tools/html-to-pdf.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/html-to-pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/markdown-to-pdf3 credits

Render Markdown to a paginated PDF with wrapped text.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
markdownrequiredstring-Markdown source, as a field or a file.

Example request

curl -X POST https://fileoven.com/api/v1/tools/markdown-to-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "markdown=# Title" \
  -o document.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/markdown-to-word501 browser-onlyfree

Not available server-side: Needs a rasterizer to draw PDF or Office pages to pixels, which means a canvas dependency we do not run server-side. The text layer is available at /v1/tools/pdf-extract. Use /tools/markdown-to-word.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/markdown-to-word

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/epub-to-pdf4 credits

Render an EPUB to PDF, following the spine order.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/epub-to-pdf \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.epub" \
  -o book.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-to-epub4 credits

Convert a text-layer PDF to a reflowable EPUB, one chapter per page.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-to-epub \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -o book.epub

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-to-images-zip4 credits

Render a range of PDF pages to PNGs, returned as a ZIP.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.
scalenumber2Render scale, up to 4.
passwordstring-Required only if the PDF is encrypted.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-to-images-zip \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-extract5 credits

Extract text, reconstructed tables, and document metadata as structured JSON. Sets needs_ocr when the PDF is scanned images.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.
geometrybooleanfalseInclude per-line y and per-cell x coordinates.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-extract \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-reorder3 credits

Reorder or subset pages with an explicit 1-indexed page sequence.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
orderrequiredstring-1-indexed sequence, e.g. "3,1,2". Doubles as page removal.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-reorder \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf" \
  -F "order=3,1,2" \
  -o reordered.pdf

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-to-text2 credits

Extract plain text, in reading order, for search indexing and RAG chunking.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
pagesstringallPage range, e.g. "1,3,5-7". Omit for every page.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-to-text \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-info1 credit

Read document properties, page count, and page size without a full text pass.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-info \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.pdf"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.

Image19

POST/v1/tools/image-converter2 credits

Convert JPG / PNG / WebP.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
formatrequiredstring-Output format: jpg, png or webp.
qualitynumber85Encoder quality, 1-100. Ignored for PNG.

Example request

curl -X POST https://fileoven.com/api/v1/tools/image-converter \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -F "format=webp" \
  -o converted.png

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/image-resize2 credits

Resize an image.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
widthnumber-Target width in px. Supply width, height, or both.
heightnumber-Target height in px. Aspect ratio is kept when only one is given.
formatstringpngOutput format: jpg, png or webp.
qualitynumber90Encoder quality, 1-100. Ignored for PNG.

Example request

curl -X POST https://fileoven.com/api/v1/tools/image-resize \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o resized.png

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/ecommerce-image-batch3 credits

Fit or fill a batch of product images onto one marketplace canvas size with padding and a background colour, returned as a ZIP.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filesrequiredfile[]-Up to 50 images, 40 MB total.
widthnumber2000Canvas width, 1-5000.
heightnumber2000Canvas height, 1-5000.
modestringcontaincontain fits inside; cover fills and crops.
paddingnumber0.05Margin as a fraction of the canvas, 0 to 0.5.
backgroundstring#ffffffHex background colour.
formatstringjpegjpeg, png or webp.
qualitynumber88Encoder quality, 1-100.

Example request

curl -X POST https://fileoven.com/api/v1/tools/ecommerce-image-batch \
  -H "Authorization: Bearer sk_live_..." \
  -F "files=@input.png" -F "files=@second-input.png" \
  -o product-images.zip

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/image-compress2 credits

Re-encode with quality control.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
qualitynumber80Encoder quality, 1-100. Ignored for PNG.
formatstringpngOutput format: jpg, png or webp.

Example request

curl -X POST https://fileoven.com/api/v1/tools/image-compress \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o compressed.jpg

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/heic-to-jpg2 credits

Convert an iPhone HEIC/HEIF photo to JPEG, PNG or WebP.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
formatstringjpegOutput format: jpeg, png or webp.
qualitynumber88Encoder quality, 1-100. Ignored for PNG.

Example request

curl -X POST https://fileoven.com/api/v1/tools/heic-to-jpg \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/svg-to-png2 credits

Rasterize an SVG to PNG. External references are not fetched.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The SVG document to rasterize.
widthnumber-Render width in px, 1-8000. Defaults to the SVG's own size.

Example request

curl -X POST https://fileoven.com/api/v1/tools/svg-to-png \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/favicon-generator2 credits

Build a multi-size favicon.ico.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/favicon-generator \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o favicon.ico

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/exif-remove1 credit

Strip EXIF/GPS metadata.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/exif-remove \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o clean.jpg

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/image-exif1 credit

Read EXIF/IPTC/XMP metadata.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/image-exif \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/color-palette1 credit

Extract dominant colors from an image.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
countnumber6How many dominant colours.

Example request

curl -X POST https://fileoven.com/api/v1/tools/color-palette \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/image-crop2 credits

Crop an image to a pixel rectangle.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
xnumber0Left offset of the crop origin, in px.
ynumber0Top offset of the crop origin, in px.
widthnumber-Crop width in px, clamped to the image bounds.
heightnumber-Crop height in px, clamped to the image bounds.
formatstringpngOutput format: jpg, png or webp.
qualitynumber90Encoder quality, 1-100. Ignored for PNG.

Example request

curl -X POST https://fileoven.com/api/v1/tools/image-crop \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o cropped.png

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/image-watermark2 credits

Stamp a text watermark onto an image, positioned on a nine-point grid.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
textrequiredstring-Watermark text, up to 200 characters.
positionstringbottom-rightNine-point grid: top/center/bottom paired with left/center/right.
sizenumber-Type size in px. Defaults to a proportion of the image.
colorstring#ffffffText colour as hex.
opacitynumber0.5Text opacity, 0 to 1.
rotationnumber0Rotation of the watermark, in degrees.
marginnumber-Inset from the edges in px. Defaults to 0.75x the type size.
formatstringpngOutput format: png, jpg or webp.
qualitynumber90Encoder quality for jpg and webp, 1-100.

Example request

curl -X POST https://fileoven.com/api/v1/tools/image-watermark \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -F "text=FileOven"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/image-to-svg3 credits

Trace a raster image into vector paths. Best on flat art, not photographs.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
colorsnumber12Palette size, 2-64. Source capped at 4 megapixels.

Example request

curl -X POST https://fileoven.com/api/v1/tools/image-to-svg \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o traced.svg

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/webp-converter2 credits

Encode any supported image as WebP.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
qualitynumber82Encoder quality, 1-100. Ignored for PNG.

Example request

curl -X POST https://fileoven.com/api/v1/tools/webp-converter \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o converted.webp

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/meme-generator2 credits

Add top and bottom meme captions with a black outline.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
topstring-Top caption. Provide top, bottom, or both.
bottomstring-Bottom caption, up to 120 characters.
sizenumber-Caption size in px. Defaults to a tenth of the image height.

Example request

curl -X POST https://fileoven.com/api/v1/tools/meme-generator \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/avif-converter2 credits

Encode any supported image as AVIF.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
qualitynumber50Encoder quality, 1-100. Ignored for PNG.

Example request

curl -X POST https://fileoven.com/api/v1/tools/avif-converter \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o converted.avif

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/images-to-gif501 browser-onlyfree

Not available server-side: Needs pixel work the server-side codecs do not cover. Use /tools/images-to-gif.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/images-to-gif

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/upscale-image2 credits

Enlarge 2x, 3x or 4x with bilinear interpolation. Not a neural upscaler.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
scalenumber22, 3 or 4. Bilinear interpolation, not a neural upscaler.
formatstringpngOutput format: jpg, png or webp.
qualitynumber90Encoder quality, 1-100. Ignored for PNG.

Example request

curl -X POST https://fileoven.com/api/v1/tools/upscale-image \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png" \
  -o upscaled.png

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/ico-to-png2 credits

Extract the largest PNG-encoded image from an .ico file.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/ico-to-png \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@favicon.ico" \
  -o icon.png

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.

Utility48

POST/v1/tools/qr-generatorfree

Generate a QR code (PNG data URL or SVG).

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
textrequiredstring-The text or URL to encode in the QR code.
formatstringpngpng (data URL) or svg.
sizenumber256QR code size, in pixels.
marginnumber4Quiet-zone width in modules.

Example request

curl -X POST https://fileoven.com/api/v1/tools/qr-generator \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/code-reader501 browser-onlyfree

Not available server-side: Reads a camera or image stream through a browser-only barcode decoder. Use /tools/code-reader.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/code-reader

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/unit-converterfree

Convert length, weight, volume, area, speed, time, data, pressure, energy, power, angle, frequency or temperature.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
categoryrequiredstring-length, weight, volume, area, speed, time, data, pressure, energy, power, angle, frequency or temperature.
fromrequiredstring-Source unit symbol, e.g. m or kg.
torequiredstring-Target unit symbol, e.g. km or lb.
valuerequirednumber-The numeric value to convert.

Example request

curl -X POST https://fileoven.com/api/v1/tools/unit-converter \
  -H "Content-Type: application/json" \
  -d '{"category":"length","from":"m","to":"km","value":255}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/currency-converter501 browser-onlyfree

Not available server-side: Needs a live third-party exchange-rate API, so our uptime and per-call cost would depend on someone else's. Use /tools/currency-converter.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/currency-converter

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/color-converterfree

Convert HEX / RGB / HSL.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
hexstring-Hex colour, e.g. "#3b82f6". Supply exactly one of hex, rgb or hsl.
rgbjson-RGB triple, e.g. [59, 130, 246].
hsljson-HSL triple, e.g. [217, 91, 60].

Example request

curl -X POST https://fileoven.com/api/v1/tools/color-converter \
  -H "Content-Type: application/json" \
  -d '{"hex":"#3b82f6"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/percentage-calculatorfree

Percentage of a number, percent relationship, or percent change.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
moderequiredstring-of (X% of Y), is_what_percent (X is what % of Y), or change (percent change X to Y).
xrequirednumber-First value.
yrequirednumber-Second value.

Example request

curl -X POST https://fileoven.com/api/v1/tools/percentage-calculator \
  -H "Content-Type: application/json" \
  -d '{"mode":"of","x":20,"y":50}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/age-calculatorfree

Exact date difference in years, months, days, and totals.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
fromrequiredstring-Start date, e.g. a birth date, in ISO 8601 format.
tostringtodayEnd date in ISO 8601 format. Defaults to today.

Example request

curl -X POST https://fileoven.com/api/v1/tools/age-calculator \
  -H "Content-Type: application/json" \
  -d '{"from":"2000-01-01"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/bmi-calculatorfree

Body Mass Index and WHO weight category.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
unitsrequiredstring-metric (kg/cm) or imperial (lb/in).
weightrequirednumber-Body weight.
heightrequirednumber-Body height.

Example request

curl -X POST https://fileoven.com/api/v1/tools/bmi-calculator \
  -H "Content-Type: application/json" \
  -d '{"units":"metric","weight":70,"height":175}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/loan-calculatorfree

Monthly payment, total interest, and total paid for a loan.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
principalrequirednumber-Total loan amount.
annual_rate_percentrequirednumber-Annual interest rate as a percentage.
yearsrequirednumber-Loan term in years.

Example request

curl -X POST https://fileoven.com/api/v1/tools/loan-calculator \
  -H "Content-Type: application/json" \
  -d '{"principal":20000,"annual_rate_percent":6.5,"years":5}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/css-gradient-generatorfree

Build a linear or radial CSS gradient from color stops.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
typerequiredstring-linear or radial.
anglenumber90Angle in degrees for linear gradients.
stopsrequiredjson-At least two color stops: [{ color, pos: 0-100 }].

Example request

curl -X POST https://fileoven.com/api/v1/tools/css-gradient-generator \
  -H "Content-Type: application/json" \
  -d '{"type":"linear","stops":[{"color":"#3ad5c8","pos":0},{"color":"#6366f1","pos":100}]}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/meta-tag-generatorfree

Generate SEO, Open Graph, and Twitter Card meta tags.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
titlestring-Page title.
descriptionstring-Page description, under 160 characters.
urlstring-Canonical page URL.
imagestring-Preview image URL for social shares.
site_namestring-Site or brand name.
twitter_handlestring-Twitter/X handle, with or without the @.

Example request

curl -X POST https://fileoven.com/api/v1/tools/meta-tag-generator \
  -H "Content-Type: application/json" \
  -d '{"title":"My Awesome Page","description":"A short summary of the page."}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/json-csvfree

JSON ↔ CSV conversion.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
directionrequiredstring-json2csv or csv2json.
datarequiredjson-An array of objects for json2csv, or a CSV string for csv2json.

Example request

curl -X POST https://fileoven.com/api/v1/tools/json-csv \
  -H "Content-Type: application/json" \
  -d '{"direction":"json2csv","data":[{"name":"Ada","qty":2}]}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/base64free

Base64 encode / decode.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
textrequiredstring-Text to encode, or base64 to decode.
moderequiredstring-Whether to encode or decode the text.

Example request

curl -X POST https://fileoven.com/api/v1/tools/base64 \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world","mode":"encode"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/timestampfree

Unix timestamp ↔ ISO date.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
valuerequiredstring-A Unix timestamp, or a date string.
modestringautoto-date or to-unix.

Example request

curl -X POST https://fileoven.com/api/v1/tools/timestamp \
  -H "Content-Type: application/json" \
  -d '{"value":"255"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/password-generatorfree

Generate passwords from a chosen character set, with an entropy estimate.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
lengthnumber20Password length, 8-256.
countnumber1How many passwords, 1-100.
lowerbooleantrueInclude lowercase letters.
upperbooleantrueInclude uppercase letters.
digitsbooleantrueInclude digits.
symbolsbooleanfalseInclude punctuation.

Example request

curl -X POST https://fileoven.com/api/v1/tools/password-generator \
  -H "Content-Type: application/json" \
  -d '{"length":20,"count":1}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/uuid-generatorfree

Generate 1-1000 v4 UUIDs.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
countnumber1How many v4 UUIDs, 1-1000.

Example request

curl -X POST https://fileoven.com/api/v1/tools/uuid-generator \
  -H "Content-Type: application/json" \
  -d '{"count":1}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/hash-generatorfree

SHA-1/256/384/512 digest of a string, as hex.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
textrequiredstring-The text to compute a digest for.
algorithmstringsha-256sha-1, sha-256, sha-384 or sha-512. MD5 is not offered.

Example request

curl -X POST https://fileoven.com/api/v1/tools/hash-generator \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/word-counterfree

Characters, words, lines, paragraphs, sentences, and reading time.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
textrequiredstring-The text to count words and characters in.

Example request

curl -X POST https://fileoven.com/api/v1/tools/word-counter \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/json-formatterfree

Pretty-print or minify a JSON document.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
jsonrequiredstring-The JSON document to format.
indentnumber2Indent width, 0-8.
minifybooleanfalseMinify instead of pretty-printing.

Example request

curl -X POST https://fileoven.com/api/v1/tools/json-formatter \
  -H "Content-Type: application/json" \
  -d '{"json":"{\"id\":1,\"name\":\"Ada\"}"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/case-converterfree

Convert between lower, upper, title, sentence, camel, pascal, snake, kebab, constant.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
textrequiredstring-The text to change the case of.
caserequiredstring-lower, upper, title, sentence, camel, pascal, snake, kebab or constant.

Example request

curl -X POST https://fileoven.com/api/v1/tools/case-converter \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world","case":"snake"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/url-encoderfree

Percent-encode or decode, whole-URI or component.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
textrequiredstring-Text to encode or decode.
modestringencodeWhether to encode or decode the text.
componentbooleantrueComponent encoding rather than whole-URI.

Example request

curl -X POST https://fileoven.com/api/v1/tools/url-encoder \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/jwt-decoderfree

Decode JWT header and payload, with expiry. Does not verify the signature.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
tokenrequiredstring-The JWT. The signature is not verified.

Example request

curl -X POST https://fileoven.com/api/v1/tools/jwt-decoder \
  -H "Content-Type: application/json" \
  -d '{"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIn0.sig"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/regex-tester501 browser-onlyfree

Not available server-side: Refused on purpose: running a caller's regex on our servers is a catastrophic-backtracking denial of service, and Node has no way to time a regex out. Use /tools/regex-tester.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/regex-tester

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/text-difffree

Line-level LCS diff of two texts, up to 5,000 lines a side.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
arequiredstring-The baseline text, up to 5,000 lines.
brequiredstring-The revised text to compare against the first.

Example request

curl -X POST https://fileoven.com/api/v1/tools/text-diff \
  -H "Content-Type: application/json" \
  -d '{"a":"one\ntwo","b":"one\ntwo point five"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/lorem-ipsumfree

Generate placeholder paragraphs.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
paragraphsnumber3How many paragraphs, 1-50.
sentencesnumber4Sentences per paragraph, 1-20.

Example request

curl -X POST https://fileoven.com/api/v1/tools/lorem-ipsum \
  -H "Content-Type: application/json" \
  -d '{"paragraphs":3,"sentences":4}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/base-converterfree

Convert a number between bases 2-36, using BigInt so large values keep precision.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
valuerequiredstring-The number, as a string.
fromrequirednumber-Source base, 2-36.
torequirednumber-Target base, 2-36.

Example request

curl -X POST https://fileoven.com/api/v1/tools/base-converter \
  -H "Content-Type: application/json" \
  -d '{"value":"255","from":null,"to":1}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/text-to-speech501 browser-onlyfree

Not available server-side: Uses the browser's speech synthesis voices; nothing equivalent runs server-side. Use /tools/text-to-speech.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/text-to-speech

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/timezone-converterfree

Convert an instant between IANA timezones.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
torequiredstring-Target IANA timezone.
datetimestringnowISO 8601 instant.
fromstring-Source IANA timezone, for the comparison line.

Example request

curl -X POST https://fileoven.com/api/v1/tools/timezone-converter \
  -H "Content-Type: application/json" \
  -d '{"to":"Europe/Berlin"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/csv-excel2 credits

CSV to XLSX, or XLSX to CSV.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.
tostringxlsxxlsx or csv.
sheetstring-Sheet name when converting to CSV. Defaults to the first.

Example request

curl -X POST https://fileoven.com/api/v1/tools/csv-excel \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.csv" \
  -F "to=xlsx" \
  -o converted.xlsx

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/csv-cleaner1 credit

Normalize, deduplicate, validate, and safely export CSV data.

application/jsonBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
csvrequiredstring-The CSV document to clean.
optionsjson-Trim, deduplicate and normalization flags.
validationjson-{ column, rule } to flag invalid rows.

Example request

curl -X POST https://fileoven.com/api/v1/tools/csv-cleaner \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"csv":"name,qty\nwidget,3"}'

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/yaml-jsonfree

YAML to JSON, or JSON to YAML.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
yamlstring-YAML to convert to JSON. Supply yaml or json.
jsonstring-JSON to convert to YAML.
indentnumber2Indent width.

Example request

curl -X POST https://fileoven.com/api/v1/tools/yaml-json \
  -H "Content-Type: application/json" \
  -d '{"yaml":"name: FileOven\nversion: 1"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/xml-jsonfree

XML to JSON, or JSON to XML. Attributes map to @-prefixed keys.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
xmlstring-XML to convert. Supply xml or json.
jsonstring-JSON to convert to XML.
rootstring-Root element name when converting JSON.

Example request

curl -X POST https://fileoven.com/api/v1/tools/xml-json \
  -H "Content-Type: application/json" \
  -d '{"xml":"<order id=\"7\"><item>Widget</item></order>"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/markdown-htmlfree

Render Markdown to HTML.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
markdownrequiredstring-The Markdown to render as HTML.

Example request

curl -X POST https://fileoven.com/api/v1/tools/markdown-html \
  -H "Content-Type: application/json" \
  -d '{"markdown":"# Title"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/html-markdown501 browser-onlyfree

Not available server-side: Needs a DOM parser to walk the document; Node has no DOMParser. Use /tools/html-markdown.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/html-markdown

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/cron-parserfree

Describe a cron expression in plain English.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
expressionrequiredstring-A cron expression, e.g. "0 9 * * 1-5".

Example request

curl -X POST https://fileoven.com/api/v1/tools/cron-parser \
  -H "Content-Type: application/json" \
  -d '{"expression":"0 9 * * 1-5"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/subnet-calculatorfree

CIDR network, broadcast, mask, host range and counts.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
cidrrequiredstring-CIDR block, e.g. "192.168.1.0/24".

Example request

curl -X POST https://fileoven.com/api/v1/tools/subnet-calculator \
  -H "Content-Type: application/json" \
  -d '{"cidr":"192.168.1.0/24"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/ip-lookup501 browser-onlyfree

Not available server-side: Needs a third-party geolocation API for every call. Use /tools/ip-lookup.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/ip-lookup

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/json-difffree

Structural, key-path level diff of two JSON values.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
arequiredjson-The baseline value.
brequiredjson-The value to compare the first against.

Example request

curl -X POST https://fileoven.com/api/v1/tools/json-diff \
  -H "Content-Type: application/json" \
  -d '{"a":{"version":1,"active":true},"b":{"version":2,"active":true}}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/csv-difffree

Row-level diff of two CSV documents.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
arequiredstring-The baseline CSV document.
brequiredstring-The revised CSV to compare against the first.

Example request

curl -X POST https://fileoven.com/api/v1/tools/csv-diff \
  -H "Content-Type: application/json" \
  -d '{"a":"one\ntwo","b":"one\ntwo point five"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/barcode-generatorfree

Generate a Code 128 barcode as SVG.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
textrequiredstring-Printable ASCII, up to 80 characters.
heightnumber100Barcode height in px, 20-400.
module_widthnumber2Narrow-bar width in px, 1-8.

Example request

curl -X POST https://fileoven.com/api/v1/tools/barcode-generator \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/markdown-tablefree

Align a Markdown table's columns.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
markdownrequiredstring-A Markdown table to align.

Example request

curl -X POST https://fileoven.com/api/v1/tools/markdown-table \
  -H "Content-Type: application/json" \
  -d '{"markdown":"# Title"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/slug-generatorfree

URL-safe slug, with accents folded rather than dropped.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
textrequiredstring-The text to turn into a URL-safe slug.
separatorstring-Single separator character.

Example request

curl -X POST https://fileoven.com/api/v1/tools/slug-generator \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/text-encrypt1 credit

AES-GCM encrypt or decrypt a string with a password-derived key.

application/jsonBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
textstring-Plaintext to encrypt. Supply text or ciphertext.
ciphertextstring-Ciphertext to decrypt.
passwordrequiredstring-At least 8 characters.

Example request

curl -X POST https://fileoven.com/api/v1/tools/text-encrypt \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"text":"hello world","password":"your-password"}'

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/vcard-generatorfree

Build an RFC 6350 vCard 3.0 from contact fields.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
first_namestring-Given name. Supply at least one of first_name or last_name.
last_namestring-Family name, used for the N and FN fields.
organizationstring-Organization name for the ORG field.
titlestring-Job title for the TITLE field.
emailstring-Email address for the EMAIL field.
phonestring-Phone number for the TEL field.
urlstring-Website URL for the URL field.
notestring-Free-text note.

Example request

curl -X POST https://fileoven.com/api/v1/tools/vcard-generator \
  -H "Content-Type: application/json" \
  -d '{"first_name":"Ada","last_name":"Lovelace","email":"ada@example.com"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/json-to-tsfree

Generate TypeScript interfaces from a JSON sample.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
jsonrequiredstring-A representative JSON sample to generate types from.
namestringRootName for the root interface.

Example request

curl -X POST https://fileoven.com/api/v1/tools/json-to-ts \
  -H "Content-Type: application/json" \
  -d '{"json":"{\"id\":1,\"name\":\"Ada\"}"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/sql-formatterfree

Pretty-print SQL for a chosen dialect.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
sqlrequiredstring-The SQL query to format.
dialectstringsqlsql, postgresql, mysql, sqlite, bigquery and others.

Example request

curl -X POST https://fileoven.com/api/v1/tools/sql-formatter \
  -H "Content-Type: application/json" \
  -d '{"sql":"select id, name from users where active = 1"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/minifierfree

Minify JavaScript (terser), CSS, or HTML.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
coderequiredstring-The source code to minify.
languagestringjsjs, css or html.

Example request

curl -X POST https://fileoven.com/api/v1/tools/minifier \
  -H "Content-Type: application/json" \
  -d '{"code":"const a = 1;"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/contrast-checkerfree

WCAG contrast ratio with AA/AAA pass flags.

application/jsonNo key required60 req/min per key

Parameters

NameTypeDefaultDescription
foregroundrequiredstring-Colour as a hex string, e.g. #1a1a1a.
backgroundrequiredstring-Colour as a hex string, e.g. #1a1a1a.
font_sizenumber16Font size in px, for the large-text threshold.
boldbooleanfalseWhether the text is bold.

Example request

curl -X POST https://fileoven.com/api/v1/tools/contrast-checker \
  -H "Content-Type: application/json" \
  -d '{"foreground":"#111111","background":"#ffffff"}'

Response

  • 200 JSON result body.
  • Errors return {"error": "..."} with the status codes listed under Errors.

Archive2

POST/v1/tools/zip-tool2 credits

Create a ZIP from uploaded files, or extract one to base64 contents.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filesfile[]-Files to compress into an archive. Supply files to create, or file to extract.
filefile-A ZIP to extract, returned as base64 contents.
modestringautoextract to force extraction.

Example request

curl -X POST https://fileoven.com/api/v1/tools/zip-tool \
  -H "Authorization: Bearer sk_live_..." \
  -F "files=@input.zip" -F "files=@second-input.zip" \
  -o archive.zip

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/bulk-rename2 credits

Find/replace, prefix, suffix and sequence-number a batch of files into a ZIP.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filesrequiredfile[]-Files to rename, 40 MB total.
findstring-Literal substring to replace. Never treated as a pattern.
replacestring-Text that replaces each match of find.
prefixstring-Text prepended to every renamed file.
suffixstring-Text appended before the file extension.
sequencebooleanfalseWhether to append an incrementing sequence number.
startnumber1The first number in the sequence.
paddingnumber3Sequence zero padding, 1-12.

Example request

curl -X POST https://fileoven.com/api/v1/tools/bulk-rename \
  -H "Authorization: Bearer sk_live_..." \
  -F "files=@input.png" -F "files=@second-input.png" \
  -o renamed.zip

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.

3D9

POST/v1/tools/stl-to-glb3 credits

Convert STL to glTF binary. Geometry only, no materials.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/stl-to-glb \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/glb-to-stl3 credits

Convert the first mesh of a GLB to binary STL, with computed facet normals.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/glb-to-stl \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/obj-to-glb3 credits

Convert Wavefront OBJ to glTF binary. N-gons are triangulated.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/obj-to-glb \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/fbx-to-glb501 browser-onlyfree

Not available server-side: FBX is a proprietary binary scene tree with its own compression; converting it needs a real scene graph, not a mesh reader. Use /tools/fbx-to-glb.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/fbx-to-glb

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/usdz-converter501 browser-onlyfree

Not available server-side: USDZ is a zipped USD stage, which needs a full scene graph rather than the mesh geometry our 3D endpoints handle. Use /tools/usdz-converter.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/usdz-converter

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/model-optimizer2 credits

Report mesh statistics and what deduplication would save. Analysis only; does not rewrite the model.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/model-optimizer \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.png"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/glb-to-obj3 credits

Extract the first mesh from a GLB into OBJ. Geometry only, no materials.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/glb-to-obj \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@model.glb" \
  -o model.obj

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/stl-to-obj3 credits

Convert binary or ASCII STL to OBJ. Geometry only, no materials.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/stl-to-obj \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@model.stl" \
  -o model.obj

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/model-viewer501 browser-onlyfree

Not available server-side: A viewer is a UI, not a conversion. Use /tools/model-viewer.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/model-viewer

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.

Audio7

POST/v1/tools/audio-metadata1 credit

Read ID3 / Vorbis / MP4 audio tags.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/audio-metadata \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.mp3"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/audio-strip1 credit

Strip ID3v1/ID3v2 tags from MP3.

multipart/form-dataBearer key required60 req/min per key

Parameters

NameTypeDefaultDescription
filerequiredfile-The file to process.

Example request

curl -X POST https://fileoven.com/api/v1/tools/audio-strip \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@input.mp3"

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • x-credits-used reports what the call cost.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/audio-converter501 browser-onlyfree

Not available server-side: Audio transcoding runs on ffmpeg in the browser. Reading and stripping tags is available server-side; re-encoding is not. Use /tools/audio-converter.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/audio-converter

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/audio-trim501 browser-onlyfree

Not available server-side: Audio transcoding runs on ffmpeg in the browser. Reading and stripping tags is available server-side; re-encoding is not. Use /tools/audio-trim.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/audio-trim

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/audio-merge501 browser-onlyfree

Not available server-side: Audio transcoding runs on ffmpeg in the browser. Reading and stripping tags is available server-side; re-encoding is not. Use /tools/audio-merge.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/audio-merge

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/audio-silence-remove501 browser-onlyfree

Not available server-side: Audio transcoding runs on ffmpeg in the browser. Reading and stripping tags is available server-side; re-encoding is not. Use /tools/audio-silence-remove.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/audio-silence-remove

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/audio-adjuster501 browser-onlyfree

Not available server-side: Audio transcoding runs on ffmpeg in the browser. Reading and stripping tags is available server-side; re-encoding is not. Use /tools/audio-adjuster.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/audio-adjuster

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.

Video11

POST/v1/tools/screen-recorder501 browser-onlyfree

Not available server-side: Records the user's own screen, which only a browser can do. Use /tools/screen-recorder.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/screen-recorder

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/video-to-gif501 browser-onlyfree

Not available server-side: Video transcoding runs on ffmpeg compiled to WebAssembly in the browser. A server version means real per-minute compute cost, which the current pricing does not cover. Use /tools/video-to-gif.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/video-to-gif

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/video-compress501 browser-onlyfree

Not available server-side: Video transcoding runs on ffmpeg compiled to WebAssembly in the browser. A server version means real per-minute compute cost, which the current pricing does not cover. Use /tools/video-compress.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/video-compress

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/mp4-to-webm501 browser-onlyfree

Not available server-side: Video transcoding runs on ffmpeg compiled to WebAssembly in the browser. A server version means real per-minute compute cost, which the current pricing does not cover. Use /tools/mp4-to-webm.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/mp4-to-webm

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/video-trim501 browser-onlyfree

Not available server-side: Video transcoding runs on ffmpeg compiled to WebAssembly in the browser. A server version means real per-minute compute cost, which the current pricing does not cover. Use /tools/video-trim.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/video-trim

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/video-to-audio501 browser-onlyfree

Not available server-side: Video transcoding runs on ffmpeg compiled to WebAssembly in the browser. A server version means real per-minute compute cost, which the current pricing does not cover. Use /tools/video-to-audio.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/video-to-audio

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/video-merge501 browser-onlyfree

Not available server-side: Video transcoding runs on ffmpeg compiled to WebAssembly in the browser. A server version means real per-minute compute cost, which the current pricing does not cover. Use /tools/video-merge.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/video-merge

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/video-resize501 browser-onlyfree

Not available server-side: Video transcoding runs on ffmpeg compiled to WebAssembly in the browser. A server version means real per-minute compute cost, which the current pricing does not cover. Use /tools/video-resize.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/video-resize

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/social-video-toolkit501 browser-onlyfree

Not available server-side: Video editing runs on ffmpeg in the browser. Use /tools/social-video-toolkit.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/social-video-toolkit

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/video-converter501 browser-onlyfree

Not available server-side: Video transcoding runs on ffmpeg compiled to WebAssembly in the browser. A server version means real per-minute compute cost, which the current pricing does not cover. Use /tools/video-converter.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/video-converter

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/gif-to-mp4501 browser-onlyfree

Not available server-side: Video transcoding runs on ffmpeg compiled to WebAssembly in the browser. A server version means real per-minute compute cost, which the current pricing does not cover. Use /tools/gif-to-mp4.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/gif-to-mp4

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.

AI7

POST/v1/tools/remove-background501 browser-onlyfree

Not available server-side: Background removal runs a browser AI model; use /tools/remove-background

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/remove-background

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/image-ocr501 browser-onlyfree

Not available server-side: AI tools are paused while the provider is swapped; use /tools/image-ocr

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/image-ocr

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/speech-transcribe501 browser-onlyfree

Not available server-side: AI tools are paused while the provider is swapped

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/speech-transcribe

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/ai-image-upscaler501 browser-onlyfree

Not available server-side: Paused while the AI provider is replaced. Use /tools/ai-image-upscaler.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/ai-image-upscaler

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/document-data-extractor501 browser-onlyfree

Not available server-side: Built, but switched off while the AI provider is replaced. See Live Testing/ai-provider-plan.md.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/document-data-extractor

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/ai-pdf-assistant501 browser-onlyfree

Not available server-side: Built, but switched off while the AI provider is replaced. See Live Testing/ai-provider-plan.md.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/ai-pdf-assistant

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.
POST/v1/tools/pdf-translator501 browser-onlyfree

Not available server-side: Built, but switched off while the AI provider is replaced. See Live Testing/ai-provider-plan.md.

multipart/form-dataNo key required60 req/min per key

Example request

curl -X POST https://fileoven.com/api/v1/tools/pdf-translator

Response

  • 200 the processed file, with content-disposition naming it, or a JSON result for data endpoints.
  • Errors return {"error": "..."} with the status codes listed under Errors.

Errors

Failures answer with {"error": "..."} and one of these codes.

StatusMeaningWhat to do
400Missing or invalid inputCheck the parameter table for that endpoint.
401Missing or malformed Authorization headerSend Authorization: Bearer sk_live_...
402Invalid API key, or not enough api_creditsTop up credits in the dashboard.
404Unknown tool slugCall GET /v1/tools for the live list.
413File too largeKeep multipart uploads under 50 MB.
429Rate limit exceeded (60/min per key)Back off for the Retry-After interval.
501Tool is browser-onlyCredits are refunded. Use the web tool, or filter on availability.
502Upstream provider failureCredits are refunded. Retry; open a ticket if it persists.

Get an API key

Generate and manage keys in your dashboard. Purchase API credits any time.