For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Postman
PricingEnterprise
Contact SalesSign InSign Up for Free
HomeDocs
HomeDocs
      • Overview
        • Run and test collections with Newman CLI
        • Install and run Newman
        • Newman command reference
        • Upload files with Newman
        • Use Newman built-in reporters
        • Use Newman external and custom reporters
        • Newman with Docker
        • CI with Newman
        • Travis CI with Newman
        • Jenkins with Newman
        • Migrate to the Postman CLI
Postman API Platform

Product

  • Postman Overview
  • Enterprise
  • Spec Hub
  • Flows
  • Agent Mode
  • API Catalog
  • Fern
  • Postman CLI
  • Integrations
  • Workspaces
  • Plans and pricing

API Network

  • App Security
  • Artificial Intelligence
  • Communication
  • Data Analytics
  • Database
  • Developer Productivity
  • DevOps
  • Ecommerce
  • eSignature
  • Financial Services
  • Payments
  • Travel

Resources

  • Postman Docs
  • Academy
  • Community
  • Templates
  • Intergalactic
  • Videos
  • MCP Servers

Legal and Security

  • Legal Terms Hub
  • Terms of Service
  • Postman Product Terms
  • Security
  • Website Terms of Use

Company

  • About
  • Careers and culture
  • Contact us
  • Partner program
  • Customer stories
  • Student programs
  • Press and media
Twitter iconLinkedIn iconGithub iconYouTube iconInstagram iconDiscord icon
Download Postman
Privacy Policy

© 2026 Postman, Inc.

On this page
  • Build custom reporters
  • Use external and custom reporters
ReferenceNewman CLI

Use Newman external and custom reporters

||View as Markdown|
Was this page helpful?
Previous

Generate collection run reports with Newman built-in reporters

Next

Run Newman with Docker on macOS, Ubuntu, and Windows

Built with

Generate reports for your collection runs in Newman with custom and external reporters. You can generate reports for specific use cases, for example, logging the response body when a request or test fails. Use existing external reporters to generate reports, or build your own custom reporters.

Build custom reporters

A custom reporter is a Node.js module with a name in the format newman-reporter-<name>.

To create a custom reporter, do the following:

  1. In the directory of your choice, create a blank npm package with npm init.

  2. Add an index.js file that exports a function in the following format:

    1function CustomNewmanReporter (emitter, reporterOptions, collectionRunOptions) {
    2 // emitter is is an event emitter that triggers the following events: https://github.com/postmanlabs/newman#newmanrunevents
    3 // reporterOptions is an object of the reporter specific options. The usage examples below have more details.
    4 // collectionRunOptions is an object of all the collection run options: https://github.com/postmanlabs/newman#newmanrunoptions-object--callback-function--run-eventemitter
    5}
    6module.exports = CustomNewmanReporter
  3. To use your reporter locally, use npm pack to create a TGZ file. This can be installed using npm i -g newman-reporter-<name>.<version>.tgz. Learn more about using custom reporters.

    Scoped reporter package names like @myorg/newman-reporter-<name> are also supported.

  4. (Optional) You can publish your reporter to npm using npm publish.

Use external and custom reporters

You must install an external or custom reporter to use it. For example, to use the Newman HTML reporter, install the reporter package:

$npm install newman-reporter-html

You can use external reporters with Newman if the reporter works with Newman’s event sequence. To learn more, view examples of how Newman reporters work.

The name of the package follows the format newman-reporter-<name>, where <name> is the name of the reporter. The installation is global if Newman is installed globally, and local otherwise. Run npm install ... with the -g flag for a global installation.

To use local (non-published) reporters, run the following command:

$npm install <path/to/local-reporter-directory>

You can use the installed reporter either with the command-line tool or programmatically. In either case, the newman-reporter prefix isn’t required while specifying the reporter name in the options.

On the command line:

$newman run /path/to/collection.json -r myreporter --reporter-myreporter-<option-name> <option-value> # The option is optional

Programmatically:

1var newman = require('newman');
2
3newman.run({
4 collection: '/path/to/collection.json',
5 reporters: 'myreporter',
6 reporter: {
7 myreporter: {
8 'option-name': 'option-value' // this is optional
9 }
10 }
11}, function (err, summary) {
12 if (err) { throw err; }
13 console.info('collection run complete!');
14});

Scoped reporter packages must be specified with the scope prefix. For example, if your package name is @myorg/newman-reporter-name, you must specify the reporter with @myorg/name.

The reporter options used in these examples are optional.