← PostmanCONTENT HISTORY

Update to Postman

Snapshot Oct 24, 2026 · 12:56 UTC · version 0.4.0

Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED

Instructions updated for api-testing

Full description — Now says: Use when testing an endpoint, running collection assertions, or checking real application traffic against an API contract. Reuses saved requests and reports...

Observed in instructions or declared skills. Runtime behavior has not been tested.

Save Postman and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

Full description

Before

Sep 30, 2026 · 23:09 UTC

Runs tests against an API from the command line — a single ad-hoc request, a full collection of pm.test assertions, or matching real captured app traffic against a collection contract. Use when the user asks to "test this endpoint," "run...

After

Oct 24, 2026 · 12:56 UTC

Use when testing an endpoint, running collection assertions, or checking real application traffic against an API contract. Reuses saved requests and reports what live, mocked, or captured-traffic results actually establish. Use for reque...

Skill instructions

Before

Sep 30, 2026 · 23:09 UTC

Runs tests against an API from the command line — a single ad-hoc request, a full collection of pm.test assertions, or matching real captured app traffic against a collection contract. Use when the user asks to "test this endpoint," "run...

After

Oct 24, 2026 · 12:56 UTC

Use when testing an endpoint, running collection assertions, or checking real application traffic against an API contract. Reuses saved requests and reports what live, mocked, or captured-traffic results actually establish. Use for reque...

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -1,103 +1,57 @@
 ---
 name: api-testing
-description: Runs tests against an API from the command line — a single ad-hoc request, a full collection of pm.test assertions, or matching real captured app traffic against a collection contract. Use when the user asks to "test this endpoint," "run this collection," "check the API still works," or "verify my app's requests match the contract." Covers `postman request`, `postman collection run`, and `postman application test`. Depends on bootstrap when the target is a cloud collection or workspace-bound environment; a bare URL or local collection needs nothing from bootstrap.
+description: Use when testing an endpoint, running collection assertions, or checking real application traffic against an API contract. Reuses saved requests and reports what live, mocked, or captured-traffic results actually establish. Use for requests such as "test this endpoint".
 ---
 
 # API Testing
 
