postman-cli 1.66.0 → 1.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/man/postman.1 +78 -81
  2. package/package.json +6 -6
package/man/postman.1 CHANGED
@@ -1,4 +1,4 @@
1
- .TH POSTMAN 1 "2026-09-28" "v1.66.0" "Postman CLI Manual"
1
+ .TH POSTMAN 1 "2026-09-29" "v1.67.0" "Postman CLI Manual"
2
2
  .SH NAME
3
3
  postman \- Command\-line companion utility for Postman
4
4
  .SH SYNOPSIS
@@ -287,12 +287,12 @@ Migrate a v2.1 collection to the v3 format
287
287
  .B collection lint
288
288
  Run linting on a local v3 collection at the given file or directory path.
289
289
  .TP
290
- .B collection ai-readiness
291
- Score a Postman collection for AI readiness by ID, local file path, or local\-mode directory.
292
- .TP
293
290
  .B collection get
294
291
  Fetch a Postman collection in the V3 format and print it.
295
292
  .TP
293
+ .B collection publish
294
+ Publish a cloud collection's documentation (or request Community Manager approval).
295
+ .TP
296
296
  .B collection generate
297
297
  Generate artifacts from a collection.
298
298
  .TP
@@ -371,53 +371,65 @@ Exit with failure if diagnostics at this level or above are present. [choices: "
371
371
  .B \-r, \-\-reporter <value>
372
372
  Output format: cli (human\-readable) or json. (default: cli)
373
373
 
374
- .SS "collection ai\-readiness"
375
- Score a Postman collection for AI readiness by ID, local file path, or local\-mode directory.
374
+ .SS "collection get"
375
+ Fetch a Postman collection in the V3 format and print it.
376
376
 
377
377
  .B Usage:
378
- <collectionId/Path> [options]
378
+ [options] <id>
379
379
 
380
380
  .B Options:
381
381
  .TP
382
- .B \-o, \-\-output <value>
383
- Output format for the results. [choices: "cli", "json", "html"]
384
- .TP
385
- .B \-\-export <path>
386
- Write the report to this file instead of stdout. A directory receives the report under a name derived from the collection. Requires \-\-output html.
382
+ .B \-\-api\-key <key>
383
+ Postman API key (defaults to your `postman login` session)
387
384
  .TP
388
- .B \-\-min\-score <n>
389
- Exit with a non\-zero code if the overall score is below this threshold (0\-100).
385
+ .B \-\-json
386
+ Print the collection as machine\-readable V3 JSON instead of a table
390
387
 
391
388
  .TP Examples:
392
389
 
393
- Examples:
394
- $ postman collection ai\-readiness ./postman/collections/My\e API
395
- $ postman collection ai\-readiness ./my\-collection.json
396
- $ postman collection ai\-readiness 631643\-f695cab7\-... \-\-output json
397
- $ postman collection ai\-readiness ./my\-collection.json \-\-output html > report.html
398
- $ postman collection ai\-readiness ./my\-collection.json \-\-min\-score 70
399
-
400
- Resolving a collection by ID requires authentication. Use `postman login` before running this command with a UID.
390
+ Eg. postman collection get 12345\-33823532ab9e41c9b6fd12d0fd459b8b
391
+ postman collection get 0123456789abcdef01234567 \-\-json
401
392
 
402
393
 
403
- .SS "collection get"
404
- Fetch a Postman collection in the V3 format and print it.
394
+ .SS "collection publish"
395
+ Publish a cloud collection's documentation (or request Community Manager approval).
405
396
 
406
397
  .B Usage:
407
- [options] <id>
398
+ [options] <collection\-id>
408
399
 
409
400
  .B Options:
410
401
  .TP
402
+ .B \-\-target <name>
403
+ Where to publish (default: documentation) (default: documentation)
404
+ .TP
405
+ .B \-\-environment <environment\-id>
406
+ Cloud environment UID to bind to the docs
407
+ .TP
408
+ .B \-\-title <seo\-title>
409
+ SEO title meta tag (max 120 characters)
410
+ .TP
411
+ .B \-\-description <seo\-description>
412
+ SEO description meta tag (max 320 characters)
413
+ .TP
414
+ .B \-\-note <text>
415
+ Note for Community Managers (request\-to\-publish only)
416
+ .TP
411
417
  .B \-\-api\-key <key>
412
418
  Postman API key (defaults to your `postman login` session)
413
419
  .TP
414
420
  .B \-\-json
415
- Print the collection as machine\-readable V3 JSON instead of a table
421
+ Machine\-readable JSON on stdout (errors on stderr)
416
422
 
417
423
  .TP Examples:
418
424
 
419
- Eg. postman collection get 12345\-33823532ab9e41c9b6fd12d0fd459b8b
420
- postman collection get 0123456789abcdef01234567 \-\-json
425
+ Cloud only — pass a collection UID, not a local path or name.
426
+
427
+ Examples:
428
+ postman collection publish 12345\-33823532\-ab9e\-41c9\-b6fd\-12d0fd459b8b
429
+ postman collection publish <collection\-id> \-\-title "Orders API" \-\-description "Public Orders reference"
430
+ postman collection publish <collection\-id> \-\-note "Ready for Q3 review."
431
+ postman collection publish <collection\-id> \-\-json
432
+
421
433
 
422
434
 
423
435
  .SS "collection generate"
@@ -563,13 +575,16 @@ Folder to scope the request selector, e.g. "Users/Admin" (local: name/path; clou
563
575
  Rename the request (moves its file). Any request type.
564
576
  .TP
565
577
  .B \-\-url <url>
566
- Request URL. Any request type.
578
+ Request URL; its query string becomes the query parameters. Any request type.
567
579
  .TP
568
580
  .B \-\-method <method>
569
581
  HTTP method (http requests only).
570
582
  .TP
571
583
  .B \-\-param <key:value>
572
- Replace query parameters. Repeatable (http requests only). (default: )
584
+ Replace all query parameters and the url query string. Repeatable (http requests only). (default: )
585
+ .TP
586
+ .B \-\-clear\-params
587
+ Remove all query parameters and the url query string (http requests only).
573
588
  .TP
574
589
  .B \-d, \-\-body <body>
575
590
  Request payload (inline, @file, or \- for stdin), interpreted by request type. For http, an optional "<type>:" prefix picks the content type: json/text/xml/html/javascript, file:<path>, urlencoded:key=v&k2=v2, or formdata:key=v&file=@path.
@@ -600,10 +615,12 @@ JSON output.
600
615
 
601
616
  .TP Examples:
602
617
 
603
- Works on any request type; \-\-rename/\-\-url/\-\-description/\-\-headers/\-\-auth/\-\-scripts apply to all, while \-\-method/\-\-param/\-\-body are http\-only. Select the request by the <request> selector: local — a name or "Folder/Name" path (or \-\-folder to scope a bare name); cloud (\-\-workspace) — a request id, with \-\-collection an id too.
618
+ Works on any request type; \-\-rename/\-\-url/\-\-description/\-\-headers/\-\-auth/\-\-scripts apply to all, while \-\-method/\-\-param/\-\-clear\-params are http\-only and \-\-body is interpreted per type. \-\-param and \-\-clear\-params apply after \-\-url. Select the request by the <request> selector: local — a name or "Folder/Name" path (or \-\-folder to scope a bare name); cloud (\-\-workspace) — a request id, with \-\-collection an id too.
604
619
 
605
620
  Examples:
606
621
  postman collection request update "Get user" \-\-collection "My API" \-\-url "{{baseUrl}}/users/:id"
622
+ postman collection request update "List" \-\-collection "My API" \-\-url "{{baseUrl}}/orders?limit=99"
623
+ postman collection request update "List" \-\-collection "My API" \-\-clear\-params
607
624
  postman collection request update "Get user" \-\-collection "My API" \-\-folder Users \-\-rename "Fetch user"
608
625
  postman collection request update "Get user" \-\-collection "My API" \-\-headers "Authorization:Bearer x" \-\-auth bearer:TOKEN \-\-scripts "test:@check.js"
609
626
  postman collection request update <requestId> \-\-collection <collectionId> \-\-url "..." \-w <workspaceId>
@@ -854,13 +871,13 @@ Define the number of iterations to run
854
871
  Specify a data file to use for iterations (either JSON or CSV)
855
872
  .TP
856
873
  .B \-\-iteration\-data\-dataset <pathOrId>
857
- [BETA] Path to a .dataset.yaml (local collection) or a cloud dataset id (cloud collection) whose view drives the iteration data. Mutually exclusive with \-\-iteration\-data. Requires \-\-iteration\-data\-view.
874
+ Path to a .dataset.yaml (local collection) or a cloud dataset id (cloud collection) whose view drives the iteration data. Mutually exclusive with \-\-iteration\-data. Requires \-\-iteration\-data\-view.
858
875
  .TP
859
876
  .B \-\-iteration\-data\-view <nameOrId>
860
- [BETA] Name or id of the view to execute (within \-\-iteration\-data\-dataset). The view's result set drives one iteration per row.
877
+ Name or id of the view to execute (within \-\-iteration\-data\-dataset). The view's result set drives one iteration per row.
861
878
  .TP
862
879
  .B \-\-dataset <pathOrDir>
863
- [BETA] Pass \-\-dataset multiple times to load several .dataset.yaml files (or directories containing them). Each is made available to collection scripts and local mock handlers as pm.datasets(<id>). When provided, auto\-discovery of .dataset.yaml files from the collection's parent repo is disabled. For a cloud collection, scripts address cloud datasets by id via pm.datasets(<id>) (resolved from your `postman login` session). SECURITY: for a cloud collection this does NOT scope access — a script can pm.datasets(<anyId>) for any dataset your session can read. Only run collections you trust against a logged\-in cloud session. (default: )
880
+ Pass \-\-dataset multiple times to load several .dataset.yaml files (or directories containing them). Each is made available to collection scripts and local mock handlers as pm.datasets(<id>). When provided, auto\-discovery of .dataset.yaml files from the collection's parent repo is disabled. For a cloud collection, scripts address cloud datasets by id via pm.datasets(<id>) (resolved from your `postman login` session). SECURITY: for a cloud collection this does NOT scope access — a script can pm.datasets(<anyId>) for any dataset your session can read. Only run collections you trust against a logged\-in cloud session. (default: )
864
881
  .TP
865
882
  .B \-i <id>
866
883
  Specify the request/folder id, name, or path to run from the collection. Use a path (e.g. "FolderName/RequestName") to disambiguate items with the same name. Can be specified multiple times to run multiple items (default: )
@@ -1424,10 +1441,6 @@ Lint and validate Specifications from the command line
1424
1441
  .B spec lint
1425
1442
  Run linting on the given specification by ID or local file path.
1426
1443
 
1427
- .TP
1428
- .B spec ai-readiness
1429
- Score an OpenAPI specification for AI readiness by ID or local file path.
1430
-
1431
1444
  .TP
1432
1445
  .B spec list
1433
1446
  List local spec files under a path, or (no path) a workspace's cloud specs.
@@ -1474,34 +1487,6 @@ Accepted for compatibility; analytics are sent by default
1474
1487
  .B \-\-no\-report\-events
1475
1488
  Do not send analytics to Postman
1476
1489
 
1477
- .SS "spec ai\-readiness"
1478
- Score an OpenAPI specification for AI readiness by ID or local file path.
1479
-
1480
-
1481
- .B Usage:
1482
- <spec> [options]
1483
-
1484
- .B Options:
1485
- .TP
1486
- .B \-o, \-\-output <value>
1487
- Output format for the results. [choices: "cli", "json", "html"]
1488
- .TP
1489
- .B \-\-export <path>
1490
- Write the report to this file instead of stdout. A directory receives the report under a name derived from the specification. Requires \-\-output html.
1491
- .TP
1492
- .B \-\-min\-score <n>
1493
- Exit with a non\-zero code if the overall score is below this threshold (0\-100).
1494
-
1495
- .TP Examples:
1496
-
1497
- Examples:
1498
- $ postman spec ai\-readiness ./openapi.yaml
1499
- $ postman spec ai\-readiness 6e2e5b3e\-... \-\-output json
1500
- $ postman spec ai\-readiness ./openapi.yaml \-\-output html > report.html
1501
- $ postman spec ai\-readiness ./openapi.yaml \-\-output html \-\-export ./report.html
1502
- $ postman spec ai\-readiness ./openapi.yaml \-\-min\-score 70
1503
-
1504
-
1505
1490
  .SS "spec list"
1506
1491
  List local spec files under a path, or (no path) a workspace's cloud specs.
1507
1492
 
@@ -3975,6 +3960,9 @@ Workspace that owns the run, for recording its start history. Auto\-resolved for
3975
3960
  .B \-\-no\-history
3976
3961
  Do not record this run in the mock's start history.
3977
3962
  .TP
3963
+ .B \-\-output <format>
3964
+ Live output format: auto (default, human\-readable logs) or ndjson (one JSON event per line on stdout, ending with a "summary" event — for CI or other non\-interactive use) (default: auto)
3965
+ .TP
3978
3966
  .B \-\-dataset <pathOrDir>
3979
3967
  Pass \-\-dataset multiple times to load several .dataset.yaml files (or directories containing them). Each is made available to the mock's handlers as pm.datasets(<id>). (default: )
3980
3968
 
@@ -3985,6 +3973,7 @@ Eg. postman mock run 12345678\-90ab\-cdef\-1234\-567890abcdef # by id, from Pos
3985
3973
  postman mock run ./postman/mocks/orders \-\-environment ./postman/environments/dev.environment.yaml
3986
3974
  postman mock run ./postman/mocks/orders \-\-port auto # pick any free port
3987
3975
  postman mock run ./postman/mocks/orders \-\-port 4600 # use port 4600 (fails if it is in use)
3976
+ postman mock run ./postman/mocks/orders \-\-output ndjson # stream machine\-readable events
3988
3977
  postman mock run ./postman/mocks/orders \-\-workspace <id> # record start history for a path run
3989
3978
  postman mock run ./postman/mocks/orders \-\-dataset ./postman/datasets/Orders
3990
3979
 
@@ -5631,7 +5620,7 @@ Run an ad\-hoc SQL query against a dataset (local YAML path or cloud id).
5631
5620
  .B Options:
5632
5621
  .TP
5633
5622
  .B \-q, \-\-query <sql>
5634
- SQL query to execute (e.g. "SELECT * FROM source_users LIMIT 10")
5623
+ SQL query to execute (e.g. "SELECT * FROM users LIMIT 10")
5635
5624
  .TP
5636
5625
  .B \-s, \-\-source <nameOrIdOrSlug>
5637
5626
  Execute directly against a database datasource; without \-\-source, use federated SQLite
@@ -5651,10 +5640,10 @@ Include safe classified dataset diagnostics
5651
5640
  .TP Examples:
5652
5641
 
5653
5642
  Examples:
5654
- postman dataset query ./users.dataset.yaml \-q "SELECT * FROM source_users LIMIT 5"
5643
+ postman dataset query ./users.dataset.yaml \-q "SELECT * FROM users LIMIT 5"
5655
5644
  postman dataset query ./users.dataset.yaml \-\-source warehouse \-q "SELECT * FROM users LIMIT 5"
5656
5645
  postman dataset query ./users.dataset.yaml \e
5657
- \-q 'SELECT * FROM source_users WHERE id = $1 AND active = $2' \-p 42 true
5646
+ \-q 'SELECT * FROM users WHERE id = $1 AND active = $2' \-p 42 true
5658
5647
  postman dataset query 14e30f6c\-1234\-1234\-1234\-cafef00dc0de \-q "SELECT * FROM users LIMIT 5"
5659
5648
 
5660
5649
 
@@ -5783,19 +5772,19 @@ Add a datasource to a dataset.
5783
5772
  Dataset to add the source to; positional target is also accepted for v1.45 compatibility
5784
5773
  .TP
5785
5774
  .B \-n, \-\-name <name>
5786
- Logical name for the source (becomes the SQL table name)
5775
+ Logical name for the source (becomes the SQL table name). Required for every source except a spreadsheet, whose worksheets are each named source_<worksheet>
5787
5776
  .TP
5788
5777
  .B \-\-source\-id <uuid>
5789
5778
  Override the generated source id (local dataset only)
5790
5779
  .TP
5791
- .B \-\-format <csv|json|mysql|postgres|sqlserver>
5792
- Use this format instead of extension/type inference; file contents are not sniffed
5780
+ .B \-\-format <csv|json|xlsx|xls|ods|jdbc|mysql|postgres|sqlserver>
5781
+ Use this format instead of extension/type inference; file contents are not sniffed. A spreadsheet (xlsx/xls/ods) is added as one source per worksheet, each named source_<worksheet>
5793
5782
  .TP
5794
5783
  .B \-\-type <local|mysql|postgresql|sqlserver|jdbc>
5795
5784
  Source kind; local is inferred from \-\-file, jdbc from \-\-driver\-jar
5796
5785
  .TP
5797
5786
  .B \-\-file <path>
5798
- Path to a local CSV/JSON file (absolute or cwd\-relative)
5787
+ Path to a local CSV/JSON/spreadsheet file (absolute or cwd\-relative)
5799
5788
  .TP
5800
5789
  .B \-\-ref\-only
5801
5790
  Reference the file in place; do NOT copy into data_dir (local dataset)
@@ -5804,7 +5793,7 @@ Reference the file in place; do NOT copy into data_dir (local dataset)
5804
5793
  When copying, overwrite an existing file at the destination (local dataset)
5805
5794
  .TP
5806
5795
  .B \-\-upload
5807
- Cloud dataset only: upload \-\-file as a postmancloudfile source (runs via /exec). Without \-\-upload, \-\-file is registered as a local_filesystem csv/json source read by the local engine.
5796
+ Cloud dataset only: upload \-\-file as a postmancloudfile source (runs via /exec). Without \-\-upload, \-\-file is registered as a local_filesystem source read by the local engine. Either way a cloud dataset takes csv/json only — add a spreadsheet to a local .dataset.yaml, where each worksheet becomes its own source.
5808
5797
  .TP
5809
5798
  .B \-\-driver\-jar <path...>
5810
5799
  JDBC driver JAR(s). Repeatable, or pass several after one flag
@@ -5960,6 +5949,11 @@ Connection test:
5960
5949
  JSON output (\-\-json):
5961
5950
  Success: {"ok":true,"source":{"id","name","target","format","driver",
5962
5951
  "urlTemplate","connectionTest"},"warnings":[...]}
5952
+ Spreadsheet: also "sources":[{"id","name","worksheet","table"}] — one entry
5953
+ per worksheet, however many there are, with "source" set to the
5954
+ first. "table" is the identifier to query: the engine collapses
5955
+ "_" runs and drops leading and trailing "_", so it can differ
5956
+ from "name".
5963
5957
  Failure: {"ok":false,"error":{"code","message","remediation",...context}}
5964
5958
  Both go to stdout, so `\-\-json 2>/dev/null | jq .` parses either way.
5965
5959
  Error codes: DRIVER_FILE_NOT_FOUND, DRIVER_CLASS_NOT_FOUND,
@@ -5968,10 +5962,13 @@ JSON output (\-\-json):
5968
5962
  VAULT_REFERENCE_INVALID,
5969
5963
  VARS_FILE_UNREADABLE, VARS_FILE_INVALID, SOURCE_NOT_FOUND, SOURCE_NOT_JDBC,
5970
5964
  JAVA_NOT_FOUND, JAVA_UNSUPPORTED, DRIVER_LOAD_FAILED, CONNECTION_FAILED,
5971
- CONNECTION_TIMEOUT, SECRET_RESOLUTION_FAILED, INVALID_ARGUMENT
5965
+ CONNECTION_TIMEOUT, SECRET_RESOLUTION_FAILED, INVALID_ARGUMENT,
5966
+ SPREADSHEET_DESCRIBE_FAILED, SPREADSHEET_NO_WORKSHEETS,
5967
+ SPREADSHEET_UNIT_NOT_PINNED, SOURCE_ID_AMBIGUOUS,
5968
+ SPREADSHEET_CLOUD_UNSUPPORTED, WORKBOOK_FORMAT_UNSUPPORTED
5972
5969
  Warning codes: PLAINTEXT_SECRET, CONNECTION_NOT_TESTED, NO_VARIABLES,
5973
- EMPTY_VARIABLE_VALUE, NAME_NOT_SQL_SAFE, TRUST_SERVER_CERTIFICATE,
5974
- SSH_VALUES_IN_ARGV, SSH_HOST_KEY_UNVERIFIED
5970
+ EMPTY_VARIABLE_VALUE, NAME_NOT_SQL_SAFE, NAME_UNUSED_FOR_SPREADSHEET,
5971
+ TRUST_SERVER_CERTIFICATE, SSH_VALUES_IN_ARGV, SSH_HOST_KEY_UNVERIFIED
5975
5972
  LOCAL_VAULT_UNSUPPORTED, SOURCE_NAME_CONFLICT, SOURCE_ID_CONFLICT and
5976
5973
  DATASET_FILE_CHANGED are also possible; DATASET_COMMAND_FAILED is the
5977
5974
  fallback for anything unclassified.
@@ -6015,8 +6012,8 @@ Dataset the source belongs to — a local .dataset.yaml path or a cloud dataset
6015
6012
  .B \-n, \-\-name <name>
6016
6013
  Rename the source
6017
6014
  .TP
6018
- .B \-\-format <csv|json|mysql|postgres|sqlserver>
6019
- Change the format (local dataset only; cloud source formats are immutable)
6015
+ .B \-\-format <csv|json|jdbc|mysql|postgres|sqlserver>
6016
+ Change the format (local dataset only; cloud source formats are immutable). A spreadsheet format is not offered here: this command changes the format field alone and cannot pin a worksheet, so the source would not compile. Add the workbook with `dataset source add` instead, which makes one worksheet\-pinned source per sheet
6020
6017
  .TP
6021
6018
  .B \-\-file <path>
6022
6019
  Replace the source file (local dataset only; cloud file replacement is unsupported)
@@ -6321,7 +6318,7 @@ Postman API key (defaults to the `postman login` session)
6321
6318
 
6322
6319
  Examples:
6323
6320
  postman dataset view create \-d ./users.dataset.yaml \e
6324
- \-n "Active Users" \-q "SELECT * FROM source_users WHERE active = true"
6321
+ \-n "Active Users" \-q "SELECT * FROM users WHERE active = true"
6325
6322
  postman dataset view create \-d 14e30f6c\-1234\-1234\-1234\-cafef00dc0de \e
6326
6323
  \-n "Active Users" \-q "SELECT * FROM users WHERE active = true"
6327
6324
 
@@ -6389,7 +6386,7 @@ Postman API key (defaults to the `postman login` session)
6389
6386
 
6390
6387
  Examples:
6391
6388
  postman dataset view update "Active Users" \e
6392
- \-d ./users.dataset.yaml \-q "SELECT * FROM source_users"
6389
+ \-d ./users.dataset.yaml \-q "SELECT * FROM users"
6393
6390
  postman dataset view update "Active Users" \e
6394
6391
  \-d 14e30f6c\-1234\-1234\-1234\-cafef00dc0de \-q "SELECT * FROM users"
6395
6392
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "postman-cli",
3
- "version": "1.66.0",
3
+ "version": "1.67.0",
4
4
  "description": "Official Postman CLI - Command-line companion for API development, testing, and automation",
5
5
  "keywords": [
6
6
  "postman",
@@ -62,10 +62,10 @@
62
62
  "scripts/"
63
63
  ],
64
64
  "optionalDependencies": {
65
- "@postman/pm-bin-macos-arm64": "1.66.0",
66
- "@postman/pm-bin-macos-x64": "1.66.0",
67
- "@postman/pm-bin-linux-x64": "1.66.0",
68
- "@postman/pm-bin-linux-arm64": "1.66.0",
69
- "@postman/pm-bin-windows-x64": "1.66.0"
65
+ "@postman/pm-bin-macos-arm64": "1.67.0",
66
+ "@postman/pm-bin-macos-x64": "1.67.0",
67
+ "@postman/pm-bin-linux-x64": "1.67.0",
68
+ "@postman/pm-bin-linux-arm64": "1.67.0",
69
+ "@postman/pm-bin-windows-x64": "1.67.0"
70
70
  }
71
71
  }