Every format, checked.

“1,000+ formats” is true, and also not the number that matters. Here's what tika-server-standard actually parses, measured against the exact jar this build ships, not assumed from a list.

the-measurement

1,683media types detected
615have a real parser (217 direct + 398 via supertype fallback)
601file extensions reach a parser
80distinct parser classes doing the work

Detection and parsing are different claims. Tika's detector reads a file's magic bytes, container structure, or XML namespace, and names the media type correctly. That's the 1,000+ figure everyone, us included, quotes elsewhere on this site. Parsing is a separate question: does any registered parser actually turn that type into text or metadata? For tika-server-standard 3.3.1, the honest answer is 615 of the 1,683 types it detects. The rest come back correctly named and empty.

Provenance: Tika version 3.3.1, jar SHA-256 755d252de43a1995151db3a25c825332d2f27371272c41459bb5b78e21b028bd. This is the exact jar pinned in terraform/lambda-layers/build/versions.env and shipped in the extraction Lambda's layer. Re-run it yourself: download that jar, verify the checksum, then run marketing/scripts/tika-coverage/build-coverage.mjs. The repo's docs/tika-coverage.md has the exact commands. No API key or account needed; it's a standalone Java program against a public jar. Generated 2026-08-13.

look-it-up

Type a file extension (.wpd) or a media type (image/png). Get the verdict this exact build gives it: parsed and by which parser, detect-only, or unknown to Tika entirely.

parsed

Every one of the 601 file extensions that reach a real parser in this build, A to Z. Static markup: this table is here with JavaScript off. It's what a search crawler or an LLM reading llms-full.txt sees too.

