API Testing Expert

API testing - Postman, REST clients, contract testing, mock servers

16 stars

Best use case

API Testing Expert is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

API testing - Postman, REST clients, contract testing, mock servers

Teams using API Testing Expert should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/api-testing-expert/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/api-testing-expert/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/api-testing-expert/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How API Testing Expert Compares

Feature / AgentAPI Testing ExpertStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

API testing - Postman, REST clients, contract testing, mock servers

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# API Testing Expert

Comprehensive API testing patterns for REST, GraphQL, and more.

## Tools Comparison

| Tool | Best For | Free Tier | Pricing |
|------|----------|-----------|---------|
| Postman | Teams | 3 users | $14/user/mo |
| Bruno | Local-first | Unlimited | Free |
| Hoppscotch | Open source | Unlimited | Free |
| REST Client (VS Code) | In-editor | Unlimited | Free |

## Bruno (Recommended for Vibe Coders)

Git-friendly, no account needed.

### Install
```bash
brew install bruno
```

### Collection Structure
```
api-tests/
├── bruno.json
├── environments/
│   ├── local.bru
│   └── production.bru
└── requests/
    ├── auth/
    │   └── login.bru
    └── users/
        └── get-user.bru
```

### Request File
```bru
meta {
  name: Get User
  type: http
  seq: 1
}

get {
  url: {{baseUrl}}/users/{{userId}}
  body: none
  auth: bearer {{token}}
}

tests {
  test("status is 200", function() {
    expect(res.status).to.equal(200);
  });

  test("has user data", function() {
    expect(res.body.id).to.exist;
  });
}
```

## REST Client (VS Code)

### HTTP File
```http
### Login
POST {{baseUrl}}/auth/login
Content-Type: application/json

{
  "email": "test@example.com",
  "password": "secret"
}

### Get User (use token from login)
GET {{baseUrl}}/users/me
Authorization: Bearer {{$dotenv TOKEN}}
```

## Postman CLI (Newman)

### Run in CI
```bash
npx newman run collection.json \
  -e environment.json \
  --reporters cli,json \
  --reporter-json-export results.json
```

### GitHub Actions
```yaml
- name: Run API Tests
  run: |
    npx newman run ./postman/collection.json \
      -e ./postman/ci-environment.json \
      --bail
```

## Contract Testing (Pact)

### Consumer Test
```javascript
const { Pact } = require('@pact-foundation/pact');

const provider = new Pact({
  consumer: 'Frontend',
  provider: 'UserService',
});

describe('User API', () => {
  it('returns user by id', async () => {
    await provider.addInteraction({
      state: 'user 1 exists',
      uponReceiving: 'a request for user 1',
      withRequest: {
        method: 'GET',
        path: '/users/1',
      },
      willRespondWith: {
        status: 200,
        body: {
          id: 1,
          name: like('John'),
        },
      },
    });
  });
});
```

## Mock Servers

### MSW (Mock Service Worker)
```typescript
import { http, HttpResponse } from 'msw';
import { setupServer } from 'msw/node';

const handlers = [
  http.get('/api/users/:id', ({ params }) => {
    return HttpResponse.json({
      id: params.id,
      name: 'Test User',
    });
  }),
];

export const server = setupServer(...handlers);
```

### Prism (OpenAPI Mock)
```bash
# Mock from OpenAPI spec
npx @stoplight/prism-cli mock openapi.yaml
```

## Quick API Test Pattern

```bash
# Simple curl test script
curl -sf "$API_URL/health" || exit 1
curl -sf -H "Authorization: Bearer $TOKEN" "$API_URL/users/me" | jq .
```

Use when: API testing, contract testing, mock servers, CI integration

Related Skills

Architecture Diagramming Expert

16
from diegosouzapw/awesome-omni-skill

Create professional architecture diagrams using D2, Draw.io, Mermaid, and OCI official icons for enterprise-grade visualizations

aptos-expert

16
from diegosouzapw/awesome-omni-skill

Expert on Aptos blockchain, Move language, smart contracts, NFTs, DeFi, and Aptos development. Triggers on keywords aptos, move, blockchain, smart contract, nft, defi, web3, mainnet, testnet, devnet

Appium Mobile Testing

16
from diegosouzapw/awesome-omni-skill

Mobile app testing automation for iOS and Android with Appium

api-testing

16
from diegosouzapw/awesome-omni-skill

REST and GraphQL API testing with Playwright. Use when testing APIs, mocking endpoints, validating responses, or integrating API tests with E2E flows.

api-development-expert

16
from diegosouzapw/awesome-omni-skill

API development expert including REST design, OpenAPI, and documentation

android-expert

16
from diegosouzapw/awesome-omni-skill

Android development expert including Jetpack Compose, Kotlin, and Material Design

analytic-philosophy-expert

16
from diegosouzapw/awesome-omni-skill

Expert in Anglo-American analytic tradition covering logic, language, mind, and epistemology from Frege to contemporary philosophy

always-works-testing

16
from diegosouzapw/awesome-omni-skill

Default testing standard for all implementation work - ensures code actually works through mandatory execution validation before confirming to user. Applies automatically whenever writing, modifying, debugging, or implementing any code (scripts, APIs, UI, configs, data operations, logic changes). This is the baseline expectation, not an optional extra - every implementation must be verified through actual execution, not assumed correct.

agent-vue-expert

16
from diegosouzapw/awesome-omni-skill

Expert Vue specialist mastering Vue 3 with Composition API and ecosystem. Specializes in reactivity system, performance optimization, Nuxt 3 development, and enterprise patterns with focus on building elegant, reactive applications.

agent-flutter-expert

16
from diegosouzapw/awesome-omni-skill

Expert Flutter specialist mastering Flutter 3+ with modern architecture patterns. Specializes in cross-platform development, custom animations, native integrations, and performance optimization with focus on creating beautiful, native-performance applications.

aerospace-expert

16
from diegosouzapw/awesome-omni-skill

Expert-level aerospace systems, flight management, maintenance tracking, aviation safety, and aerospace software

voxanne-branding-expert

16
from diegosouzapw/awesome-omni-skill

Strategic branding, business development, and UI/UX design expertise for Voxanne AI. Combines business strategy, visual design principles, and market positioning to create enterprise-grade branding assets and go-to-market strategies. Use when designing logos, creating brand guidelines, developing marketing strategies, or positioning products against competitors like ChatGPT, Anthropic, and Google.