Skip to content

Formats

A published list, not a promise about everything

Nobody can support every format ever made, and a service that claims to is lying to you about something you will find out later. Here is the actual list, the limits that apply to each kind of file, and precisely what happens when something outside it arrives.

What Fylane processes

FamilyFormatsOperations
ImagesJPEGPNGWebPAVIFHEICHEIFTIFFGIFBMPSVGConvert, resize, compress, strip metadata, inspect, thumbnail
DocumentsPDFDOCXDOCODTRTFTXTHTMLMarkdownTo PDF, to Markdown, text and structure extraction, preview, merge, split
SpreadsheetsXLSXXLSODSCSVTSVTo PDF, to CSV, sheet and table extraction
PresentationsPPTXPPTODPTo PDF, to images, text extraction
ScansAny imageImage-only PDFOCR to text or structured output, deskew, rotate, searchable PDF
ArchivesZIPTARGZIP7zInspect, list entries, extract safely, recompress

The list grows. It grows by adding engines we have tested against a real corpus, not by adding rows to this page.

Limits that know what the file is

One upload ceiling for everything is the wrong shape. A 200 MB PDF is an ordinary scanned contract. A 200 MB SVG is an attack, because SVG is a text document and nothing legitimate gets near that. So the limit depends on what arrived.

KindLimitWhy
Avatar and profile images20 MBCropped and re-encoded on the way in
Product and content images50 MBCovers full-resolution phone and camera output
PDF250 MBPage count matters more than bytes for OCR cost
Office documents100 MBWell above anything produced by hand
Archives500 MB compressedWith a separate ceiling on expanded size and entry count
SVG2 MBIt is a text document. Anything larger is not a logo

Archives carry a second limit that compressed size cannot express: how far they are allowed to expand, and how many entries they may contain. Forty megabytes that unpack to three terabytes is a known attack, and the bill lands on whoever unpacked it.

When something else turns up

It fails immediately, by name, before any compute is spent — and it tells you what the file actually was, which is usually not what it claimed to be.

{
  "type": "https://fylane.dev/errors/unsupported-file",
  "code": "unsupported_file",
  "message": "This file is a Microsoft Publisher document, which Fylane cannot convert yet.",
  "retryable": false,
  "request_id": "req_01JBQ8Z5T7WXK9MNP2RSTVA3C4",
  "docs_url": "https://fylane.dev/docs/errors/unsupported-file",
  "details": {
    "detected_mime": "application/x-mspublisher",
    "declared_mime": "application/pdf"
  }
}

The type is detected from the bytes, never from the extension or the browser-supplied content type. Both are supplied by whoever uploaded the file.

Not in V1, and why

Video and audio are out
Video needs more compute than a single task can provide — Fargate caps at 16 vCPU — and raises codec licensing questions that deserve their own answer rather than a footnote. Shipping it badly would be worse than not shipping it. It is a V2 decision, made deliberately and not by drift.