🚀 Experience the new and improved APIVoid! Check out what's new

EML Insights API: Parse and Analyze EML Files

A JSON API to parse and analyze EML email files. It extracts structured data such as headers, attachments (filename and md5 hash), message body, sender email, sender IP address, URLs in body and much more. Can be integrated in your workflow to automate EML analysis.

Consumes 2 credits per API call

# Example Curl request from the command line:
                          
curl -X POST "https://api.apivoid.com/v2/eml-insights" \
     -H "Content-Type: application/json" \
     -H "X-API-Key: YOUR_API_KEY_HERE" \
     -d '{"eml_base64": "RW5jb2RlIGFuZCBkZWNv..."}'

# Example JSON output for a 200 HTTP status code:

{
    "metadata": {
        "message_id": "03302025091220980F708C98$443242D40E@hmlca.com",
        "message_sha256_hash": "cd4e43afb13eef0e381d814ef1ac9d7d91086227131d69477d285d37d411e11b",
        "date_time": "Thu, 04 Sep 2025 03:19:11 +0000 (UTC)",
        "date_time_normalized": "2025-09-04T03:19:11Z"
    },
    "headers": {
        "subject": "Attention: Access Re-activation \"receiver@gmail.com\": 03 September 2025",
        "from_name": "Gmail Message Center",
        "from_email": "rachelle@hmlca.com",
        "return_path": "bounces+45627169-2aff-receiver=gmail.com@em8374.hmlca.com",
        "reply_to": "",
        "delivered_to": "receiver@gmail.com",
        "to": [
            "receiver@gmail.com"
        ],
        "cc": [],
        "bcc": [],
        "content_type": "multipart/alternative",
        "user_agent": "",
        "x_mailer": "",
        "x_library": "",
        "list_unsubscribe": [],
        "received_spf": "pass (google.com: domain of bounces+45627169-2aff-receiver=gmail.com@em8374.hmlca.com designates 50.31.49.42 as permitted sender) client-ip=50.31.49.42;",
        "authentication_results": "mx.google.com; dkim=pass header.i=@hmlca.com header.s=s1 header.b=ZODWUU6W; dkim=pass header.i=@sendgrid.info header.s=smtpapi header.b=TObU1x+p; spf=pass (google.com: domain of bounces+45627169-2aff-receiver=gmail.com@em8374.hmlca.com designates 50.31.49.42 as permitted sender) smtp.mailfrom=\"bounces+45627169-2aff-receiver=gmail.com@em8374.hmlca.com\"",
        "dkim_signatures": [
            {
                "signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=hmlca.com; h=from:subject:content-type:mime-version:date:to:cc:content-type:date: feedback-id:from:subject:to; s=s1; bh=HJ8h3pw+by1D2B7wJ1CO124/fwcuPkzoSMMdSbprGHM=; b=ZODWUU6WGZ+c6NCsyBNIceOX8FH62ZNR8yKgIPKq7O/Qm154ukSRXGy5FHkMeASDXN60 1LOg0VRKKBYXQmtgFTt1a1UFmr5KDE8dK9qLII5iRJ2lyQ7xhVy4qEF3csuCkHO63Uhv3M VEcP8kojPTtQDEC+3p3iIhS6aXOAz4YJ6rSPZga1KyJ/OF9rCBaq925JdAGZw2cnyORkhA ZlWoQIosQI7mIimf28Lj9idAPXXaCIJaf0CeG0/sAfTEexTHm7QrE3kUxZmoKTwyfUB824 QZV2a0YuIu4dKC9mLDkS7sRs+pcAk9dhsRMrUp33JUREhFKBvh9flfVDL4Rx+ocA==",
                "selector": "s1",
                "domain": "hmlca.com",
                "algo": "rsa-sha256",
                "key_type": "rsa",
                "canon": "relaxed/relaxed",
                "hash": "HJ8h3pw+by1D2B7wJ1CO124/fwcuPkzoSMMdSbprGHM=",
                "key_bits": 2048,
                "dnssec": false
            },
            {
                "signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.info; h=from:subject:content-type:mime-version:date:to:cc:content-type:date: feedback-id:from:subject:to; s=smtpapi; bh=HJ8h3pw+by1D2B7wJ1CO124/fwcuPkzoSMMdSbprGHM=; b=TObU1x+puLv0hicu+Mpsh0MdJOZZ53xPGSytO8RVzZxUkCerEHT7xodzIiwjVTeDiFZ8 AU09HqWfE+Czdox4CpFTB0qBd0xENHcM0rS3P2SQbgWKWA2vaZ6dMm2MIAZVxOf49T20Zf vwSCIPHuPqV/dF2mTM7reRxF11XJP6428=",
                "selector": "smtpapi",
                "domain": "sendgrid.info",
                "algo": "rsa-sha256",
                "key_type": "rsa",
                "canon": "relaxed/relaxed",
                "hash": "HJ8h3pw+by1D2B7wJ1CO124/fwcuPkzoSMMdSbprGHM=",
                "key_bits": 1024,
                "dnssec": false
            }
        ]
    },
    "body": {
        "body_text": "Webmail\n\nDear User, receiver@gmail.com\n\nOur system indicates that your password has expired as part of our regular security maintenance. To continue accessing your webmail account without interruption, please take a moment to verify or update your password.\n\nKeep or Update Password https://u45627169.ct.sendgrid.net/ls/click?upn=u001.ilzQdWVrM538qTJ1Qrct2U7gPpD0uoiQECwlDuMspitwulZl7U-2FY3vakOIItSIS1XybaLMtdZ8kaccaNGzDgJl-2BToMxJ70rUoLmY-2BOC8PLL0c-2BbFqtEXLRZwr1fTYBGE4GK8_s0lTyPdoyuzn-2FJTE9fjR8gd4LnXMu4OKG3YpbxosU77i-2FfG4C2MUtEIoCJlrCv4kYhNLpFkGAbHAHEur7tKY3BDYlNZ-2BPfxo0M8IB5fyCQzRQA3YpmmqcpZY3xE1ZWT8ippFzgvcPAn1RCDWmrJUM-2B-2BMsAKXQT8fMw1snmBQJtoed9kNb8hvoZBHFaP3MV0uwsrhx-2FTGxvGGACZrGEwN6g-3D-3D\n\n© 2025 Gmail Webmail. All rights reserved.\n\nThis email was sent to you as a registered user for Gmail Webmail services."
    },
    "attachments": {
        "files": [
            {
                "name": "invoice.zip",
                "extension": ".zip",
                "is_risky_extension": false,
                "content_type": "application/zip",
                "size": 4042,
                "md5_hash": "d7b44bedb42ca39681c32cda0678af11",
                "is_inline": false,
                "content_id": "",
                "disposition": "attachment",
                "cid_referenced": false,
                "is_document": false,
                "is_archive": true,
                "is_archive_encrypted": false,
                "extracted_files": [
                    {
                        "name": "Invoice_N10092025.bat",
                        "extension": ".bat",
                        "is_risky_extension": true,
                        "is_document": false,
                        "is_archive": false,
                        "is_archive_encrypted": false,
                        "last_modified_at": "2025-10-23T21:57:18Z",
                        "size": 10494,
                        "md5_hash": "10d47269e0872ef218701703722d67d9"
                    }
                ]
            }
        ],
        "file_extensions": [
            ".zip",
            ".bat"
        ],
        "md5_hashes": [
            "d7b44bedb42ca39681c32cda0678af11",
            "10d47269e0872ef218701703722d67d9"
        ]
    },
    "ioc": {
        "urls": {
            "urls": [
                "https://u45627169.ct.sendgrid.net/ls/click?upn=u001.ilzQdWVrM538qTJ1Qrct2U7gPpD0uoiQECwlDuMspitwulZl7U-2FY3vakOIItSIS1XybaLMtdZ8kaccaNGzDgJl-2BToMxJ70rUoLmY-2BOC8PLL0c-2BbFqtEXLRZwr1fTYBGE4GK8_s0lTyPdoyuzn-2FJTE9fjR8gd4LnXMu4OKG3YpbxosU77i-2FfG4C2MUtEIoCJlrCv4kYhNLpFkGAbHAHEur7tKY3BDYlNZ-2BPfxo0M8IB5fyCQzRQA3YpmmqcpZY3xE1ZWT8ippFzgvcPAn1RCDWmrJUM-2B-2BMsAKXQT8fMw1snmBQJtoed9kNb8hvoZBHFaP3MV0uwsrhx-2FTGxvGGACZrGEwN6g-3D-3D",
                "https://u45627169.ct.sendgrid.net/ls/click?upn=u001.ilzQdWVrM538qTJ1Qrct2U7gPpD0uoiQECwlDuMspitwulZl7U-2FY3vakOIItSIS1XybaLMtdZ8kaccaNGzDgJl-2BToMxJ70rUoLmY-2BOC8PLL0c-2BbFqtEXLRZwr1fTYBGEss7q_s0lTyPdoyuzn-2FJTE9fjR8gd4LnXMu4OKG3YpbxosU77i-2FfG4C2MUtEIoCJlrCv4kYhNLpFkGAbHAHEur7tKY3F-2FD5IvO2YiTDo-2FzLySkdPDOf5vAvMnJ-2BOrn7sm3lqiymM-2FOaZ4HgVbc7zC0ofWQJS39zRgu577y715r7QFnLA7WRSM8BjNM9dxCWxewBaVs1C5v32uEs6TuG4yZ4VATsg-3D-3D",
                "https://u45627169.ct.sendgrid.net/wf/open?upn=u001.XFGmjoWdSYLGbF2-2B-2B1O-2F8nE80NrNtyU8ZMdTu2BP-2FZRTyD4PEuraAR9MERxO5qS-2FDx2o-2BBEM7SMpl99PzpPvLgvkmWCq7tYo8dnfKyMkLo-2Bhe8sfZ34j-2BF6DXfFpV8wMX6JIvbuqLpoS8iahL-2FvGO7bSCoH37gpRuT1HchqBaZKb3tBsuZKMPEr4fLjwpt7USWnFswkKA8yfCAOlSCsitDkvS411Nmxy1dzGYibBxNY-3D"
            ],
            "redirects": [
                "https://vvtrt.b-cdn.net/cubggg%20(2)%20-%20Copy.html"
            ],
            "direct_downloads": [],
            "with_ip_host": [],
            "domains": [
                "u45627169.ct.sendgrid.net",
                "vvtrt.b-cdn.net"
            ],
            "root_domains": [
                "sendgrid.net",
                "b-cdn.net"
            ],
            "tlds": [
                "net"
            ]
        },
        "emails": {
            "emails": [
                "receiver@gmail.com",
                "rachelle@hmlca.com"
            ],
            "domains": [
                "gmail.com",
                "hmlca.com"
            ],
            "root_domains": [
                "gmail.com",
                "hmlca.com"
            ],
            "tlds": [
                "com"
            ]
        },
        "received_from": {
            "domains": [
                "s.pnkfpknx.outbound-mail.sendgrid.net",
                "mx.google.com",
                "whm002.searchcontrol.com"
            ],
            "root_domains": [
                "sendgrid.net",
                "google.com",
                "searchcontrol.com"
            ],
            "tlds": [
                "net",
                "com"
            ]
        },
        "dkim_domains": {
            "domains": [
                "hmlca.com",
                "sendgrid.info"
            ],
            "root_domains": [
                "hmlca.com",
                "sendgrid.info"
            ],
            "tlds": [
                "com",
                "info"
            ]
        },
        "bitcoin_addresses": [],
        "phone_numbers": []
    },
    "sender_details": {
        "email": "rachelle@hmlca.com",
        "domain": "hmlca.com",
        "root_domain": "hmlca.com",
        "tld": "com",
        "ip_address": "50.31.49.42",
        "hostname": "s.pnkfpknx.outbound-mail.sendgrid.net",
        "hostname_root_domain": "sendgrid.net",
        "hostname_tld": "net",
        "helo": "",
        "helo_root_domain": "",
        "helo_tld": ""
    },
    "security_details": {
        "spf_status": "pass",
        "dkim_status": "pass",
        "dmarc_status": "",
        "compauth_status": "",
        "dara_status": "",
        "tls_status": "",
        "dmarc_policy": "",
        "dmarc_subdomain_policy": "",
        "dmarc_disposition": "",
        "total_to_emails": 1,
        "total_cc_emails": 0,
        "total_bcc_emails": 0,
        "is_mime_html_only": false,
        "has_undisclosed_recipients": false,
        "is_detected_by_server_antispam": false,
        "sender_is_recipient": false,
        "sender_and_reply_to_different_domain": false,
        "sender_and_reply_to_different_email": false,
        "sender_rdns_empty": false,
        "reply_to_free_email": false,
        "has_unsubscribe_link": false,
        "high_value_money_found": false,
        "has_urls_with_ip_host": false,
        "is_body_text_empty": false,
        "sent_outside_business_hours": true,
        "sent_on_night_hours": true,
        "sent_at_time": "3:19 AM",
        "total_attachments": 1,
        "has_risky_file_extensions": true,
        "has_document_files": false,
        "has_archive_files": true,
        "has_encrypted_archive_files": false,
        "urgency": "high"
    },
    "elapsed_ms": 551
}
Code analysis

