PHPackages                             nutandc/laravel-postman-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. nutandc/laravel-postman-generator

ActiveLibrary[API Development](/categories/api)

nutandc/laravel-postman-generator
=================================

Laravel Postman &amp; OpenAPI Generator — auto-create Postman collections and OpenAPI 3.0 docs from Laravel routes with smart grouping, examples, and environment files.

v1.1.0(4mo ago)014MITPHPPHP ^8.2CI passing

Since Jan 3Pushed 4mo agoCompare

[ Source](https://github.com/Nutandc/Laravel-Postman-Generator)[ Packagist](https://packagist.org/packages/nutandc/laravel-postman-generator)[ Docs](https://github.com/Nutandc/Laravel-Postman-Generator)[ RSS](/packages/nutandc-laravel-postman-generator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (8)Versions (6)Used By (0)

Laravel Postman Generator
=========================

[](#laravel-postman-generator)

[![CI](https://github.com/Nutandc/Laravel-Postman-Generator/actions/workflows/ci.yml/badge.svg)](https://github.com/Nutandc/Laravel-Postman-Generator/actions/workflows/ci.yml)[![Latest Version](https://camo.githubusercontent.com/af865ee939ec65d0062fb0e0a2c4127c2dacba76a0362e9cf98ecb388e9b93c4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e7574616e64632f6c61726176656c2d706f73746d616e2d67656e657261746f72)](https://packagist.org/packages/nutandc/laravel-postman-generator)[![Total Downloads](https://camo.githubusercontent.com/ae12bb84c4183311880af098b298281c2f867b3bfe952dbaf6766ebfbe6407db/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e7574616e64632f6c61726176656c2d706f73746d616e2d67656e657261746f72)](https://packagist.org/packages/nutandc/laravel-postman-generator)[![License](https://camo.githubusercontent.com/7731074c13dc37e0787ab4c632f742188d7466497ad0048cbce07acb5f91f450/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6e7574616e64632f6c61726176656c2d706f73746d616e2d67656e657261746f72)](LICENSE)

Laravel Postman &amp; OpenAPI Generator — auto-create Postman collections and OpenAPI 3.0 docs from Laravel routes with smart grouping, examples, and environment files.

Features
--------

[](#features)

- Auto-scan Laravel routes
- Postman v2.1 collection output
- OpenAPI 3.0 JSON output
- Route metadata via PHP attributes
- FormRequest rule parsing for body/query examples
- Group routes into folders (by URI, name, or tag)
- Auth support (bearer, api key, basic)
- Default headers and sample payloads
- Postman variables for base URL and tokens
- Postman environment output
- Response examples via attributes/overrides or auto from request rules
- Extensible metadata providers
- Configurable output paths

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 10/11/12

Installation
------------

[](#installation)

```
composer require nutandc/laravel-postman-generator
```

Publish config:

```
php artisan vendor:publish --tag=postman-generator-config
```

Copy `.env.example` keys into your Laravel `.env` file and update as needed.

Usage
-----

[](#usage)

Generate both outputs:

```
php artisan postman:generate
```

Generate only one format:

```
php artisan postman:generate --format=postman
php artisan postman:generate --format=openapi
```

Attribute Example
-----------------

[](#attribute-example)

```
use Nutandc\PostmanGenerator\Attributes\EndpointDoc;

#[EndpointDoc(
    summary: 'List users',
    tags: ['Users'],
    auth: 'bearer',
    headers: [
        ['name' => 'X-Request-ID', 'value' => '{{request_id}}', 'required' => false],
    ],
    query: [
        ['name' => 'page', 'type' => 'integer', 'required' => false, 'example' => 2],
    ],
    responses: [
        ['status' => 200, 'description' => 'OK', 'body' => ['data' => ['id' => 1]]],
    ],
)]
public function index() {}
```

Route Grouping
--------------

[](#route-grouping)

By default routes are grouped into folders by the first URI segment (e.g., `api/users` -&gt; `users`). You can change grouping strategy in config:

```
'postman' => [
    'grouping' => [
        'strategy' => 'name', // uri | name | none
        'name_separator' => '.',
        'uri_depth' => 1,
        'strip_prefixes' => ['api'],
        'fallback' => 'General',
    ],
],
```

To remove debug routes (debugbar/clockwork/log-viewer), use scan filters:

```
'scan' => [
    'include_prefixes' => ['api'],
    'exclude_prefixes' => ['_debugbar', '__clockwork', 'log-viewer'],
    'exclude_route_names' => ['debugbar.', 'clockwork.', 'log-viewer.'],
],
```

Config Highlights
-----------------

[](#config-highlights)

```
return [
    'base_url' => env('POSTMAN_GENERATOR_BASE_URL', env('APP_URL', 'http://localhost')),
    'headers' => [
        'default' => [
            ['name' => env('POSTMAN_GENERATOR_HEADER_ACCEPT_NAME', 'Accept'), 'value' => env('POSTMAN_GENERATOR_HEADER_ACCEPT_VALUE', 'application/json')],
        ],
        'json' => [
            ['name' => env('POSTMAN_GENERATOR_HEADER_CONTENT_TYPE_NAME', 'Content-Type'), 'value' => env('POSTMAN_GENERATOR_HEADER_CONTENT_TYPE_VALUE', 'application/json'), 'required' => true],
        ],
    ],
    'output' => [
        'path' => storage_path('app/postman'),
    ],
    'scan' => [
        'form_request' => [
            'enabled' => env('POSTMAN_GENERATOR_FORM_REQUEST_ENABLED', true),
        ],
    ],
    'metadata_providers' => [
        \Nutandc\PostmanGenerator\Metadata\Providers\FormRequestMetadataProvider::class,
        \Nutandc\PostmanGenerator\Metadata\Providers\AttributeMetadataProvider::class,
        \Nutandc\PostmanGenerator\Metadata\Providers\OverridesMetadataProvider::class,
    ],
    'auth' => [
        'default' => 'bearer',
    ],
    'responses' => [
        'auto_from_request' => env('POSTMAN_GENERATOR_RESPONSE_AUTO_FROM_REQUEST', true),
        'default_status' => env('POSTMAN_GENERATOR_RESPONSE_DEFAULT_STATUS', 200),
        'default_description' => env('POSTMAN_GENERATOR_RESPONSE_DEFAULT_DESCRIPTION', 'OK'),
    ],
    'postman' => [
        'use_base_url_variable' => true,
        'variables' => [
            'base_url' => env('POSTMAN_GENERATOR_POSTMAN_BASE_URL'),
            'token' => env('POSTMAN_GENERATOR_POSTMAN_TOKEN'),
            'api_key' => env('POSTMAN_GENERATOR_POSTMAN_API_KEY'),
        ],
        'environments' => [
            'local' => [
                'base_url' => env('POSTMAN_GENERATOR_ENV_LOCAL_BASE_URL'),
                'token' => env('POSTMAN_GENERATOR_ENV_LOCAL_TOKEN'),
                'api_key' => env('POSTMAN_GENERATOR_ENV_LOCAL_API_KEY'),
            ],
        ],
    ],
];
```

Environment Output
------------------

[](#environment-output)

Environment files are generated alongside the collection:

```
storage/app/postman/environment.local.json
```

Filters
-------

[](#filters)

```
'scan' => [
    'include_tags' => ['Users'],
    'exclude_tags' => ['Internal'],
    'include_namespaces' => ['App\\Http\\Controllers\\Api'],
    'exclude_domains' => ['telescope'],
],
```

Testing
-------

[](#testing)

```
composer test
composer analyse
composer fix:dry
```

License
-------

[](#license)

MIT

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance77

Regular maintenance activity

Popularity7

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

128d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f40665aea93e2d934f5efbec1457ddef646386850e51e7ee8891606cb4ef44b9?d=identicon)[Nutandc](/maintainers/Nutandc)

---

Tags

apilaraveldocumentationopenapigeneratorPostman

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/nutandc-laravel-postman-generator/health.svg)

```
[![Health](https://phpackages.com/badges/nutandc-laravel-postman-generator/health.svg)](https://phpackages.com/packages/nutandc-laravel-postman-generator)
```

###  Alternatives

[darkaonline/l5-swagger

OpenApi or Swagger integration to Laravel

2.9k34.0M112](/packages/darkaonline-l5-swagger)[mpociot/laravel-apidoc-generator

Generate beautiful API documentation from your Laravel application

3.5k3.1M12](/packages/mpociot-laravel-apidoc-generator)[andreaselia/laravel-api-to-postman

Generate a Postman collection automatically from your Laravel API

1.0k586.2k3](/packages/andreaselia-laravel-api-to-postman)[juststeveking/laravel-redoc

A simple API documentation package for Laravel using OpenAPI and Redoc

92289.9k1](/packages/juststeveking-laravel-redoc)[juststeveking/laravel-stoplight-elements

A simple API documentation package for Laravel using OpenAPI and Stoplight Elements

4472.9k](/packages/juststeveking-laravel-stoplight-elements)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
