---
title: "File formats"
description: "The file formats Lookio reads, the size limit of each, how each one is read, and what to do with a format that is not supported."
canonical: "https://lookio.app/docs/guides/file-formats"
updated: "2026-11-08"
---

# File formats

Lookio reads each format with the reader that fits it best. The app, the API and the engine accept the same formats and the same sizes.

```mermaid title="Which reader reads your file"
flowchart LR
  F["Your file"] --> E{"Extension"}
  E -- "pdf, images, pptx" --> O["OCR<br/>keeps page numbers"]
  E -- "docx, odt, xlsx, html" --> M["Conversion to Markdown<br/>keeps headings and tables"]
  E -- "csv, tsv" --> C["CSV parser<br/>finds the delimiter"]
  E -- "txt, md, json" --> T["Read as is"]
  O --> P["Passages Lookio searches"]
  M --> P
  C --> P
  T --> P
```

## Accepted formats

| Format                     | Extensions                                                | Size limit | Read with                                                  |
| -------------------------- | --------------------------------------------------------- | ---------- | ---------------------------------------------------------- |
| PDF, scans included        | `pdf`                                                     | 50 MB      | OCR                                                        |
| Images                     | `png` `jpg` `jpeg` `webp` `gif` `bmp` `tif` `tiff` `avif` | 20 MB      | OCR                                                        |
| PowerPoint                 | `pptx` `ppsx`                                             | 30 MB      | OCR                                                        |
| Word and OpenDocument text | `docx` `docm` `odt`                                       | 25 MB      | Conversion to Markdown                                     |
| Spreadsheets               | `xlsx` `xlsm` `xls` `xlsb` `ods` `numbers`                | 25 MB      | Conversion to Markdown                                     |
| CSV                        | `csv` `tsv`                                               | 90 MB      | Lookio's own parser                                        |
| Saved web pages            | `html` `htm` `xml`                                        | 8 MB       | Conversion to Markdown                                     |
| Text                       | `txt` `md` `markdown` `mdx` `json`                        | 5 MB       | Read as is. A JSON file that lists rows is read as a table |

The limit is per file. The extension sets the format. The first bytes of a binary file must match its extension: a text file renamed `.pdf` is refused.

## How each reader behaves

- **OCR** reads text from PDFs, including scans, from images and from slides. The text keeps page markers, so a citation can name the page.
- **Conversion to Markdown** keeps headings, lists and tables of Word, OpenDocument, spreadsheet and HTML files.
- **CSV** finds the delimiter and the encoding. An export with semicolons from a European tool works.
- **Text** files are indexed as they are. Markdown headings become sections.

After an import, open the resource and choose **View the text**. You see what Lookio read and what it could not read. See [Resources](/docs/guides/resources#read-what-was-indexed).

> **Tip: Tables answer exact questions**
>
> Spreadsheets and CSV files keep their rows. Eco and Flash can compute over every row, so "How many invoices are overdue?" gets a count, not a guess.

## Formats Lookio does not read

Lookio refuses these formats before it stores anything, and says what to do.

| Format  | What to do                                          |
| ------- | --------------------------------------------------- |
| `doc`   | Open the file in Word and save it as `docx`.        |
| `ppt`   | Save it as `pptx`, or export it as PDF.             |
| `odp`   | Export it as PDF or `pptx`.                         |
| `rtf`   | Save the document as `docx`.                        |
| `pages` | In Pages, use File, Export To, Word or PDF.         |
| `key`   | In Keynote, use File, Export To, PowerPoint or PDF. |
| `epub`  | Not supported yet. Export the book as PDF.          |
| `zip`   | Not supported yet. Add the files one by one.        |
| `heic`  | Export the photo as JPEG or PNG.                    |

Lookio also refuses any other extension, an empty file, and a file over its limit. The error gives the file's size and the limit for its format.

## Upload

In the app, drop files on the **Files** tab of **Add a resource**, or click to choose them. You can add several files at once, with the same tags and source. Each file becomes one resource.

Over the API, send the file's bytes as the request body to [`POST /v1/resources/file`](/docs/api/resources/upload-file), with its name in `file_name`. With the CLI, run `lookio resources add-file ./handbook.pdf`. The CLI streams the file from the disk.

If an upload stops before the end, Lookio refuses it and creates nothing.