-## Overview
-
-Three tools, matched to what already exists:
-
-| Have | Use |
-| --- | --- |
-| Just a URL to check, with no saved request | `postman request` |
-| A request already saved in a collection | `postman collection run <collection-path> -i <request-id-name-or-path>` |
-| A collection with `pm.test` assertions saved in it | `postman collection run` |
-| A real app (browser flow, CLI, service) whose traffic should match a collection's contract | `postman application test` |
-
-Don't reach for the heavier tool when the lighter one already answers the
-question — a one-off endpoint check doesn't need a collection, and a
-collection run doesn't need Playwright.
-
-## `postman request` — over curl, not instead of testing
-
-A single request with Postman's resolution built in: `-e` resolves
-`{{variables}}` from an environment file the same way a collection run
-would, `--auth-*` flags cover basic/bearer/digest/oauth/aws/etc. without
-hand-building headers, and `--retry`/`--timeout` handle flaky endpoints.
-`--script-post-request` can run `pm.test(...)` assertions inline — the exit
-code counts *failed assertions*, not just HTTP status, so a 200 with a
-failing test still exits nonzero. Useful for a quick check or a CI health
-check; not the place to accumulate assertions that should outlive one
-command — those belong saved in a collection.
-
-Before constructing a URL, headers, auth, and body on the command line, look
-for a matching `*.request.yaml` under `postman/collections/`. If it exists,
-execute the saved request through its collection:
-
-```bash
-postman collection run "postman/collections/Orders API" -i "create order"
-```
-
-Do not copy the saved YAML fields into `postman request`; that bypasses the
-collection's inherited variables, auth, scripts, and maintained payload. The
-`postman request` positional target is a URL, not a `.request.yaml` path. When
-there is no saved request but its body already lives in a separate file, keep
-the file as the source of truth with `--body @path/to/payload.json` instead of
-inlining its contents.
-
-## `collection run` — the assertion suite
-
-Debugging a request's behavior during a run (why a `pm.test` failed, what a
-request actually sends) means reading the request's own YAML — see the
-`collection-schema-v3` skill for that file format before assuming a field's
-shape.
-
-Runs every request in a collection (or a subset via `-i`, repeatable),
-executing whatever `pm.test` scripts are already saved in it.
-`-d`/`--iteration-data` (or the beta `--iteration-data-dataset` +
-`--iteration-data-view` pair) drives data-driven runs across a CSV/JSON
-file or a Postman Dataset. `-r junit,html` for CI-consumable reports.
-`--use-mock`/`--mock` redirects the run at a mock instead of a real backend
-(see the `api-mocking` skill) — reach for this to test request/assertion
-logic without depending on a live service.
-
-## `application test` — contract-matching real traffic
-
-This doesn't send its own requests. It runs your existing test command
-(`--command "npx playwright test"`, or config-driven via
-`postman.config.cjs` targets), captures the network traffic that command
-generates, and matches/asserts it against your Postman collections —
-answering "did my app's actual calls conform to the contract," not "does
-this endpoint respond correctly." `--capture-only` skips the matching step
-entirely and just exports what was captured as a new v3 collection,
-organized by host — a way to bootstrap a collection from real traffic
-rather than authoring one from scratch. Results upload to Postman
-automatically after each run; `--report-events=false` skips that for a run
-that shouldn't be recorded.
-
-## Critical Rules
-
-1. **Don't reach for `application test` for something a plain
-   `collection run` covers.** It exists specifically for matching *captured*
-   app traffic (via Playwright or similar), not for driving requests itself.
-2. **`postman request`'s exit code reflects failed `pm.test` assertions, not
-   HTTP status alone.** A nonzero exit on a 200 response usually means a
-   post-request script assertion failed, not a network problem.
-3. **Assertions meant to be reused belong in the collection, not on the
-   command line.** A `--script-post-request` test on `collection run` runs
-   once and leaves nothing for the next person; save it as a `pm.test` in
-   the request instead.
-4. **`--use-mock` is the way to test without a live backend** — prefer it
-   over standing up ad hoc fakes or skipping tests that need a dependency.
-5. **Reuse a saved request instead of reconstructing it.** If a matching v3
-   request exists, use `collection run <collection-path> -i <request>`; reserve
-   `postman request` for genuinely ad-hoc requests.
+Saved requests preserve the auth, payloads, variables, and assertions that make
+an API check reproducible. The useful result is evidence about an intended
+guarantee; a successful HTTP exchange alone does not establish correctness.
+
+1. Choose the smallest execution mode that answers the question:
+
+   | Evidence needed | Use |
+   | --- | --- |
+   | One endpoint with no saved request | `postman request <url>` |
+   | Behavior of an existing saved request | `postman collection run <collection-path> -i <request-id-name-or-path>` |
+   | Reusable regression checks | `postman collection run <path-or-id>` |
+   | Whether a real app's calls match the contract | `postman application test` |
+
+2. Reuse a matching request under `postman/collections/` before reconstructing
+   its HTTP fields. Running it through the collection retains inherited auth,
+   variables, and scripts. `postman request` takes a URL, not a request YAML
+   path; for an unsaved request with an existing payload file, `--body @path`
+   preserves that file as the source. See **collection-schema-v3** when
+   editing the saved request.
+3. Derive assertions from the contract and the behavior at risk. A test that
+   merely repeats the current implementation can bless its bug. Preserve
+   existing guarantees and add checks for the changed behavior; put reusable
+   `pm.test` assertions in the collection so later runs and teammates inherit
+   them. Inline `--script-post-request` assertions suit a one-off check.
+4. Choose a real or mocked target according to the claim. `--use-mock` lets a
+   collection run exercise request and assertion logic without a live
+   backend; `--mock` alone only starts one. `--use-mock` replaces the
+   variable's whole value, base path included (see **api-mocking**). Passing
+   against that mock does not verify the service the mock stands in for.
+5. Reuse environment resolution with `-e` and **variables**. Use a CSV/JSON
+   file through `-d` for simple iteration; use **datasets** when the inputs
+   need queries, joins, or reusable views. Export reports such as
+   `-r junit,html` when **ci-integration** needs evidence beyond terminal output.
+6. Use `application test` when the application's actual traffic is the subject.
+   It runs an existing command, such as `--command "npx playwright test"`,
+   captures its traffic, and matches it against collections. `--capture-only`
+   instead exports a v3 collection organized by host; that captures behavior
+   without validating it. Results are recorded in the connected workspace by
+   default; `--report-events=false` keeps the run local when required.
+
+Use command-specific `-h` for supported options and **bootstrap** for unresolved
+CLI setup or authentication when using workspace resources. A bare URL or
+local collection does not require a workspace binding.
 
 ## Verification
 