ExtensionMedia typeParserWhat you get
.3dmltext/vnd.in3d.3dmlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.3g2video/3gpp2MP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.3gpvideo/3gppMP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.3mfapplication/vnd.ms-package.3dmanufacturing-3dmodel+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.4thtext/x-forthTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.7zapplication/x-7z-compressedPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.aapplication/x-archivePackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.aarttext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.actext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.accdbapplication/x-msaccessJackcessParsertable and row data from a Microsoft Access database file, as text.
.acfmapplication/x-font-adobe-metricAdobeFontMetricParserthe font's metadata (name, glyph widths) — a font file has no prose to extract.
.adtext/x-asciidocTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.adatext/x-adaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.adbtext/x-adaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.adoctext/x-asciidocTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.adstext/x-adaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.afmapplication/x-font-adobe-metricAdobeFontMetricParserthe font's metadata (name, glyph widths) — a font file has no prose to extract.
.aiapplication/illustratorPDFParserthe text layer, reading order reconstructed across columns and pages — if the PDF is a scan with no text layer, this parser returns nothing and Tesseract OCR fills in behind it.
.aifaudio/x-aiffAudioParsercontainer-level metadata (sample rate, channels, duration) for uncompressed/basic audio formats — never a transcript.
.aifcaudio/x-aiffAudioParsercontainer-level metadata (sample rate, channels, duration) for uncompressed/basic audio formats — never a transcript.
.aiffaudio/x-aiffAudioParsercontainer-level metadata (sample rate, channels, duration) for uncompressed/basic audio formats — never a transcript.
.airapplication/vnd.adobe.air-application-installer-package+zipPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.ajtext/x-aspectjTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.altext/x-perlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.amtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.amfapplication/x-amfDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.amfmapplication/x-font-adobe-metricAdobeFontMetricParserthe font's metadata (name, glyph widths) — a font file has no prose to extract.
.anpatext/vnd.iptc.anpaIptcAnpaParserthe article body text from this news-wire transmission format.
.apkapplication/vnd.android.package-archivePackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.applescripttext/x-applescriptTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.apttext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.arapplication/x-archivePackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.arcapplication/x-internet-archiveWARCParsereach captured HTTP response unpacked and re-run through detection — a page crawled into a WARC comes back as that page's extracted text.
.arjapplication/x-arjPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.astext/x-actionscriptTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.asciidoctext/x-asciidocTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.asiceapplication/vnd.etsi.asic-e+zipPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.asicsapplication/vnd.etsi.asic-s+zipPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.asmtext/x-assemblyTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.asptext/aspTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.aspxtext/aspdotnetTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.asxapplication/x-ms-asxDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.atomapplication/atom+xmlFeedParserevery entry's title, summary, and body text pulled out of the feed, not just the feed's own metadata.
.atomcatapplication/atomcat+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.atomsvcapplication/atomsvc+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.auaudio/basicAudioParsercontainer-level metadata (sample rate, channels, duration) for uncompressed/basic audio formats — never a transcript.
.awktext/x-awkTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.bastext/x-basicTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.bashapplication/x-shTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.batapplication/x-batTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.bauapplication/vnd.openofficeorg.autotextPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.bibapplication/x-bibtex-text-fileTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.bibtexapplication/x-bibtex-text-fileTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.bmpimage/bmpImageParser +OCRdimensions and embedded EXIF/IPTC tags — no OCR from this parser alone. (Several of the mime types this covers get real OCR in production anyway — see the Tesseract note below.)
.bozapplication/x-bzip2CompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.bpgimage/x-bpgBPGParsercontainer metadata from this rare image format — not OCR.
.bpmapplication/bizagi-modelerPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.brapplication/x-brotliCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.brotliapplication/x-brotliCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.bshtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.bzapplication/x-bzipCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.bz2application/x-bzip2CompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.ctext/x-c++srcSourceCodeParserthe raw source as text, same as TextAndCSVParser, plus language-aware metadata for a handful of C-family languages.
.cbltext/x-cobolTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cctext/x-c++srcSourceCodeParserthe raw source as text, same as TextAndCSVParser, plus language-aware metadata for a handful of C-family languages.
.ccxmlapplication/ccxml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.cdxmlapplication/vnd.chemdraw+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.cfctext/x-coldfusionTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cfgtext/x-configTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cfmtext/x-coldfusionTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cfmltext/x-coldfusionTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cgitext/x-cgiTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.chmapplication/vnd.ms-htmlhelpChmParserthe text of every HTML page bundled inside the .chm help file.
.cltext/x-common-lispTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.classapplication/java-vmClassParserstructural metadata about the compiled class (version, source file name) — never source code, because a .class file doesn't contain any.
.classpathtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cljtext/x-clojureTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.clstext/x-vbasicTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cmdapplication/x-batTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cndtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cobtext/x-cobolTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.coffeetext/x-coffeescriptTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.comapplication/x-msdownloadExecutableParserstructural metadata about the binary — architecture, linked libraries, sections — never readable prose, because compiled binaries don't contain any.
.conftext/x-configTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.configtext/x-configTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cpioapplication/x-cpioPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.cpptext/x-c++srcSourceCodeParserthe raw source as text, same as TextAndCSVParser, plus language-aware metadata for a handful of C-family languages.
.cr2image/x-canon-cr2TiffParserdimensions and embedded EXIF tags — no OCR from this parser alone (TIFF gets real OCR in production; see the Tesseract note below).
.cr3image/x-canon-cr3MP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.cstext/x-csharpTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.csstext/cssTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.csvtext/csvTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.curltext/vnd.curlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cwikitext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.cxxtext/x-c++srcSourceCodeParserthe raw source as text, same as TextAndCSVParser, plus language-aware metadata for a handful of C-family languages.
.dtext/x-dTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.datatext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.davmountapplication/davmount+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.dbaseapplication/x-dbfDBFParserevery record's field values, as text — a flat-file database format still used by some GIS and legacy business tools.
.dbase3application/x-dbfDBFParserevery record's field values, as text — a flat-file database format still used by some GIS and legacy business tools.
.dbfapplication/x-dbfDBFParserevery record's field values, as text — a flat-file database format still used by some GIS and legacy business tools.
.dcltext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.dcurltext/vnd.curl.dcurlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.dd2application/vnd.oma.dd2+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.debapplication/x-debian-packagePackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.deftext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.dibimage/bmpImageParser +OCRdimensions and embedded EXIF/IPTC tags — no OCR from this parser alone. (Several of the mime types this covers get real OCR in production anyway — see the Tesseract note below.)
.difapplication/dif+xmlDIFParsercell values from this old spreadsheet interchange format, as text.
.difftext/x-diffTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.ditaapplication/dita+xml; format=topicDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.ditamapapplication/dita+xml; format=mapDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.ditavalapplication/dita+xml; format=valDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.dllapplication/x-msdownloadExecutableParserstructural metadata about the binary — architecture, linked libraries, sections — never readable prose, because compiled binaries don't contain any.
.docapplication/mswordOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.docmapplication/vnd.ms-word.document.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.dotapplication/mswordOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.dotmapplication/vnd.ms-word.template.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.dotxapplication/vnd.openxmlformats-officedocument.wordprocessingml.templateOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.dprtext/x-pascalTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.drcvideo/x-diracOggParserthe container's tag metadata (title, artist, encoder) — never a transcript of what's actually said or played.
.dsctext/prs.lines.tagTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.dsptext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.dswtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.dtbapplication/x-dtbook+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.dtdapplication/xml-dtdTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.dwfxmodel/vnd.dwfx+xpsOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.dwgimage/vnd.dwgDWGParserheader and structural metadata from a .dwg drawing — not the drawn content as text.
.etext/x-eiffelTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.earapplication/x-tika-java-enterprise-archivePackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.egrmtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.eltext/x-emacs-lispTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.emfimage/emfEMFParserheader metadata from this vector graphics format — not OCR; EMF is drawing commands, not a photographed page.
.emlmessage/rfc822RFC822Parserheaders (from/to/subject/date) plus the message body, with attachments recursed and extracted the same as an archive member.
.emlxmessage/x-emlxTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.emmaapplication/emma+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.emzimage/x-emf-compressedCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.enttext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.epubapplication/epub+zipEpubParserthe book's text, walked in spine order across every chapter file inside the container.
.erltext/x-erlangTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.es3application/vnd.eszigno3+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.et3application/vnd.eszigno3+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.etxtext/x-setextTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.exeapplication/x-dosexecExecutableParserstructural metadata about the binary — architecture, linked libraries, sections — never readable prose, because compiled binaries don't contain any.
.exptext/x-expectTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.ftext/x-fortranTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.f77text/x-fortranTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.f90text/x-fortranTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.fb2application/x-fictionbook+xmlFictionBookParserthe book's text from this Russian-originated XML ebook format's body.
.flacaudio/x-flacFlacParserthe file's Vorbis-comment tags (title, artist, album) — never a transcript of the audio itself.
.flvvideo/x-flvFLVParsercontainer-level metadata (duration, codec) — never a transcript.
.flxtext/vnd.fmi.flexstorTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.flytext/vnd.flyTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.fntext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.foapplication/xslfo+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.fodpapplication/vnd.oasis.opendocument.flat.presentationFlatOpenDocumentParserthe same document body text as OpenDocumentParser, for ODF's single-XML-file variant (.fodt/.fods/.fodp) instead of the zipped one.
.fodsapplication/vnd.oasis.opendocument.flat.spreadsheetFlatOpenDocumentParserthe same document body text as OpenDocumentParser, for ODF's single-XML-file variant (.fodt/.fods/.fodp) instead of the zipped one.
.fodtapplication/vnd.oasis.opendocument.flat.textFlatOpenDocumentParserthe same document body text as OpenDocumentParser, for ODF's single-XML-file variant (.fodt/.fods/.fodp) instead of the zipped one.
.fortext/x-fortranTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.frmtext/x-vbasicTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.fttext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.fvtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.gtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.gifimage/gifImageParser +OCRdimensions and embedded EXIF/IPTC tags — no OCR from this parser alone. (Several of the mime types this covers get real OCR in production anyway — see the Tesseract note below.)
.gotext/x-goTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.grmtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.groovytext/x-groovySourceCodeParserthe raw source as text, same as TextAndCSVParser, plus language-aware metadata for a handful of C-family languages.
.grxmlapplication/srgs+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.gtarapplication/x-gtarPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.gvtext/vnd.graphvizTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.gzapplication/gzipCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.htext/x-c++hdrTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.hamltext/x-hamlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.handlerstext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.heicimage/heicHeifParsercontainer and EXIF metadata from Apple's modern photo format — no OCR from this parser alone.
.heifimage/heifHeifParsercontainer and EXIF metadata from Apple's modern photo format — no OCR from this parser alone.
.hhtext/x-c++hdrTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.hptext/x-c++hdrTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.hpptext/x-c++hdrTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.hstext/x-haskellTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.htctext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.htmtext/htmlJSoupParserthe visible page text with boilerplate (nav, scripts, styles) stripped, the same reader behind /tools/html-to-text.
.htmltext/htmlJSoupParserthe visible page text with boilerplate (nav, scripts, styles) stripped, the same reader behind /tools/html-to-text.
.hwpxapplication/hwp+zipPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.hxtext/x-haxeTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.hxxtext/x-c++hdrTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.i3text/x-modulaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.ibooksapplication/x-ibooks+zipEpubParserthe book's text, walked in spine order across every chapter file inside the container.
.icnsimage/icnsICNSParserthe icon container's embedded image list metadata — not OCR.
.icoimage/vnd.microsoft.iconImageParserdimensions and embedded EXIF/IPTC tags — no OCR from this parser alone. (Several of the mime types this covers get real OCR in production anyway — see the Tesseract note below.)
.icstext/calendarTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.idltext/x-idlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.idmlapplication/vnd.adobe.indesign-idml-packageIDMLParserstory and text-frame content pulled from an InDesign package's XML story files.
.ifbtext/calendarTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.igtext/x-modulaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.ihtmltext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.intext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.initext/x-iniTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.inxapplication/x-adobe-indesign-interchangeDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.ipaapplication/x-itunes-ipaPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.irpapplication/vnd.irepository.package+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.iso19139text/iso19139+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.itktext/x-tclTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.jadtext/vnd.sun.j2me.app-descriptorTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.jarapplication/java-archivePackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.javatext/x-java-sourceSourceCodeParserthe raw source as text, same as TextAndCSVParser, plus language-aware metadata for a handful of C-family languages.
.jb2image/x-jbig2ImageParserdimensions and embedded EXIF/IPTC tags — no OCR from this parser alone. (Several of the mime types this covers get real OCR in production anyway — see the Tesseract note below.)
.jbig2image/x-jbig2ImageParserdimensions and embedded EXIF/IPTC tags — no OCR from this parser alone. (Several of the mime types this covers get real OCR in production anyway — see the Tesseract note below.)
.jfiimage/jpegJpegParser +OCREXIF tags (camera, GPS, capture date) — no OCR from this parser alone (JPEG gets real OCR in production; see the Tesseract note below).
.jfifimage/jpegJpegParser +OCREXIF tags (camera, GPS, capture date) — no OCR from this parser alone (JPEG gets real OCR in production; see the Tesseract note below).
.jifimage/jpegJpegParser +OCREXIF tags (camera, GPS, capture date) — no OCR from this parser alone (JPEG gets real OCR in production; see the Tesseract note below).
.jltext/x-common-lispTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.jmxtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.jnilibapplication/x-java-jnilibUniversalExecutableParserstructural metadata about the binary (architecture, linked libraries) — never readable prose.
.jpeimage/jpegJpegParser +OCREXIF tags (camera, GPS, capture date) — no OCR from this parser alone (JPEG gets real OCR in production; see the Tesseract note below).
.jpegimage/jpegJpegParser +OCREXIF tags (camera, GPS, capture date) — no OCR from this parser alone (JPEG gets real OCR in production; see the Tesseract note below).
.jpgimage/jpegJpegParser +OCREXIF tags (camera, GPS, capture date) — no OCR from this parser alone (JPEG gets real OCR in production; see the Tesseract note below).
.jstext/javascriptTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.jsonapplication/jsonTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.jsptext/x-jspTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.junittext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.jxtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.jxlimage/jxlJXLParserembedded metadata from this newer JPEG successor format — not OCR.
.karaudio/midiMidiParsertrack and instrument metadata from a MIDI file — MIDI encodes notes, not sound or speech, so there's nothing to transcribe.
.keyapplication/vnd.apple.keynoteIWorkPackageParserthe document body text from Pages/Numbers/Keynote's newer package format.
.kmlapplication/vnd.google-earth.kml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.kmzapplication/vnd.google-earth.kmzPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.ltext/x-lexTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.latexapplication/x-latexTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.lbeapplication/vnd.llamagraphics.life-balance.exchange+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.lesstext/x-lessTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.lhstext/x-haskellTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.link66application/vnd.route66.link66+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.lisptext/x-common-lispTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.listtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.logtext/x-logTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.lostxmlapplication/lost+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.lsptext/x-common-lispTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.luatext/x-luaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.lyrapplication/x-esri-layerOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.lz4application/x-lz4CompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.lzmaapplication/x-lzmaCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.mtext/x-objcsrcTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.m2aaudio/mpegMp3ParserID3 tag metadata (title, artist, album) — never a transcript of the audio.
.m3text/x-modulaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.m3aaudio/mpegMp3ParserID3 tag metadata (title, artist, album) — never a transcript of the audio.
.m4text/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.m4aaudio/mp4MP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.m4baudio/mp4MP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.m4svideo/iso.segmentMP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.m4vvideo/x-m4vMP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.maapplication/mathematicaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mantext/troffTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.manifesttext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.markdowntext/markdownTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.matapplication/x-matlab-dataMatParservariable names and array metadata from a .mat file — numeric data, not prose.
.mathmlapplication/mathml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.mbapplication/mathematicaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mboxapplication/mboxMboxParserevery message in the mailbox file split out and parsed individually, headers and body both.
.mcurltext/vnd.curl.mcurlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mdtext/markdownTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mdbapplication/x-msaccessJackcessParsertable and row data from a Microsoft Access database file, as text.
.mdotext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mdtexttext/markdownTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.metext/troffTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.memgraphapplication/x-memgraphPListParserthe key/value structure of an Apple binary property list, as text — used for a handful of Apple-adjacent formats, not general documents.
.metatext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mftext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mgtext/x-modulaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mhtmultipart/relatedRFC822Parserheaders (from/to/subject/date) plus the message body, with attachments recursed and extracted the same as an archive member.
.mhtmlmultipart/relatedRFC822Parserheaders (from/to/subject/date) plus the message body, with attachments recursed and extracted the same as an archive member.
.midaudio/midiMidiParsertrack and instrument metadata from a MIDI file — MIDI encodes notes, not sound or speech, so there's nothing to transcribe.
.midiaudio/midiMidiParsertrack and instrument metadata from a MIDI file — MIDI encodes notes, not sound or speech, so there's nothing to transcribe.
.mifapplication/vnd.mifMIFParserthe document body text from Adobe FrameMaker's plain-text interchange format.
.mimemessage/rfc822RFC822Parserheaders (from/to/subject/date) plus the message body, with attachments recursed and extracted the same as an archive member.
.mjstext/javascriptTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mkdtext/markdownTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mltext/x-mlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mlitext/x-ocamlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mmapapplication/vnd.mindjet.mindmanagerPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.mmasapplication/vnd.mindjet.mindmanagerPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.mmatapplication/vnd.mindjet.mindmanagerPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.mmmpapplication/vnd.mindjet.mindmanagerPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.mmpapplication/vnd.mindjet.mindmanagerPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.mmptapplication/vnd.mindjet.mindmanagerPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.movvideo/quicktimeMP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.mp2audio/mpegMp3ParserID3 tag metadata (title, artist, album) — never a transcript of the audio.
.mp2aaudio/mpegMp3ParserID3 tag metadata (title, artist, album) — never a transcript of the audio.
.mp3audio/mpegMp3ParserID3 tag metadata (title, artist, album) — never a transcript of the audio.
.mp4video/mp4MP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.mp4aaudio/mp4MP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.mp4sapplication/mp4MP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.mp4vvideo/mp4MP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.mpdapplication/dash+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.mpg4video/mp4MP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.mpgaaudio/mpegMp3ParserID3 tag metadata (title, artist, album) — never a transcript of the audio.
.mpkgapplication/vnd.apple.installer+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.mppapplication/vnd.ms-projectOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.mptapplication/vnd.ms-projectOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.mpxapplication/x-projectTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mstext/troffTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.mscmlapplication/mediaservercontrol+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.msgapplication/vnd.ms-outlookOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.msiapplication/x-ms-installerOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.mspapplication/x-ms-installerOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.mstapplication/x-ms-installerOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.musicxmlapplication/vnd.recordare.musicxml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.mxmlapplication/xv+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.n3text/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.narapplication/vnd.iptc.g2.newsmessage+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.nbapplication/mathematicaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.ncxapplication/x-dtbncx+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.nrofftext/troffTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.numbersapplication/vnd.apple.numbersIWorkPackageParserthe document body text from Pages/Numbers/Keynote's newer package format.
.ocamltext/x-ocamlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.odcapplication/vnd.oasis.opendocument.chartOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.odfapplication/vnd.oasis.opendocument.formulaOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.odftapplication/vnd.oasis.opendocument.formula-templateOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.odgapplication/vnd.oasis.opendocument.graphicsOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.odiapplication/vnd.oasis.opendocument.imageOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.odpapplication/vnd.oasis.opendocument.presentationOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.odsapplication/vnd.oasis.opendocument.spreadsheetOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.odtapplication/vnd.oasis.opendocument.textOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.ogaaudio/oggOggParserthe container's tag metadata (title, artist, encoder) — never a transcript of what's actually said or played.
.oggaudio/vorbisVorbisParserthe codec's Vorbis-comment tags — never a transcript.
.ogmvideo/x-ogmOggParserthe container's tag metadata (title, artist, encoder) — never a transcript of what's actually said or played.
.ogvvideo/oggOggParserthe container's tag metadata (title, artist, encoder) — never a transcript of what's actually said or played.
.ogxapplication/oggOggParserthe container's tag metadata (title, artist, encoder) — never a transcript of what's actually said or played.
.oneapplication/onenote; format=oneOneNoteParsertext content from a OneNote section file — the Table of Contents and Package variants of OneNote's format are detect-only (no parser targets them yet).
.opfapplication/oebps-package+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.opusaudio/opusOpusParserthe codec's Vorbis-comment-style tags — never a transcript.
.osfpvgapplication/vnd.yamaha.openscoreformat.osfpvg+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.ostapplication/vnd.ms-outlook-pstOutlookPSTParserevery message in the .pst/.ost mail store parsed individually — this is a whole mailbox, not a single email (see RFC822Parser/the email guide for a single .eml/.msg).
.otcapplication/vnd.oasis.opendocument.chart-templateOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.otgapplication/vnd.oasis.opendocument.graphics-templateOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.othapplication/vnd.oasis.opendocument.text-webOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.otiapplication/vnd.oasis.opendocument.image-templateOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.otmapplication/vnd.oasis.opendocument.text-masterOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.otpapplication/vnd.oasis.opendocument.presentation-templateOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.otsapplication/vnd.oasis.opendocument.spreadsheet-templateOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.ottapplication/vnd.oasis.opendocument.text-templateOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.owlapplication/rdf+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.oxpsapplication/vnd.ms-xpsdocumentOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.oxtapplication/vnd.openofficeorg.extensionPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.ptext/x-pascalTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.p7capplication/pkcs7-mimePkcs7Parserthe signed payload unwrapped and re-run through detection — the signature itself isn't extractable text.
.p7mapplication/pkcs7-mimePkcs7Parserthe signed payload unwrapped and re-run through detection — the signature itself isn't extractable text.
.p7sapplication/pkcs7-signaturePkcs7Parserthe signed payload unwrapped and re-run through detection — the signature itself isn't extractable text.
.packapplication/x-java-pack200CompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.pagesapplication/vnd.apple.pagesIWorkPackageParserthe document body text from Pages/Numbers/Keynote's newer package format.
.pastext/x-pascalTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.patchtext/x-diffTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.pdfapplication/pdfPDFParserthe text layer, reading order reconstructed across columns and pages — if the PDF is a scan with no text layer, this parser returns nothing and Tesseract OCR fills in behind it.
.pentext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.perltext/x-perlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.phptext/x-phpTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.php3text/x-phpTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.php4text/x-phpTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.pltext/x-perlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.plsapplication/pls+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.pmtext/x-perlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.pngimage/pngImageParser +OCRdimensions and embedded EXIF/IPTC tags — no OCR from this parser alone. (Several of the mime types this covers get real OCR in production anyway — see the Tesseract note below.)
.podtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.pomtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.potapplication/vnd.ms-powerpointOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.potmapplication/vnd.ms-powerpoint.template.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.potxapplication/vnd.openxmlformats-officedocument.presentationml.templateOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.pptext/x-pascalTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.ppaapplication/vnd.ms-powerpointOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.ppamapplication/vnd.ms-powerpoint.addin.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.ppjimage/vnd.adobe.premiereDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.ppsapplication/vnd.ms-powerpointOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.ppsmapplication/vnd.ms-powerpoint.slideshow.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.ppsxapplication/vnd.openxmlformats-officedocument.presentationml.slideshowOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.pptapplication/vnd.ms-powerpointOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.pptmapplication/vnd.ms-powerpoint.presentation.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentationOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.ppzapplication/vnd.ms-powerpointOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.protext/x-prologTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.projecttext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.propertiestext/x-java-propertiesTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.prtapplication/x-prtPRTParserstructural metadata from this CAD/manufacturing part format — not readable prose.
.psdimage/vnd.adobe.photoshopPSDParserlayer names and image metadata from a .psd file — not OCR, and not layer contents rendered as an image.
.pstapplication/vnd.ms-outlook-pstOutlookPSTParserevery message in the .pst/.ost mail store parsed individually — this is a whole mailbox, not a single email (see RFC822Parser/the email guide for a single .eml/.msg).
.pubapplication/x-mspublisherOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.pytext/x-pythonTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.qpwapplication/x-quattro-proOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.qtvideo/quicktimeMP4Parserthe container's tag metadata (title, duration, codec) for MP4-family video and audio — never a transcript of spoken words.
.rtext/x-rsrcTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rarapplication/x-rar-compressedRarParserevery file inside the archive extracted and recursed, the same as the ZIP/7z path.
.rbtext/x-rubyTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rdfapplication/rdf+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.resapplication/x-dtbresource+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.resttext/x-rstTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.restxtext/x-rstTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rexxtext/x-rexxTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rifapplication/reginfo+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.rlapplication/resource-lists+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.rldapplication/resource-lists-diff+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.rmiaudio/midiMidiParsertrack and instrument metadata from a MIDI file — MIDI encodes notes, not sound or speech, so there's nothing to transcribe.
.rncapplication/relax-ng-compact-syntaxTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rngtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rnxtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rofftext/troffTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rolestext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rsapplication/rls-services+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.rsdapplication/rsd+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.rssapplication/rss+xmlFeedParserevery entry's title, summary, and body text pulled out of the feed, not just the feed's own metadata.
.rsttext/x-rstTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.rtfapplication/rtfRTFParserthe document body text, control words and named special characters resolved to their actual characters.
.rtxtext/richtextTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.stext/x-assemblyTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.sasapplication/x-sasTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.sas7bdatapplication/x-sas-dataSAS7BDATParsercolumn names and row values from a SAS statistical dataset, as text.
.sbmlapplication/sbml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.scadapplication/x-openscadTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.scalatext/x-scalaTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.schemastext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.scmtext/x-schemeTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.scurltext/vnd.curl.scurlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.sd7application/x-sas-dataSAS7BDATParsercolumn names and row values from a SAS statistical dataset, as text.
.sdaapplication/vnd.stardivision.drawOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.sdcapplication/vnd.stardivision.calcOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.sddapplication/vnd.stardivision.impressOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.sdkdapplication/vnd.solent.sdkm+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.sdkmapplication/vnd.solent.sdkm+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.sdwapplication/vnd.stardivision.writerOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.sedtext/x-sedTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.sfduapplication/x-sfduTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.sgmtext/sgmlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.sgmltext/sgmlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.shapplication/x-shTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.shfapplication/shf+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.shwapplication/x-corelpresentationsOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.sldasmapplication/sldworksOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.slddrwapplication/sldworksOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.sldmapplication/vnd.ms-powerpoint.slide.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.sldprtapplication/sldworksOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.sldxapplication/vnd.openxmlformats-officedocument.presentationml.slideOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.smiapplication/smil+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.smilapplication/smil+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.smlapplication/smil+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.sndaudio/basicAudioParsercontainer-level metadata (sample rate, channels, duration) for uncompressed/basic audio formats — never a transcript.
.spottext/vnd.in3d.spotTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.spxaudio/speexSpeexParserthe codec's comment-header tags — never a transcript.
.sqltext/x-sqlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.srtapplication/x-subripTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.srxapplication/sparql-results+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.ssmlapplication/ssml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.sttext/x-stsrcTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.stwapplication/vnd.sun.xml.writer.templateOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.svgimage/svg+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.svgzimage/svg+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.sxcapplication/vnd.sun.xml.calcPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.sxdapplication/vnd.sun.xml.drawPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.sxiapplication/vnd.sun.xml.impressPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.sxwapplication/vnd.sun.xml.writerOpenDocumentParserthe document body text from ODF files (LibreOffice/OpenOffice's native zipped format) — text, spreadsheet, presentation, and drawing variants alike.
.ttext/troffTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.tarapplication/x-tarPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.tbzapplication/x-bzipCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.tbz2application/x-bzip2CompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.tcltext/x-tclTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.texapplication/x-texTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.texttext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.tgzapplication/gzipCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.thmxapplication/vnd.openxmlformats-officedocument.presentationml.presentationOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.tifimage/tiffTiffParser +OCRdimensions and embedded EXIF tags — no OCR from this parser alone (TIFF gets real OCR in production; see the Tesseract note below).
.tiffimage/tiffTiffParser +OCRdimensions and embedded EXIF tags — no OCR from this parser alone (TIFF gets real OCR in production; see the Tesseract note below).
.tktext/x-tclTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.tldtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.tmxapplication/x-tmxTMXParserevery translation unit's source and target text pulled from the TMX file.
.trtext/troffTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.tsdapplication/timestamped-dataTSDParserthe timestamp and signer metadata wrapping a signed payload — not the payload's own content.
.tsvtext/tab-separated-valuesTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.ttcapplication/x-font-ttfTrueTypeParserthe font's name table and other embedded metadata — again, no prose in a font file.
.ttfapplication/x-font-ttfTrueTypeParserthe font's name table and other embedded metadata — again, no prose in a font file.
.ttmlapplication/ttml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.txttext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.typestext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.udebapplication/x-debian-packagePackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.uomlapplication/vnd.uoml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.uritext/uri-listTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.uristext/uri-listTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.urlstext/uri-listTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.uutext/x-uuencodeTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vtext/x-verilogTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vbtext/x-vbdotnetTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vbstext/x-vbscriptTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vcftext/x-vcardTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vcstext/x-vcalendarTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vhdtext/x-vhdlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vhdltext/x-vhdlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vmtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vorapplication/x-staroffice-templateOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.vsdapplication/vnd.visioOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.vsdmapplication/vnd.ms-visio.drawing.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.vsdxapplication/vnd.ms-visio.drawingOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.vsltext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vssapplication/vnd.visioOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.vssmapplication/vnd.ms-visio.stencil.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.vssxapplication/vnd.ms-visio.stencilOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.vstapplication/vnd.visioOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.vstmapplication/vnd.ms-visio.template.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.vstxapplication/vnd.ms-visio.templateOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.vswapplication/vnd.visioOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.vtttext/vttTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.vxmlapplication/voicexml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.warapplication/x-tika-java-web-archivePackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.warcapplication/warcWARCParsereach captured HTTP response unpacked and re-run through detection — a page crawled into a WARC comes back as that page's extracted text.
.wavaudio/vnd.waveAudioParsercontainer-level metadata (sample rate, channels, duration) for uncompressed/basic audio formats — never a transcript.
.wb1application/x-quattro-proOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.wb2application/x-quattro-proOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.wb3application/x-quattro-proOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.wbmpimage/vnd.wap.wbmpImageParserdimensions and embedded EXIF/IPTC tags — no OCR from this parser alone. (Several of the mime types this covers get real OCR in production anyway — see the Tesseract note below.)
.wbsapplication/vnd.criticaltools.wbs+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.wcmapplication/vnd.ms-worksOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.wdbapplication/vnd.ms-worksOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.webarchiveapplication/x-webarchivePListParserthe key/value structure of an Apple binary property list, as text — used for a handful of Apple-adjacent formats, not general documents.
.webmanifestapplication/manifest+jsonTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.webpimage/webpWebPParser +OCRcontainer metadata — no OCR from this parser alone (WebP gets real OCR in production; see the Tesseract note below).
.wkqapplication/x-quattro-proOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.wksapplication/vnd.ms-worksOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.wlapplication/vnd.wolfram.wlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.wmfimage/wmfWMFParserheader metadata from this older vector graphics format — not OCR; WMF is drawing commands, not a photographed page.
.wmltext/vnd.wap.wmlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.wmlstext/vnd.wap.wmlscriptTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.wmzapplication/x-ms-wmzCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.wpsapplication/vnd.ms-worksOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.wq1application/x-quattro-proOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.wq2application/x-quattro-proOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.wsddtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.wsdlapplication/wsdl+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.wspolicyapplication/wspolicy+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xargstext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xbmimage/x-xbitmapTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xcattext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xcfimage/x-xcfImageParserdimensions and embedded EXIF/IPTC tags — no OCR from this parser alone. (Several of the mime types this covers get real OCR in production anyway — see the Tesseract note below.)
.xconftext/x-configTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xdmapplication/vnd.syncml.dm+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xdpapplication/vnd.adobe.xdp+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xegrmtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xencapplication/xenc+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xerapplication/patch-ops-error+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xfdfapplication/vnd.adobe.xfdfDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xgrmtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xhtapplication/xhtml+xmlJSoupParserthe visible page text with boilerplate (nav, scripts, styles) stripped, the same reader behind /tools/html-to-text.
.xhtmlapplication/xhtml+xmlJSoupParserthe visible page text with boilerplate (nav, scripts, styles) stripped, the same reader behind /tools/html-to-text.
.xhtml2application/xhtml+xmlJSoupParserthe visible page text with boilerplate (nav, scripts, styles) stripped, the same reader behind /tools/html-to-text.
.xhvmlapplication/xv+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xlaapplication/vnd.ms-excelOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.xlamapplication/vnd.ms-excel.addin.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.xlcapplication/vnd.ms-excelOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.xldapplication/vnd.ms-excelOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.xlextext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xlfapplication/x-xliff+xmlXLIFF12Parserevery translation unit's source and target text from an XLIFF 1.2 file.
.xliffapplication/x-xliff+xmlXLIFF12Parserevery translation unit's source and target text from an XLIFF 1.2 file.
.xllapplication/vnd.ms-excelOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.xlmapplication/vnd.ms-excelOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.xlogtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xlrapplication/x-tika-msworks-spreadsheetOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.xlsapplication/vnd.ms-excelOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.xlsbapplication/vnd.ms-excel.sheet.binary.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.xlsmapplication/vnd.ms-excel.sheet.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.xltapplication/vnd.ms-excelOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.xltmapplication/vnd.ms-excel.template.macroenabled.12OOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.xltxapplication/vnd.openxmlformats-officedocument.spreadsheetml.templateOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.xlwapplication/vnd.ms-excelOfficeParserthe document body text from old-format Word/Excel/PowerPoint/Outlook/Project/Visio files — the pre-2007 binary formats, not the OOXML zips.
.xlzapplication/x-xliff+zipXLZParserthe same translation-unit text as XLIFF12Parser, unpacked from XLIFF's zipped variant first.
.xmaptext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xmindapplication/x-xmindPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.xmlapplication/xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xmpapplication/rdf+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xopapplication/xop+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xpsapplication/vnd.ms-xpsdocumentOOXMLParserthe document body text from .docx/.xlsx/.pptx-family files, including macro-enabled and template variants, plus embedded content Word/Excel/PowerPoint themselves would show you.
.xqapplication/xqueryTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xqueryapplication/xqueryTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xrolestext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xsamplestext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xsdapplication/xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xslapplication/xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xslfoapplication/xslfo+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xsltapplication/xslt+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xsmapplication/vnd.syncml+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xsptext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xspfapplication/xspf+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xtesttext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xulapplication/vnd.mozilla.xul+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xvmapplication/xv+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xvmlapplication/xv+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.xwebtext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xwelcometext/plainTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.xzapplication/x-xzCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.ytext/x-yaccTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.yamltext/x-yamlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.ymltext/x-yamlTextAndCSVParserthe raw text, decoded from whichever character set it auto-detects, with delimited data (CSV/TSV) also parsed into rows and columns. This is why source code, config, and markup-adjacent plain-text files (.py, .json, .yaml, .md, and hundreds of others) all just work: they're subtypes of text/plain.
.zapplication/x-compressCompressorParserwhatever the compressed stream contains, decompressed and then run back through detection — a .gz wrapping a PDF comes back as that PDF's text, not a description of gzip.
.zazapplication/vnd.zzazz.deck+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.
.zipapplication/zipPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.zipxapplication/zipPackageParserevery file inside the archive extracted and recursed — each member gets its own pass through the same detection-and-parsing pipeline, so a .zip full of PDFs comes back with all of their text, not just filenames.
.zmmapplication/vnd.handheld-entertainment+xmlDcXMLParserthe Dublin Core / OOXML-style metadata fields — title, author, dates — plus any text content the schema carries. The biggest single bucket here: most of it is XML-based application formats (feeds, office-adjacent XML dialects, 3D/CAD interchange formats) that share this generic reader.

detect-only

683 extensions Tika names correctly but has no parser for in this build. Sending one of these to the API returns the identified content type and an extraction error, not a fabricated result.

Counted by media type rather than by extension, 1,068 of the 1,683 types this build detects have no parser. This table can only show the 534 of them that register a file extension. The other 534 are known to Tika by media type alone. The lookup above covers all of them either way.

ExtensionMedia typeDescription
.123application/vnd.lotus-1-2-3Lotus 1-2-3
.3dsimage/x-3ds3D Studio (V1)
.3frimage/x-raw-hasselbladHasselblad raw image
.aabapplication/x-authorware-bin
.aacaudio/x-aac
.aamapplication/x-authorware-map
.aasapplication/x-authorware-seg
.abwapplication/x-abiword
.ac3audio/ac3Dolby Digital Audio Compression File
.accapplication/vnd.americandynamics.acc
.aceapplication/x-ace-compressed
.acuapplication/vnd.acucobol
.acutcapplication/vnd.acucorp
.adfapplication/x-amiga-disk-formatAmiga Disk File
.adpaudio/adpcm
.aepapplication/vnd.adobe.aftereffects.project
.aetapplication/vnd.adobe.aftereffects.template
.afpapplication/vnd.ibm.modcap
.amiapplication/vnd.amiga.ami
.amraudio/amr
.applicationapplication/x-ms-application
.aprapplication/vnd.lotus-approach
.arwimage/x-raw-sonySony raw image
.ascapplication/pgp-signature
.asfvideo/x-ms-asf
.asndaudio/vnd.adobe.soundbooth
.asoapplication/vnd.accpac.simply.aso
.atcapplication/vnd.acucorp
.atxapplication/vnd.antix.game-component
.avivideo/x-msvideoAudio Video Interleave File
.avifimage/avifAV1 Image File
.awapplication/applixware
.axxapplication/x-axcryptAxCrypt
.azfapplication/vnd.airzip.filesecure.azf
.azsapplication/vnd.airzip.filesecure.azs
.azwapplication/vnd.amazon.ebook
.bayimage/x-raw-casioCasio raw image
.bcpioapplication/x-bcpio
.bdfapplication/x-font-bdf
.bdmapplication/vnd.syncml.dm+wbxml
.bh2application/vnd.fujitsu.oasysprs
.binapplication/octet-stream
.bmiapplication/vnd.bmi
.bookapplication/vnd.framemaker
.boxapplication/vnd.previewsystems.box
.bpkapplication/octet-stream
.btifimage/prs.btif
.bupapplication/x-dvd-ifoDVD information file
.c4dapplication/vnd.clonk.c4group
.c4fapplication/vnd.clonk.c4group
.c4gapplication/vnd.clonk.c4group
.c4papplication/vnd.clonk.c4group
.c4uapplication/vnd.clonk.c4group
.cabapplication/vnd.ms-cab-compressed
.cafaudio/x-cafcom.apple.coreaudio-format
.capapplication/vnd.tcpdump.pcapTCPDump pcap packet capture
.carapplication/vnd.curl.car
.catapplication/vnd.ms-pki.seccat
.cborapplication/cborConcise Binary Object Representation container
.cctapplication/x-directorShockwave Movie
.cdaapplication/x-cdfCD Audio
.cdbcmsgapplication/vnd.contact.cmsg
.cdfapplication/x-netcdf
.cdkeyapplication/vnd.mediastation.cdkey
.cdrapplication/coreldrawdes: CorelDraw X4 and newer
.cdxchemical/x-cdx
.cdyapplication/vnd.cinderella
.celimage/vnd.dgn
.cerapplication/pkix-cert
.cgmimage/cgmComputer Graphics Metafile
.chatapplication/x-chat
.chrtapplication/vnd.kde.kchartKChart File
.cifchemical/x-cif
.ciiapplication/vnd.anser-web-certificate-issue-initiation
.cilapplication/vnd.ms-artgalry
.claapplication/vnd.claymore
.clkkapplication/vnd.crick.clicker.keyboard
.clkpapplication/vnd.crick.clicker.palette
.clktapplication/vnd.crick.clicker.template
.clkwapplication/vnd.crick.clicker.wordbank
.clkxapplication/vnd.crick.clicker
.clpapplication/x-msclip
.cmcapplication/vnd.cosmocaller
.cmdfchemical/x-cmdf
.cmlchemical/x-cml
.cmpapplication/vnd.yellowriver-custom-menu
.cmximage/x-cmx
.codapplication/vnd.rim.cod
.cptapplication/mac-compactpro
.crdapplication/x-mscardfile
.crlapplication/pkix-crl
.crtapplication/x-x509-cert
.crwimage/x-raw-canonCanon raw image
.crxapplication/x-chrome-packageChrome Extension Package
.cshapplication/x-csh
.csmlchemical/x-csml
.cspapplication/vnd.commonspace
.cstapplication/x-directorShockwave Movie
.cuapplication/cu-seeme
.cwkapplication/x-appleworks
.cwwapplication/prs.cww
.cxtapplication/x-directorShockwave Movie
.dafapplication/vnd.mobius.daf
.datalessapplication/vnd.fdsn.seed
.dcrapplication/x-directorShockwave Movie
.dcsimage/x-raw-kodakKodak raw image
.dcximage/vnd.zbrush.dcxZSoft Multi-Page Paintbrush
.dddapplication/vnd.fujixerox.ddd
.deployapplication/octet-stream
.derapplication/x-x509-cert; format=der
.dexapplication/x-dexDalvik Executable Format
.dfacapplication/vnd.dreamfactory
.dgnimage/vnd.dgn
.dgnlibimage/vnd.dgn
.dirapplication/x-directorShockwave Movie
.disapplication/vnd.mobius.dis
.distapplication/octet-stream
.distzapplication/octet-stream
.djvimage/vnd.djvu
.djvuimage/vnd.djvu
.dmgapplication/x-apple-diskimage
.dmpapplication/vnd.tcpdump.pcapTCPDump pcap packet capture
.dmsapplication/octet-stream
.dnaapplication/vnd.dna
.dngimage/x-raw-adobeAdobe Digital Negative
.doapplication/x-stata-doStata DTA Script
.dpapplication/vnd.osgi.dp
.dpgapplication/vnd.dpgraph
.dpximage/x-dpxDigital Picture Exchange from SMPTE
.drfimage/x-raw-kodakKodak raw image
.dtaapplication/x-stata-dtaStata DTA Dataset
.dtsaudio/vnd.dts
.dtshdaudio/vnd.dts.hd
.dumpapplication/octet-stream
.dviapplication/x-dviTeX Device Independent Document
.dwfmodel/vnd.dwfAutoCAD Design Web Format
.dxbimage/vnd.dxbAutoCAD DXF simplified Binary
.dxfimage/vnd.dxfAutoCAD DXF
.dxpapplication/vnd.spotfire.dxp
.dxrapplication/x-directorShockwave Movie
.e57model/e573d imaging data exchange
.ecelp4800audio/vnd.nuera.ecelp4800
.ecelp7470audio/vnd.nuera.ecelp7470
.ecelp9600audio/vnd.nuera.ecelp9600
.ecmaapplication/ecmascript
.edmapplication/vnd.novadigm.edm
.edxapplication/vnd.novadigm.edx
.efifapplication/vnd.picsel
.ei6application/vnd.pg.osasli
.elcapplication/octet-stream
.enrapplication/x-endnote-refer
.ensapplication/x-endnote-style
.enwapplication/x-endnote-refer
.eolaudio/vnd.digital-winds
.eotapplication/vnd.ms-fontobject
.epsapplication/postscriptPostScript
.epsfapplication/postscriptPostScript
.epsiapplication/postscriptPostScript
.erfimage/x-raw-epsonEpson raw image
.esfapplication/vnd.epson.esf
.exrimage/acesACES Image Container File
.extapplication/vnd.novadigm.ext
.ezapplication/andrew-inset
.ez2application/vnd.ezpix-album
.ez3application/vnd.ezpix-package
.f4vvideo/x-f4v
.fbsimage/vnd.fastbidsheet
.fcsapplication/vnd.isac.fcsFlow Cytometry Standard File
.fdfapplication/vnd.fdfForms Data Format
.fffimage/x-raw-imaconImacon raw image
.fg5application/vnd.fujitsu.oasysgp
.fgdapplication/x-directorShockwave Movie
.fhimage/x-freehandFreeHand image
.fh10image/x-freehandFreeHand image
.fh11image/x-freehandFreeHand image
.fh12image/x-freehandFreeHand image
.fh4image/x-freehandFreeHand image
.fh40image/x-freehandFreeHand image
.fh5image/x-freehandFreeHand image
.fh50image/x-freehandFreeHand image
.fh7image/x-freehandFreeHand image
.fh8image/x-freehandFreeHand image
.fh9image/x-freehandFreeHand image
.fhcimage/x-freehandFreeHand image
.figapplication/x-xfig
.fitapplication/fitsFlexible Image Transport System
.fitsapplication/fitsFlexible Image Transport System
.flcvideo/x-flc
.flivideo/x-fli
.floapplication/vnd.micrografx.flo
.flwapplication/vnd.kde.kivio
.fmapplication/vnd.framemaker
.fncapplication/vnd.frogans.fnc
.fp7application/x-filemakerFileMaker Pro 7
.fpximage/vnd.fpx
.frameapplication/vnd.framemaker
.fscapplication/vnd.fsc.weblaunch
.fstimage/vnd.fst
.ft10image/x-freehandFreeHand image
.ft11image/x-freehandFreeHand image
.ft12image/x-freehandFreeHand image
.ft7image/x-freehandFreeHand image
.ft8image/x-freehandFreeHand image
.ft9image/x-freehandFreeHand image
.ftcapplication/vnd.fluxtime.clip
.ftiapplication/vnd.anser-web-funds-transfer-initiation
.ftsapplication/fitsFlexible Image Transport System
.fvtvideo/vnd.fvt
.fzsapplication/vnd.fuzzysheet
.g3image/g3fax
.gacapplication/vnd.groove-account
.gdlmodel/vnd.gdl
.geoapplication/vnd.dynageo
.gexapplication/vnd.geometry-explorer
.ggbapplication/vnd.geogebra.file
.ggtapplication/vnd.geogebra.tool
.ghfapplication/vnd.groove-help
.gimapplication/vnd.groove-identity-message
.gmxapplication/vnd.gmx
.gnucashapplication/x-gnucash
.gnumericapplication/x-gnumeric
.gp4application/x-guitar-proGuitar Pro
.gpgapplication/pgp-encrypted
.gphapplication/vnd.flographit
.gpkgapplication/x-geopackage
.gqfapplication/vnd.grafeq
.gqsapplication/vnd.grafeq
.gramapplication/srgs
.grbapplication/x-gribGeneral Regularly-distributed Information in Binary form
.grb1application/x-gribGeneral Regularly-distributed Information in Binary form
.grb2application/x-gribGeneral Regularly-distributed Information in Binary form
.greapplication/vnd.geometry-explorer
.grvapplication/vnd.groove-injector
.gsfapplication/x-font-ghostscript
.gslibaudio/x-psfPortable Sound Format
.gtmapplication/vnd.groove-tool-message
.gtwmodel/vnd.gtw
.h261video/h261
.h263video/h263
.h264video/h264
.h5application/x-hdfHierarchical Data Format File
.hbciapplication/vnd.hbci
.hdfapplication/x-hdfHierarchical Data Format File
.hdrapplication/envi.hdr
.he5application/x-hdfHierarchical Data Format File
.hfaapplication/x-erdas-hfa
.hlpapplication/winhlp
.hpglapplication/vnd.hp-hpgl
.hpidapplication/vnd.hp-hpid
.hprofapplication/vnd.java.hprofJava hprof text file
.hpsapplication/vnd.hp-hps
.hqxapplication/mac-binhex40
.htkeapplication/vnd.kenameaapp
.hvdapplication/vnd.yamaha.hv-dic
.hvpapplication/vnd.yamaha.hv-voice
.hvsapplication/vnd.yamaha.hv-script
.icbimage/x-tgaTarga image data
.iccapplication/vnd.iccprofile
.icex-conference/x-cooltalkCooltalk Audio
.icmapplication/vnd.iccprofile
.iefimage/ief
.ifmapplication/vnd.shana.informed.formdata
.ifoapplication/x-dvd-ifoDVD information file
.igesmodel/igesInitial Graphics Exchange Specification Format
.iglapplication/vnd.igloader
.igsmodel/igesInitial Graphics Exchange Specification Format
.igxapplication/vnd.micrografx.igx
.iifapplication/vnd.shana.informed.interchange
.iiqimage/x-raw-phaseonePhase One raw image
.impapplication/vnd.accpac.simply.imp
.imsapplication/vnd.ms-ims
.inddapplication/x-adobe-indesignAdobe InDesign document
.ipkapplication/vnd.shana.informed.package
.irmapplication/vnd.ibm.rights-management
.isoapplication/x-iso9660-imageISO 9660 CD-ROM filesystem data
.itpapplication/vnd.shana.informed.formtemplate
.ivpapplication/vnd.immervision-ivp
.ivuapplication/vnd.immervision-ivu
.j2cimage/x-jp2-codestreamJPEG 2000 Codestream
.jamapplication/vnd.jam
.jdfapplication/x-jeol-jdfJDF NMR Spectroscopy
.jispapplication/vnd.jisp
.jksapplication/x-java-keystoreJava Keystore
.jltapplication/vnd.hp-jlyt
.jngvideo/x-jng
.jnlpapplication/x-java-jnlp-file
.jodaapplication/vnd.joost.joda-archive
.jp2image/jp2JPEG 2000 Part 1 (JP2)
.jpfimage/jpxJPEG 2000 Part 2 (JPX)
.jpgmimage/jpmJPEG 2000 Part 6 (JPM)
.jpgvvideo/jpeg
.jpmimage/jpmJPEG 2000 Part 6 (JPM)
.k25image/x-raw-kodakKodak raw image
.karbonapplication/vnd.kde.karbon
.kdcimage/x-raw-kodakKodak raw image
.kfoapplication/vnd.kde.kformula
.kiaapplication/vnd.kidspiration
.kilapplication/x-killustratorKIllustrator File
.kneapplication/vnd.kinar
.knpapplication/vnd.kinar
.konapplication/vnd.kde.kontour
.kprapplication/vnd.kde.kpresenterKPresenter File
.kptapplication/vnd.kde.kpresenterKPresenter File
.kspapplication/vnd.kde.kspreadKSpread File
.ktrapplication/vnd.kahootz
.ktzapplication/vnd.kahootz
.kwdapplication/vnd.kde.kwordKWord File
.kwtapplication/vnd.kde.kwordKWord File
.lasapplication/x-asprsASPRS Lidar Data Exchange Format
.lazapplication/x-asprsASPRS Lidar Data Exchange Format
.lbdapplication/vnd.llamagraphics.life-balance.desktop
.lesapplication/vnd.hhe.lesson-player
.lhaapplication/octet-stream
.list3820application/vnd.ibm.modcap
.listafpapplication/vnd.ibm.modcap
.lrfapplication/octet-stream
.lrmapplication/vnd.ms-lrm
.ltfapplication/vnd.frogans.ltf
.lvpaudio/vnd.lucent.voice
.lwpapplication/vnd.lotus-wordpro
.lzapplication/x-lzipLzip (LZMA) compressed archive
.lzhapplication/octet-stream
.m13application/x-msmediaview
.m14application/x-msmediaview
.m1vvideo/mpegMPEG Movie Clip
.m2vvideo/mpegMPEG Movie Clip
.m3uaudio/x-mpegurlMP3 Playlist File
.m3u8application/vnd.apple.mpegurl
.m4uvideo/vnd.mpegurl
.magapplication/vnd.ecowin.chart
.makerapplication/vnd.framemaker
.mbkapplication/vnd.mobius.mbk
.mc1application/vnd.medcalcdata
.mcdapplication/vnd.mcd
.mdiimage/vnd.ms-modiMicrosoft Document Imaging
.mefimage/x-raw-mamiyaMamiya raw image
.meshmodel/mesh
.mfmapplication/vnd.mfmp
.mgzapplication/vnd.proteus.magazine
.minigsfaudio/x-psfPortable Sound Format
.minipsfaudio/x-psfPortable Sound Format
.minipsf1audio/x-psfPortable Sound Format
.mj2video/mj2JPEG 2000 Part 3 (Motion JPEG, MJ2)
.mjp2video/mj2JPEG 2000 Part 3 (Motion JPEG, MJ2)
.mkaaudio/x-matroska
.mkvvideo/x-matroska
.mlpapplication/vnd.dolby.mlp
.mmdapplication/vnd.chipnuts.karaoke-mmd
.mmfapplication/vnd.smaf
.mmrimage/vnd.fujixerox.edmics-mmr
.mngvideo/x-mng
.mnyapplication/x-msmoney
.mobiapplication/x-mobipocket-ebookMobipocket Ebook
.modaudio/x-mod
.mosimage/x-raw-leafLeaf raw image
.movievideo/x-sgi-movie
.mpcapplication/vnd.mophun.certificate
.mpevideo/mpegMPEG Movie Clip
.mpegvideo/mpegMPEG Movie Clip
.mpgvideo/mpegMPEG Movie Clip
.mpmapplication/vnd.blueice.multipass
.mpnapplication/vnd.mophun.application
.mpyapplication/vnd.ibm.minipay
.mqyapplication/vnd.mobius.mqy
.mrcapplication/marc
.mrwimage/x-raw-minoltaMinolta raw image
.msaapplication/vnd.msa-disk-imageMagic Shadow Archiver
.mseedapplication/vnd.fdsn.mseed
.mseqapplication/vnd.mseq
.msfapplication/vnd.epson.msf
.mshmodel/mesh
.mslapplication/vnd.mobius.msl
.mstyapplication/vnd.muvee.style
.mtsmodel/vnd.mts
.musapplication/vnd.musician
.mvbapplication/x-msmediaview
.mwfapplication/vnd.mfer
.mxfapplication/mxf
.mxlapplication/vnd.recordare.musicxml
.mxsapplication/vnd.triscape.mxs
.mxuvideo/vnd.mpegurl
.mydapplication/x-mysql-misam-dataMySQL MISAM Data
.myiapplication/x-mysql-misam-compressed-indexMySQL MISAM Compressed Index
.ncapplication/x-netcdf
.nefimage/x-raw-nikonNikon raw image
.nesapplication/x-nesromNintendo Entertainment System ROM
.ngdatapplication/vnd.nokia.n-gage.data
.nitfimage/nitf
.nluapplication/vnd.neurolanguage.nlu
.nmlapplication/vnd.enliven
.nndapplication/vnd.noblenet-directory
.nnsapplication/vnd.noblenet-sealer
.nnwapplication/vnd.noblenet-web
.npximage/vnd.net-fpx
.nrwimage/x-raw-nikonNikon raw image
.nsfapplication/vnd.lotus-notes
.ntfimage/nitf
.oa2application/vnd.fujitsu.oasys2
.oa3application/vnd.fujitsu.oasys3
.oasapplication/vnd.fujitsu.oasys
.obdapplication/x-msbinder
.odaapplication/oda
.odbapplication/vnd.oasis.opendocument.base
.onepkgapplication/onenote; format=packageOneNote Package
.onetmpapplication/onenote
.onetocapplication/onenote; format=onetoc2OneNote Table of Contents
.onetoc2application/onenote; format=onetoc2OneNote Table of Contents
.oprcapplication/vnd.palm
.orfimage/x-raw-olympusOlympus raw image
.orgapplication/vnd.lotus-organizer
.osfapplication/vnd.yamaha.openscoreformat
.otfapplication/x-font-otfOpenType Font
.p10application/pkcs10
.p12application/x-pkcs12
.p7bapplication/x-pkcs7-certificates
.p7rapplication/x-pkcs7-certreqresp
.pamimage/x-portable-arbitrarymapUNIX Portable Bitmap Graphic Arbitrary Map
.parquetapplication/x-parquet
.pbdapplication/vnd.powerbuilder6
.pbmimage/x-portable-bitmapPortable Bit Map
.pcapapplication/vnd.tcpdump.pcapTCPDump pcap packet capture
.pcapngapplication/vnd.tcpdump.pcapngTCPDump next gen pcap packet capture
.pcfapplication/x-font-pcf
.pclapplication/vnd.hp-pcl
.pclxlapplication/vnd.hp-pclxl
.pctimage/x-pictApple Macintosh QuickDraw/PICT Format
.pcurlapplication/vnd.curl.pcurl
.pcximage/vnd.zbrush.pcxZSoft Paintbrush PiCture eXchange
.pdbchemical/x-pdbBrookhaven Protein Databank File
.pefimage/x-raw-pentaxPentax raw image
.pemapplication/x-x509-cert; format=pem
.pfaapplication/x-font-type1
.pfbapplication/x-font-type1
.pfmapplication/x-font-printer-metricPrinter Font Metric
.pfrapplication/font-tdpfr
.pfxapplication/x-pkcs12
.pgmimage/x-portable-graymapPortable Graymap Graphic
.pgnapplication/x-chess-pgn
.pgpapplication/pgp-encrypted
.picimage/x-pictApple Macintosh QuickDraw/PICT Format
.pictimage/x-pictApple Macintosh QuickDraw/PICT Format
.pkgapplication/octet-stream
.pkiapplication/pkixcmp
.pkipathapplication/pkix-pkipath
.plbapplication/vnd.3gpp.pic-bw-large
.plcapplication/vnd.mobius.plc
.plfapplication/vnd.pocketlearn
.pmlapplication/vnd.ctc-posml
.pnmimage/x-portable-anymapPortable Any Map
.portpkgapplication/vnd.macports.portpkg
.ppdapplication/vnd.cups-ppd
.ppmimage/x-portable-pixmapUNIX Portable Bitmap Graphic
.pqaapplication/vnd.palm
.prcapplication/x-mobipocket-ebookMobipocket Ebook
.preapplication/vnd.lotus-freelance
.prfapplication/pics-rules
.psapplication/postscriptPostScript
.psbapplication/vnd.3gpp.pic-bw-small
.psfapplication/x-font-linux-psf
.psf1audio/x-psfPortable Sound Format
.psflibaudio/x-psfPortable Sound Format
.ptidapplication/vnd.pvi.ptid1
.ptximage/x-raw-pentaxPentax raw image
.pvbapplication/vnd.3gpp.pic-bw-var
.pwnapplication/vnd.3m.post-it-notes
.pxnimage/x-raw-logitechLogitech raw image
.pyaaudio/vnd.ms-playready.media.pya
.pyvvideo/vnd.ms-playready.media.pyv
.qamapplication/vnd.epson.quickanime
.qboapplication/vnd.intu.qbo
.qfxapplication/vnd.intu.qfx
.qpsapplication/vnd.publishare-delta-tree
.qwdapplication/vnd.quark.quarkxpress
.qwtapplication/vnd.quark.quarkxpress
.qxbapplication/vnd.quark.quarkxpress
.qxdapplication/vnd.quark.quarkxpress
.qxlapplication/vnd.quark.quarkxpress
.qxtapplication/vnd.quark.quarkxpress
.r3dimage/x-raw-redRed raw image
.raaudio/x-pn-realaudioReal Audio
.rafimage/x-raw-fujiFuji raw image
.ramaudio/x-pn-realaudioReal Audio
.rasimage/x-cmu-raster
.rawimage/x-raw-panasonicPanasonic raw image
.rcprofileapplication/vnd.ipunplugged.rcprofile
.rdzapplication/vnd.data-vision.rdz
.repapplication/vnd.businessobjects
.rgbimage/x-rgbSilicon Graphics RGB Bitmap
.rlcimage/vnd.fujixerox.edmics-rlc
.rmapplication/vnd.rn-realmedia
.rmpaudio/x-pn-realaudio-pluginRealMedia Player Plug-in
.rmsapplication/vnd.jcp.javame.midlet-rms
.rpmapplication/x-rpmRedHat Package Manager
.rpssapplication/vnd.nokia.radio-presets
.rpstapplication/vnd.nokia.radio-preset
.rqapplication/sparql-query
.rw2image/x-raw-panasonicPanasonic raw image
.rwzimage/x-raw-rawzorRawzor raw image
.s7mapplication/x-sas-dmdbSAS DMDB Data Mining Database File
.sa7application/x-sas-accessSAS Access Descriptor
.safapplication/vnd.yamaha.smaf-audio
.sapaudio/x-sapSlight Atari Player
.sas7bacsapplication/x-sas-accessSAS Access Descriptor
.sas7baudapplication/x-sas-auditSAS Audit
.sas7bbakapplication/x-sas-backupSAS Backup
.sas7bcatapplication/x-sas-catalogSAS Catalog
.sas7bdmdapplication/x-sas-dmdbSAS DMDB Data Mining Database File
.sas7bfdbapplication/x-sas-fdbSAS FDB Consolidation Database File
.sas7bitmapplication/x-sas-itemstorSAS Item Store (ItemStor) File
.sas7bmdbapplication/x-sas-mddbSAS MDDB Multi-Dimensional Database File
.sas7bndxapplication/x-sas-data-indexSAS Data Set Index
.sas7bpgmapplication/x-sas-program-dataSAS Stored Program (DATA Step)
.sas7bputapplication/x-sas-putilitySAS Permanent Utility
.sas7butlapplication/x-sas-utilitySAS Utility
.sas7bvewapplication/x-sas-viewSAS Data Set View
.savapplication/x-spss-savSPSS Data File
.scapplication/vnd.ibm.secure-container
.sc7application/x-sas-catalogSAS Catalog
.scdapplication/x-msschedule
.scqapplication/scvp-cv-request
.scsapplication/scvp-cv-response
.sd2application/x-sas-data-v6SAS v6 Data Set
.sdpapplication/sdp
.seeapplication/vnd.seemail
.seedapplication/vnd.fdsn.seed
.semaapplication/vnd.sema
.semdapplication/vnd.semd
.semfapplication/vnd.semf
.serapplication/java-serialized-object
.setpayapplication/set-payment-initiation
.setregapplication/set-registration-initiation
.sf7application/x-sas-fdbSAS FDB Consolidation Database File
.sfsapplication/vnd.spotfire.sfs
.sglapplication/vnd.stardivision.writer-global
.sharapplication/x-shar
.shpapplication/x-shapefileESRI Shapefiles
.si7application/x-sas-data-indexSAS Data Set Index
.sibapplication/x-sibeliusSibelius
.sigapplication/pgp-signature
.silomodel/mesh
.sisapplication/vnd.symbian.install
.sisxapplication/vnd.symbian.install
.sitapplication/x-stuffit
.sitxapplication/x-stuffitx
.skdapplication/vnd.koanSSEYO Koan File
.skmapplication/vnd.koanSSEYO Koan File
.skpapplication/vnd.koanSSEYO Koan File
.sktapplication/vnd.koanSSEYO Koan File
.sltapplication/vnd.epson.salt
.sm7application/x-sas-mddbSAS MDDB Multi-Dimensional Database File
.smfapplication/vnd.stardivision.math
.snfapplication/x-font-snf
.soapplication/octet-stream
.sp7application/x-sas-putilitySAS Permanent Utility
.spcapplication/x-pkcs7-certificates
.spfapplication/vnd.yamaha.smaf-phrase
.splapplication/x-futuresplashMacromedia FutureSplash File
.sppapplication/scvp-vp-response
.spqapplication/scvp-vp-request
.sr2image/x-raw-sonySony raw image
.sr7application/x-sas-itemstorSAS Item Store (ItemStor) File
.srcapplication/x-wais-source
.srfimage/x-raw-sonySony raw image
.srlapplication/serealSereal binary serialization format
.ss7application/x-sas-program-dataSAS Stored Program (DATA Step)
.sseapplication/vnd.kodak-descriptor
.ssfapplication/vnd.epson.ssf
.st7application/x-sas-auditSAS Audit
.stcapplication/vnd.sun.xml.calc.template
.stdapplication/vnd.sun.xml.draw.template
.stfapplication/vnd.wt.stf
.stiapplication/vnd.sun.xml.impress.template
.stkapplication/hyperstudio
.stlmodel/x.stl-binaryno magic available
.strapplication/vnd.pg.format
.stxapplication/x-sas-transportSAS Transport File
.su7application/x-sas-utilitySAS Utility
.susapplication/vnd.sus-calendar
.suspapplication/vnd.sus-calendar
.sv4cpioapplication/x-sv4cpio
.sv4crcapplication/x-sv4crc
.sv7application/x-sas-viewSAS Data Set View
.svdapplication/vnd.svd
.swaapplication/x-directorShockwave Movie
.swfapplication/x-shockwave-flashAdobe Flash
.swiapplication/vnd.arastra.swi
.sxgapplication/vnd.sun.xml.writer.global
.sxmapplication/vnd.sun.xml.math
.szapplication/x-snappy-framedSnappy Framed
.taoapplication/vnd.tao.intent-module-archive
.tcapapplication/vnd.3gpp2.tcap
.tcshapplication/x-csh
.teacherapplication/vnd.smart.teacher
.texiapplication/x-texinfo
.texinfoapplication/x-texinfo
.tfmapplication/x-tex-tfm
.tgaimage/x-tgaTarga image data
.tmoapplication/vnd.tmobile-livetv
.toastapplication/x-roxio-toast
.torrentapplication/x-bittorrent
.tplapplication/vnd.groove-tool-template
.tptapplication/vnd.trid.tpt
.traapplication/vnd.trueapp
.trmapplication/x-msterminal
.twdapplication/vnd.simtech-mindmapper
.twdsapplication/vnd.simtech-mindmapper
.txdapplication/vnd.genomatix.tuxedo
.txfapplication/vnd.mobius.txf
.tzxapplication/x-spectrum-tzxTAP (ZX Spectrum)
.u32application/x-authorware-bin
.uc2application/x-uc2-compressed
.ufdapplication/vnd.ufdl
.ufdlapplication/vnd.ufdl
.umjapplication/vnd.umajin
.unitywebapplication/vnd.unity
.ustarapplication/x-ustar
.utzapplication/vnd.uiq.theme
.vcdapplication/x-cdlinkVirtual CD-ROM CD Image File
.vcgapplication/vnd.groove-vcard
.vcxapplication/vnd.vcx
.vdaimage/x-tgaTarga image data
.vfapplication/x-tex-virtual-fontTeX Virtual Font format
.visapplication/vnd.visionary
.vivvideo/vnd.vivo
.vmdkapplication/x-vmdkVirtual Disk Format
.voxapplication/x-authorware-bin
.vrmlmodel/vrml
.vsfapplication/vnd.vsf
.vtumodel/vnd.vtu
.w3dapplication/x-directorShockwave Movie
.w60application/vnd.wordperfectWordPerfect - Corel Word Processing
.wadapplication/x-doom
.wasmapplication/wasmWeb Assembly
.waxaudio/x-ms-wax
.wbxmlapplication/vnd.wap.wbxml
.webmvideo/webm
.wk1application/vnd.lotus-1-2-3Lotus 1-2-3
.wk2application/vnd.lotus-1-2-3Lotus 1-2-3
.wk3application/vnd.lotus-1-2-3Lotus 1-2-3
.wk4application/vnd.lotus-1-2-3Lotus 1-2-3
.wmvideo/x-ms-wm
.wmaaudio/x-ms-wma
.wmdapplication/x-ms-wmd
.wmlcapplication/vnd.wap.wmlcCompiled WML Document
.wmlscapplication/vnd.wap.wmlscriptcCompiled WML Script
.wmvvideo/x-ms-wmv
.wmxvideo/x-ms-wmx
.wpapplication/vnd.wordperfectWordPerfect - Corel Word Processing
.wp5application/vnd.wordperfectWordPerfect - Corel Word Processing
.wp6application/vnd.wordperfectWordPerfect - Corel Word Processing
.wp61application/vnd.wordperfectWordPerfect - Corel Word Processing
.wpdapplication/vnd.wordperfectWordPerfect - Corel Word Processing
.wplapplication/vnd.ms-wpl
.wptapplication/vnd.wordperfectWordPerfect - Corel Word Processing
.wqdapplication/vnd.wqd
.wriapplication/x-mswrite
.wrlmodel/vrml
.wtbapplication/vnd.webturbo
.wvxvideo/x-ms-wvx
.x32application/x-authorware-bin
.x3dapplication/vnd.hzn-3d-crossword
.x3fimage/x-raw-sigmaSigma raw image
.xapapplication/x-silverlight-app
.xarapplication/vnd.xara
.xbapapplication/x-ms-xbap
.xbdapplication/vnd.fujixerox.docuworks.binder
.xdwapplication/vnd.fujixerox.docuworks
.xfdlapplication/vnd.xfdl
.xifimage/vnd.xiff
.xoapplication/vnd.olpc-sugar
.xpiapplication/x-xpinstall
.xpmimage/x-xpixmap
.xportapplication/x-sas-xportSAS XPORT Transfer File
.xprapplication/vnd.is-xpr
.xptapplication/x-sas-xportSAS XPORT Transfer File
.xpwapplication/vnd.intercon.formnet
.xpxapplication/vnd.intercon.formnet
.xwdimage/x-xwindowdumpX Windows Dump
.xyzchemical/x-xyz
.zirapplication/vnd.zul
.zirzapplication/vnd.zul
.zooapplication/x-zoo
.zstapplication/zstdhttps://tools.ietf.org/id/draft-kucherawy-dispatch-zstd-01.html

what-to-do-next

If your format is on the parsed list, you're already covered. See the browsable format directory for the deep-dive guide and free in-browser tool for common ones. Or just call the API directly. If it's detect-only or missing entirely, tell us what you're working with. That's how .wpd, .mobi, .jp2, and .azw3 got caught and fixed on this exact page instead of staying overclaimed.

faq

Why does txtfetch say "1,683 detected" but only "615 parsed"?
Apache Tika's detector recognizes a media type from its bytes. It looks at magic numbers, container structure, or XML namespaces. This works independently of whether any parser can read that type's content. Detection just means Tika can NAME the file correctly; parsing means it can hand back text or metadata. tika-server-standard 3.3.1 detects 1,683 media types. It has a real parser, direct or via supertype fallback, behind 615 of them. The other 1,068 come back correctly typed and empty.
What happens if I send a detect-only file to the API?
You get the correctly identified content type and an extraction error, never a fabricated text dump and never metadata dressed up as extracted text. The lookup above says so explicitly for every detect-only type it knows about, including the exact media type Tika assigns it.
Why do some formats look supported on other pages but show up detect-only here?
Because this page checks the actual pinned build instead of assuming from the file extension. .wpd (plain WordPerfect, as opposed to its versioned variants), .mobi, and .jp2 all detect cleanly in tika-server-standard 3.3.1, but none has a parser behind it. .azw3 isn't a media type this Tika version recognizes at all. All four are called out honestly below instead of quietly staying on a "we handle this" list.
Does OCR change any of these verdicts?
For 6 raster image types (PNG, JPEG, GIF, BMP, TIFF, WebP), yes. The generator that built this data runs without Tesseract on PATH. It can only see Tika's fallback metadata-only image parsers. The Lambda has Tesseract installed. Tika prefers TesseractOCRParser for those exact types. In production, they get real OCR text, not just dimensions and EXIF tags. The lookup and the table both flag this wherever it applies.
How was this generated, and can I check it myself?
Dump.java (marketing/scripts/tika-coverage/) loads Tika's default config and walks every registered media type. It resolves each one to its concrete parser class. This follows Tika's own supertype fallback, the same lookup CompositeParser itself does. Because of that, a type like text/x-python correctly shows up parsed via TextAndCSVParser instead of falsely reading as unsupported. build-coverage.mjs downloads tika-server-standard 3.3.1 and the Corretto JDK pinned in terraform/lambda-layers/build/versions.env. It verifies both against the checksums pinned there. Then it runs the dump and writes the JSON this page reads. See docs/tika-coverage.md for the exact commands.
Why is this data committed instead of generated on every build?
Regenerating it needs a ~75MB jar and a JDK on the build machine. That's reasonable to run by hand when the Tika version bumps, not something to add to every CI run. Instead, a test asserts the committed data's tikaVersion matches versions.env, so a layer bump that isn't accompanied by regenerating this file fails the build.
1,683 media types is a lot of table rows. Why not one page per format?
That's a doorway-page pattern: hundreds of thin, templated pages targeting long-tail keywords. It would drag the whole domain's quality signal down. A single well-organized reference page can capture the same traffic just as well. This page is deliberately one deep resource with a real lookup tool, not 1,683 near-duplicates.

Stop parsing. Start shipping.

Create an account and get an API key in minutes. The free Hobby plan needs no card.

Get started →