Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Build, test, and automate APIs with Postman collections, environments, and Newman CLI.
Build, test, and automate APIs with Postman collections, environments, and Newman CLI.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
If ~/postman/ doesn't exist, read setup.md silently and start naturally.
User needs to test APIs, create Postman collections, manage environments, or run automated API tests with Newman.
Data lives in ~/postman/. See memory-template.md for structure. ~/postman/ โโโ memory.md # Projects, preferences, common patterns โโโ collections/ # Postman collection JSON files โโโ environments/ # Environment JSON files
TopicFileSetupsetup.mdMemory templatememory-template.mdCollection formatcollections.mdNewman automationnewman.md
Before creating requests, define the collection structure: Folder hierarchy reflects API organization Use descriptive names: Users > Create User, not POST 1 Group related endpoints logically
Never hardcode values that change between environments: { "key": "base_url", "value": "https://api.example.com", "enabled": true } Use {{base_url}} in requests. Environments: dev, staging, prod.
Handle authentication in pre-request scripts, not manually: // Get token and set for collection pm.sendRequest({ url: pm.environment.get("auth_url"), method: 'POST', body: { mode: 'raw', raw: JSON.stringify({...}) } }, (err, res) => { pm.environment.set("token", res.json().access_token); });
Every request needs at least basic assertions: pm.test("Status 200", () => pm.response.to.have.status(200)); pm.test("Has data", () => pm.expect(pm.response.json()).to.have.property("data"));
Run collections headlessly with Newman: newman run collection.json -e environment.json --reporters cli,json Exit code 0 = all tests passed. Integrate into CI pipelines.
{ "info": { "name": "My API", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "Get Users", "request": { "method": "GET", "url": "{{base_url}}/users", "header": [ { "key": "Authorization", "value": "Bearer {{token}}" } ] } } ] }
{ "name": "Create User", "request": { "method": "POST", "url": "{{base_url}}/users", "body": { "mode": "raw", "raw": "{\"name\": \"{{$randomFullName}}\", \"email\": \"{{$randomEmail}}\"}", "options": { "raw": { "language": "json" } } } }, "event": [ { "listen": "test", "script": { "exec": [ "pm.test('Created', () => pm.response.to.have.status(201));", "pm.test('Has ID', () => pm.expect(pm.response.json().id).to.exist);" ] } } ] }
{ "name": "Development", "values": [ { "key": "base_url", "value": "http://localhost:3000", "enabled": true }, { "key": "token", "value": "", "enabled": true } ] }
TaskCommandBasic runnewman run collection.jsonWith environmentnewman run collection.json -e dev.jsonSpecific foldernewman run collection.json --folder "Users"Iterationsnewman run collection.json -n 10Data filenewman run collection.json -d data.csvHTML reportnewman run collection.json -r htmlextraBail on failnewman run collection.json --bail
Hardcoded URLs โ Tests break between environments. Always use {{base_url}}. No assertions โ Tests "pass" but don't validate anything. Add status + body checks. Secrets in collection โ Credentials leak. Use environment variables, gitignore env files. Sequential dependencies โ Tests fail randomly. Use setNextRequest() explicitly or make tests independent. Missing Content-Type โ POST/PUT fails silently. Always set Content-Type: application/json.
Postman built-in variables for test data: VariableExample Output{{$randomFullName}}"Jane Doe"{{$randomEmail}}"jane@example.com"{{$randomUUID}}"550e8400-e29b-..."{{$timestamp}}1234567890{{$randomInt}}42
Import OpenAPI/Swagger specs: Export OpenAPI JSON/YAML In Postman: Import > File > Select spec Collection auto-generated with all endpoints Or via CLI: npx openapi-to-postmanv2 -s openapi.yaml -o collection.json
Data that stays local: Collections and environments in ~/postman/ Newman runs locally This skill does NOT: Send collections to external services Store API credentials in memory.md
Install with clawhub install <slug> if user confirms: api โ REST API consumption patterns json โ JSON manipulation and validation ci-cd โ Pipeline automation
If useful: clawhub star postman Stay updated: clawhub sync
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.