Registry / communication / mailgun.js

mailgun.js

JSON →
library13.0.0jsnpmunverified

Mailgun.js v13.0.0 is a JavaScript SDK for the Mailgun API, supporting Node.js (>=18) and browser environments with CJS, ESM, and AMD bundles. It provides a full client for sending emails, managing mailing lists, domains, suppressions, routes, tags, events, and more. Active development (12 releases in 2 years, monthly cadence). Key differentiators: first-class TypeScript support, explicit FormData passing (universal), subaccount support, and EU API endpoint configuration.

npm install mailgun.js
INSTALL
IMPORT
SIG · MAILGUN.JS
M
mailgun.js
communicationjavascriptv13.0.0
Install
—
Import
—
Disk
—
Pass rate
0/ 6
Env Coverage0 / 6
glibc
18–22
musl
18–22
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18–226 runs
build_error
glibc
node 18–226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Mailgun
✓ import Mailgun from 'mailgun.js'
✗ const { Mailgun } = require('mailgun.js')
Default import. In CJS: const Mailgun = require('mailgun.js')
interfaces
✓ import { IMessagesClient } from 'mailgun.js'
✗ const { IMessagesClient } = require('mailgun.js')
Types are exported but not available in CJS require due to type stripping
Enums
✓ import { MailMan } from 'mailgun.js'
✗ import Mailgun from 'mailgun.js'; const { MailMan } = Mailgun
Named exports for classes/enums. Available both ESM and CJS

Initializes mailgun client with API key, sends an email, and lists all mailing lists.

import Mailgun from 'mailgun.js'; import FormData from 'form-data'; const mailgun = new Mailgun(FormData); const mg = mailgun.client({ username: 'api', key: process.env.MAILGUN_API_KEY ?? 'your-api-key', }); // Send an email mg.messages.create('sandbox.mailgun.org', { from: "Excited User <mailgun@sandbox.mailgun.org>", to: ["recipient@example.com"], subject: "Hello", text: "Testing some Mailgun awesomeness!", }).then(msg => console.log(msg)) .catch(err => console.error(err)); // List mailing lists mg.lists.list().then(lists => console.log(lists)) .catch(err => console.error(err));
Debug
Known issues
breakingIn v13.0.0, the `address` property is removed from query parameters for MailingLists.list().
fix
Use MailingListsClient.listByAddress(address) to search by address.
affects: >=13.0.0
gotchaBrowser usage requires a proxy due to CORS; do not expose private API key in frontend.
fix
Set up a server-side proxy to forward requests to Mailgun API.
affects: >=0.0.0
gotchaFormData must be passed to constructor. Starting from v3.0, FormData is required.
fix
const mailgun = new Mailgun(FormData); or import FormData from 'form-data';
affects: >=3.0.0
deprecatedThe old 'mailgun-js' package is deprecated. Use 'mailgun.js' instead.
fix
npm install mailgun.js
affects: >=0.0.0
Errors
Common errors & fixes
Error: FormData is not a constructor
Missing FormData import.
fix
import FormData from 'form-data'; or use built-in FormData in Node >=18.
Cannot find module 'mailgun.js'
Package not installed.
fix
npm install mailgun.js
TypeError: mg.messages.create is not a function
Client not initialized correctly.
fix
Ensure you call mailgun.client() and not use Mailgun directly.
Upgrade
Version history
13.0.0latest on npm
Audit
Dependencies
FormDatarequiredRequired for multipart form data when sending emails with attachments
Agent activity
5 hits · last 30 days
node
4
OpenAI (training)
1
Resources
mailgun.js — npm install mailgun.js · libregistry