-State the actual result (pass/fail counts, exit code), not just that the
-command ran. For `application test`, state whether it ran in match mode or
-`--capture-only` — they answer different questions and shouldn't be
-reported the same way.
+Report the target, tested behavior, assertion counts, and exit code. The exit
+code reflects failed assertions, not HTTP status alone: a 200 can fail a test.
+For application testing, distinguish matching from capture-only mode, and for
+mocked runs state which real behavior remains unverified.
Full technical diff · 2 changed fields

changed /description

BEFORE
"Runs tests against an API from the command line — a single ad-hoc request, a full collection of pm.test assertions, or matching real captured app traffic against a collection contract. Use when the user asks to \"test this endpoint,\" \"run this collection,\" \"check the API still works,\" or \"verify my app's requests match the contract.\" Covers `postman request`, `postman collection run`, and `postman application test`. Depends on bootstrap when the target is a cloud collection or workspace-bound environment; a bare URL or local collection needs nothing from bootstrap."
AFTER
"Use when testing an endpoint, running collection assertions, or checking real application traffic against an API contract. Reuses saved requests and reports what live, mocked, or captured-traffic results actually establish. Use for requests such as \"test this endpoint\"."

changed /skill_md_contents

BEFORE
"---\nname: api-testing\ndescription: Runs tests against an API from the command line — a single ad-hoc request, a full collection of pm.test assertions, or matching real captured app traffic against a collection contract. Use when the user asks to \"test this endpoint,\" \"run this collection,\" \"check the API still works,\" or \"verify my app's requests match the contract.\" Covers `postman request`, `postman collection run`, and `postman application test`. Depends on bootstrap when the target is a cloud collection or workspace-bound environment; a bare URL or local collection needs nothing from bootstrap.\n---\n\n# API Testing\n\n## Overview\n\nThree tools, matched to what already exists:\n\n| Have | Use |\n| --- | --- |\n| Just a URL to check, with no saved request | `postman request` |\n| A request already saved in a collection | `postman collection run <collection-path> -i <request-id-name-or-path>` |\n| A collection with `pm.test` assertions saved in it | `postman collection run` |\n| A real app (browser flow, CLI, service) whose traffic should match a collection's contract | `postman application test` |\n\nDon't reach for the heavier tool when the lighter one already answers the\nquestion — a one-off endpoint check doesn't need a collection, and a\ncollection run doesn't need Playwright.\n\n## `postman request` — over curl, not instead of testing\n\nA single request with Postman's resolution built in: `-e` resolves\n`{{variables}}` from an environment file the same way a collection run\nwould, `--auth-*` flags cover basic/bearer/digest/oauth/aws/etc. without\nhand-building headers, and `--retry`/`--timeout` handle flaky endpoints.\n`--script-post-request` can run `pm.test(...)` assertions inline — the exit\ncode counts *failed assertions*, not just HTTP status, so a 200 with a\nfailing test still exits nonzero. Useful for a quick check or a CI health\ncheck; not the place to accumulate assertions that should outlive one\ncommand — those belong saved in a collection.\n\nBefore constructing a URL, headers, auth, and body on the command line, look\nfor a matching `*.request.yaml` under `postman/collections/`. If it exists,\nexecute the saved request through its collection:\n\n```bash\npostman collection run \"postman/collections/Orders API\" -i \"create order\"\n```\n\nDo not copy the saved YAML fields into `postman request`; that bypasses the\ncollection's inherited variables, auth, scripts, and maintained payload. The\n`postman request` positional target is a URL, not a `.request.yaml` path. When\nthere is no saved request but its body already lives in a separate file, keep\nthe file as the source of truth with `--body @path/to/payload.json` instead of\ninlining its contents.\n\n## `collection run` — the assertion suite\n\nDebugging a request's behavior during a run (why a `pm.test` failed, what a\nrequest actually sends) means reading the request's own YAML — see the\n`collection-schema-v3` skill for that file format before assuming a field's\nshape.\n\nRuns every request in a collection (or a subset via `-i`, repeatable),\nexecuting whatever `pm.test` scripts are already saved in it.\n`-d`/`--iteration-data` (or the beta `--iteration-data-dataset` +\n`--iteration-data-view` pair) drives data-driven runs across a CSV/JSON\nfile or a Postman Dataset. `-r junit,html` for CI-consumable reports.\n`--use-mock`/`--mock` redirects the run at a mock instead of a real backend\n(see the `api-mocking` skill) — reach for this to test request/assertion\nlogic without depending on a live service.\n\n## `application test` — contract-matching real traffic\n\nThis doesn't send its own requests. It runs your existing test command\n(`--command \"npx playwright test\"`, or config-driven via\n`postman.config.cjs` targets), captures the network traffic that command\ngenerates, and matches/asserts it against your Postman collections —\nanswering \"did my app's actual calls conform to the contract,\" not \"does\nthis endpoint respond correctly.\" `--capture-only` skips the matching step\nentirely and just exports what was captured as a new v3 collection,\norganized by host — a way to bootstrap a collection from real traffic\nrather than authoring one from scratch. Results upload to Postman\nautomatically after each run; `--report-events=false` skips that for a run\nthat shouldn't be recorded.\n\n## Critical Rules\n\n1. **Don't reach for `application test` for something a plain\n   `collection run` covers.** It exists specifically for matching *captured*\n   app traffic (via Playwright or similar), not for driving requests itself.\n2. **`postman request`'s exit code reflects failed `pm.test` assertions, not\n   HTTP status alone.** A nonzero exit on a 200 response usually means a\n   post-request script assertion failed, not a network problem.\n3. **Assertions meant to be reused belong in the collection, not on the\n   command line.** A `--script-post-request` test on `collection run` runs\n   once and leaves nothing for the next person; save it as a `pm.test` in\n   the request instead.\n4. **`--use-mock` is the way to test without a live backend** — prefer it\n   over standing up ad hoc fakes or skipping tests that need a dependency.\n5. **Reuse a saved request instead of reconstructing it.** If a matching v3\n   request exists, use `collection run <collection-path> -i <request>`; reserve\n   `postman request` for genuinely ad-hoc requests.\n\n## Verification\n\nState the actual result (pass/fail counts, exit code), not just that the\ncommand ran. For `application test`, state whether it ran in match mode or\n`--capture-only` — they answer different questions and shouldn't be\nreported the same way.\n"
AFTER
"---\nname: api-testing\ndescription: Use when testing an endpoint, running collection assertions, or checking real application traffic against an API contract. Reuses saved requests and reports what live, mocked, or captured-traffic results actually establish. Use for requests such as \"test this endpoint\".\n---\n\n# API Testing\n\nSaved requests preserve the auth, payloads, variables, and assertions that make\nan API check reproducible. The useful result is evidence about an intended\nguarantee; a successful HTTP exchange alone does not establish correctness.\n\n1. Choose the smallest execution mode that answers the question:\n\n   | Evidence needed | Use |\n   | --- | --- |\n   | One endpoint with no saved request | `postman request <url>` |\n   | Behavior of an existing saved request | `postman collection run <collection-path> -i <request-id-name-or-path>` |\n   | Reusable regression checks | `postman collection run <path-or-id>` |\n   | Whether a real app's calls match the contract | `postman application test` |\n\n2. Reuse a matching request under `postman/collections/` before reconstructing\n   its HTTP fields. Running it through the collection retains inherited auth,\n   variables, and scripts. `postman request` takes a URL, not a request YAML\n   path; for an unsaved request with an existing payload file, `--body @path`\n   preserves that file as the source. See **collection-schema-v3** when\n   editing the saved request.\n3. Derive assertions from the contract and the behavior at risk. A test that\n   merely repeats the current implementation can bless its bug. Preserve\n   existing guarantees and add checks for the changed behavior; put reusable\n   `pm.test` assertions in the collection so later runs and teammates inherit\n   them. Inline `--script-post-request` assertions suit a one-off check.\n4. Choose a real or mocked target according to the claim. `--use-mock` lets a\n   collection run exercise request and assertion logic without a live\n   backend; `--mock` alone only starts one. `--use-mock` replaces the\n   variable's whole value, base path included (see **api-mocking**). Passing\n   against that mock does not verify the service the mock stands in for.\n5. Reuse environment resolution with `-e` and **variables**. Use a CSV/JSON\n   file through `-d` for simple iteration; use **datasets** when the inputs\n   need queries, joins, or reusable views. Export reports such as\n   `-r junit,html` when **ci-integration** needs evidence beyond terminal output.\n6. Use `application test` when the application's actual traffic is the subject.\n   It runs an existing command, such as `--command \"npx playwright test\"`,\n   captures its traffic, and matches it against collections. `--capture-only`\n   instead exports a v3 collection organized by host; that captures behavior\n   without validating it. Results are recorded in the connected workspace by\n   default; `--report-events=false` keeps the run local when required.\n\nUse command-specific `-h` for supported options and **bootstrap** for unresolved\nCLI setup or authentication when using workspace resources. A bare URL or\nlocal collection does not require a workspace binding.\n\n## Verification\n\nReport the target, tested behavior, assertion counts, and exit code. The exit\ncode reflects failed assertions, not HTTP status alone: a 200 can fail a test.\nFor application testing, distinguish matching from capture-only mode, and for\nmocked runs state which real behavior remains unverified.\n"
Full snapshot data
{
  "description": "Use when testing an endpoint, running collection assertions, or checking real application traffic against an API contract. Reuses saved requests and reports what live, mocked, or captured-traffic results actually establish. Use for requests such as \"test this endpoint\".",
  "included_files": [],
  "name": "api-testing",
  "skill_md_contents": "---\nname: api-testing\ndescription: Use when testing an endpoint, running collection assertions, or checking real application traffic against an API contract. Reuses saved requests and reports what live, mocked, or captured-traffic results actually establish. Use for requests such as \"test this endpoint\".\n---\n\n# API Testing\n\nSaved requests preserve the auth, payloads, variables, and assertions that make\nan API check reproducible. The useful result is evidence about an intended\nguarantee; a successful HTTP exchange alone does not establish correctness.\n\n1. Choose the smallest execution mode that answers the question:\n\n   | Evidence needed | Use |\n   | --- | --- |\n   | One endpoint with no saved request | `postman request <url>` |\n   | Behavior of an existing saved request | `postman collection run <collection-path> -i <request-id-name-or-path>` |\n   | Reusable regression checks | `postman collection run <path-or-id>` |\n   | Whether a real app's calls match the contract | `postman application test` |\n\n2. Reuse a matching request under `postman/collections/` before reconstructing\n   its HTTP fields. Running it through the collection retains inherited auth,\n   variables, and scripts. `postman request` takes a URL, not a request YAML\n   path; for an unsaved request with an existing payload file, `--body @path`\n   preserves that file as the source. See **collection-schema-v3** when\n   editing the saved request.\n3. Derive assertions from the contract and the behavior at risk. A test that\n   merely repeats the current implementation can bless its bug. Preserve\n   existing guarantees and add checks for the changed behavior; put reusable\n   `pm.test` assertions in the collection so later runs and teammates inherit\n   them. Inline `--script-post-request` assertions suit a one-off check.\n4. Choose a real or mocked target according to the claim. `--use-mock` lets a\n   collection run exercise request and assertion logic without a live\n   backend; `--mock` alone only starts one. `--use-mock` replaces the\n   variable's whole value, base path included (see **api-mocking**). Passing\n   against that mock does not verify the service the mock stands in for.\n5. Reuse environment resolution with `-e` and **variables**. Use a CSV/JSON\n   file through `-d` for simple iteration; use **datasets** when the inputs\n   need queries, joins, or reusable views. Export reports such as\n   `-r junit,html` when **ci-integration** needs evidence beyond terminal output.\n6. Use `application test` when the application's actual traffic is the subject.\n   It runs an existing command, such as `--command \"npx playwright test\"`,\n   captures its traffic, and matches it against collections. `--capture-only`\n   instead exports a v3 collection organized by host; that captures behavior\n   without validating it. Results are recorded in the connected workspace by\n   default; `--report-events=false` keeps the run local when required.\n\nUse command-specific `-h` for supported options and **bootstrap** for unresolved\nCLI setup or authentication when using workspace resources. A bare URL or\nlocal collection does not require a workspace binding.\n\n## Verification\n\nReport the target, tested behavior, assertion counts, and exit code. The exit\ncode reflects failed assertions, not HTTP status alone: a 200 can fail a test.\nFor application testing, distinguish matching from capture-only mode, and for\nmocked runs state which real behavior remains unverified.\n"
}

SHA-256 of public snapshot: 68c1661a5747a447dca37d07d26e1fa9d7f1d389262e3c52de26c6bd0a686408