Try it

One message, no signup, nothing stored. POST https://api.emailimport.com/try with a raw .eml (content-type: message/rfc822), a PDF (application/pdf), an HTML body (text/html), JSON {"eml": "…"} / {"html": "…", "from": "…", "subject": "…"} / {"text": "…", "attachments": [{"filename": "a.pdf", "mime": "application/pdf", "base64": "…"}]}, or multipart/form-data with files (an .eml, or documents) and text or html. A document without its mail is wrapped into a message and read as an attachment, through the same parser and PDF reader as real mail. For a person: emailimport.com/try, drop or paste and read.

curl -s -X POST https://api.emailimport.com/try -H "content-type: message/rfc822" --data-binary @message.eml
curl -s -X POST "https://api.emailimport.com/try?filename=renewal.pdf" -H "content-type: application/pdf" --data-binary @renewal.pdf

What comes back, all of it from parsing and deterministic rules:

Keep it

Send the same request with keep: true (or ?keep=true) and the answer adds a 24-hour sandbox with the message in it: a key, an MCP URL, and a link to the app. From there the emailimport skill takes an agent from the message to a tested bucket: get_message, propose_schema, approve_proposal. See Teaching.

Limits

2 MB per message; five messages an hour from one place; ten a day for the page as a whole. A sandbox takes more: POST https://api.emailimport.com/sandbox, no key needed.

Hosted author

Design 02 describes a hosted author that would propose a schema from the try page's message on Cloudflare Workers AI. It is not built; the owner deferred it. Today the try page shows what the engine reads and the agent writes the schema.

This page as Markdown.