ForHosting KIT · OCR & Data Extraction

Open an EML file

Open a saved email called Factura de julio and you see at once that Ada sent it, to whom, when, the message text and that it carries no attachments. No mail program needed. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon

Runs in your browser. Free, unlimited — your data never leaves this page.

An .eml file is a whole email flattened into one plain-text blob: headers, MIME boundaries, encoded bodies and attachments all mixed together by design.

Why an EML file looks like a wall of text

An EML file is a complete email flattened into a single block of plain text. The format dates from the early days of internet mail and was designed for mail servers to pass messages along, not for people to read. One exported message can hold nested parts, encoded text, several character sets, inline images and attachments buried several layers down. Opened in a text editor it is almost unreadable. This tool takes that block apart and gives you back the sender, recipients, subject and date, the message itself and a list of attachments.

When you will meet one

Almost nobody creates an EML file on purpose. It appears when someone drags an email out of a mail program, forwards a message as an attachment for a compliance review, or when a legal review tool saves a whole mailbox to disk. Support teams use the parsed result to turn forwarded emails into tickets with the original sender; legal teams review headers and attachments from folders of exported messages; compliance teams index flagged emails for retention audits.

Why raw email is harder to read than it looks

The .eml format has been around since the early days of internet mail, built on the same RFC 822 header conventions the web still runs on, and it was designed for mail transfer agents to pass around, not for application code to read comfortably. A single exported email can contain nested MIME parts, quoted-printable or base64 encoding, multiple character sets, inline images referenced by content-ID, and attachments buried several layers deep in a multipart tree.

How it fits into a larger pipeline

Teams typically chain this after a document intake step that accepts .eml uploads and before a classification or extraction step that treats the parsed body and attachments as regular documents. A support desk might parse an escalation email, pull its attachments, and feed each one back through document classification so a screenshot and a contract get handled differently.

Support ticket ingestion from forwarded emails

A helpdesk parses emails forwarded by staff into a ticketing system, pulling the original sender and attachments out of the forwarded .eml.

Legal e-discovery review

A litigation support team parses a folder of exported .eml files to extract headers and attachments for privilege review at scale.

Compliance archiving

A financial firm parses flagged emails into structured records so headers and attachment lists can be indexed for retention audits.

Does it decode base64 and quoted-printable attachments?

Yes, decoding MIME encodings and multipart structure is exactly what the parser handles, since that is what makes raw .eml files hard to read in the first place.

Is there a free trial for the EML parser?

The tool above runs free in your browser. No subscription, no tokens, and a failed task is never charged.

How do I open an EML file without an email program?

Load it here. The file is split into sender, recipients, subject and date, the message as readable text and as its formatted version when there is one, and a list of attachments, so you can read it without installing anything.

What is an EML file?

It is a whole email saved as one plain-text file, with the headers, the message and the attachments mixed together. You usually get one when someone drags an email out of a mail program or forwards a message as an attachment.

Can I see the attachments inside an EML file?

Yes. You get a list of every attachment with its file name, type and size, even when it is buried several layers deep inside the message, so you can decide which ones are worth opening.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/ocr/eml

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/ocr/eml \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"eml":"From: ada@example.com\nSubject: Hola\n\nCuerpo del mensaje."}'
{
  "eml": "From: ada@example.com\nSubject: Hola\n\nCuerpo del mensaje."
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "ocr.eml",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_mb25
max_pages10
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

This endpoint parses that blob back into clean, structured fields, so an exported or forwarded email becomes usable data instead of a wall of text nobody wants to regex.

Why raw email is harder to read than it looks

Writing a parser that handles all of that correctly, across every mail client that ever generated a file, is a project in itself, which is exactly the work this endpoint has already done.

What the endpoint hands back

The result separates the message into its header fields such as sender, recipients, subject, and date, a readable body in both plain text and HTML where available, and a list of attachments with filenames, MIME types, and sizes so you can decide which ones to fetch and process further. You send the raw file to POST /ocr/eml, receive a task_id immediately, and the parse runs asynchronously behind it. Delivery works either way you prefer: a signed webhook fired the moment parsing finishes, or a signed link you retrieve within 24 hours.

Where .eml files actually come from

Almost nobody generates a .eml file on purpose; it shows up as the export format when someone drags an email out of a mail client, forwards a message as an attachment for a compliance review, or when a legal e-discovery tool dumps a mailbox to disk. That makes this endpoint less of a general email tool and more of a translation layer for the moment an email leaves its inbox and needs to become a record: a support ticket, a case file, an audit log entry.

How it fits into a larger pipeline

Because every call is stateless and billed independently, it works the same whether you are parsing a single forwarded complaint or replaying a whole mailbox export.

What it costs

A failed parse is never billed, we retry automatically up to three times before returning a specific error describing what was malformed. Pricing is flat and simple: $0.002 per request, with no per-page or per-attachment surcharge, since parsing structure rather than performing OCR is genuinely lightweight work. There is no free tier or trial; access needs prepaid balance, and calls without one return HTTP 402 rather than being queued or throttled silently.

Automated invoice capture from email

An accounts payable system parses vendor emails to isolate PDF invoice attachments before sending them into a document-to-JSON extraction step.

What exactly does an EML parser API extract?

It separates a raw .eml file into headers like sender, recipients, subject and date, the message body in plain text and HTML, and a list of attachments with filenames, types and sizes.

Can it also fetch and process the attachments it finds?

The endpoint returns attachment metadata and content so you can route each attachment into a separate extraction or classification step as needed.

How much does it cost to parse an email file?

It is a flat $0.002 per request regardless of email size or attachment count, and you are not charged for a failed parse.

Does it work with .msg files from Outlook too?

This endpoint is built specifically for the .eml format; if your source is .msg, export or convert to .eml before sending it here.

How fast do I get the parsed result?

You get a task_id immediately, and the parsed result arrives by signed webhook when ready or through a signed link valid for 24 hours.

Can I parse a large batch of exported emails at once?

Yes, each request is independent and billed per email, so a single forwarded message or a mailbox export of thousands of files works the same way.

Read the full KIT documentation →