Key Features

Inspect EML files and automate EML analysis in your workflow

Businesses and startups use this EML Insights API to parse and inspect email contents, analyze headers and attachments, extract IoCs, retrieve sender details, and gain valuable security insights.

Parse Email Headers

Get important headers like subject, to, cc, bcc, reply-to, delivered-to, body text (without HTML).

Check Attachments

The API can extract attachments, calculate md5 file hash, get filenames and extensions, extract ZIP archives.

Indicators of Compromise

Find valuable IoCs like URLs in body, final URLs (follow redirects), email domains, sender IP address.

Authentications

Check if SPF, DKIM, DMARC and CompAuth status, get DKIM signature details, DMARC policy and SMTP info.

Common Use Cases

Take a look at some real-world use cases of this API service

Our API can be used in many ways, from cybersecurity tasks to workflow automations. Here we showcase the most popular use cases according to our customers usage:

Analyze EML Content

Get important details about EML content, parse all important fields and get a detailed security report.

Extract Useful IoCs

Check email body and extract URLs, domains, emails, telephone numbers, bitcoin addresses.

Get Attachments Details

Extract all attachments and get filenames, file extensions, md5 hashes and ZIP archives details.

Workflow Automation

Easily integrate this API in your cybsersecurity workflow to effectively parse and analyze EML files.

Use cases

USAGE EXAMPLE

Learn how seamless it is to add and use EML Insights API anywhere you want

All it takes is a HTTPS POST request with JSON payload to our endpoint, and you’ll receive the response within seconds, usually within 1-3 seconds. Here are a few code examples to use the API:

$eml_base64 = 'RW5jb2RlIGFuZCBkZWNv...';

$apiUrl = 'https://api.apivoid.com/v2/eml-insights';
$apiKey = 'your_api_key_here';

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'X-API-Key: ' . $apiKey]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['eml_base64' => $eml_base64]));
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
    $responseData = json_decode($response, true);

    print_r($responseData);
}

Start using our API services, it takes just a few minutes

Create your account, pick a subscription plan, and make your first API call instantly with your API key—simple as that!

Get started now