api-testing
Skill1 starsChanged 52 days agoMITView on GitHub
Use when testing REST/GraphQL APIs directly — status codes, schema/contract validation, auth, pagination, rate limits, idempotency, and error responses. Use instead of driving the UI when the question is really about the API layer.
- Sends data out
17 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- idavidov13/agentic-playwrighttheir own version, first seen Nov 8, 2026
- jason0971/skillstheir own version, first seen Nov 8, 2026
- petrkindlmann/qa-skillstheir own version, first seen Oct 25, 2026
- fugazi/test-automation-skills-agentstheir own version, first seen Oct 21, 2026
- fishzjp/qa-skillstheir own version, first seen Oct 21, 2026
- int2t05/engineering-skillstheir own version, first seen Oct 15, 2026
Used with
Projects with it also use api-design and debugging.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillapi-design
Guide for designing and documenting RESTful APIs. Use when asked to design an API, create endpoints, or document an API.
Also in 4 projects that use this
BlockSkilldebugging
Debugging guidelines and best practices
Also in 3 projects that use this
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- mejbaurbahar/fagun★ 116% same
Wrote their own version · 16
- idavidov13/agentic-playwright★ 268same name
- fugazi/test-automation-skills-agents★ 256same name
- petrkindlmann/qa-skills★ 209same name
- Strategic-Automation/violin★ 159same name
- fishzjp/qa-skills★ 62same name
- mindfortai/security-skills★ 16same name
- nek1987/auto-agent-harness★ 4same name
- vikisingh23/neuraforge-ai★ 4same name
- int2t05/engineering-skills★ 3same name
- HACK-WU/skills★ 2same name
6 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository98 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- 42crunch-api-security-testingSkill
- a-b-testingSkill
- acceptance-testingSkill
- accessibility-testingSkill
- ai-agent-evaluationSkill
- ai-code-securitySkill
- ai-ml-testingSkill
- analytics-tracking-testingSkill
- authn-authz-testingSkill
- autonomous-qa-orchestrationSkill
- bdd-gherkin-testingSkill
- blockchain-smart-contract-testingSkill
- bug-reportingSkill
- chaos-resilience-testingSkill
- chatbot-voice-agent-testingSkill
- cicd-testingSkill
- cli-testingSkill
- cloud-infrastructure-testingSkill
- code-coverage-analysisSkill
- compatibility-testingSkill
- compliance-testingSkill
- concurrency-race-condition-testingSkill
- configuration-feature-flag-testingSkill
- contract-testingSkill
- cross-browser-testingSkill
- database-testingSkill
- data-migration-testingSkill
- data-pipeline-etl-testingSkill
- date-time-timezone-testingSkill
- desktop-app-testingSkill
- disaster-recovery-backup-testingSkill
- e2e-testingSkill
- email-notification-testingSkill
- event-driven-messaging-testingSkill
- exploratory-testingSkill
- flaky-test-managementSkill
- functional-testingSkill
- fuzz-testingSkill
- game-testingSkill
- graphql-testingSkill
- iac-container-security-testingSkill
- installation-upgrade-testingSkill
- integration-testingSkill
- iot-embedded-testingSkill
- llm-security-auditSkill
- llm-testingSkill
- localization-testingSkill
- manual-testingSkill
- mcp-testingSkill
- memory-leak-resource-testingSkill
- microservices-testingSkill
- mobile-testingSkill
- mutation-testingSkill
- observability-testingSkill
- payment-ecommerce-testingSkill
- performance-testingSkill
- production-monitoring-synthetic-testingSkill
- property-based-testingSkill
- The first 60 shown.
The file
Files
API Testing
Why test at the API layer
Faster, more deterministic and more precise than UI tests, and it catches what a UI can hide (a UI may swallow a 500 and show cached data). Always cross-check a UI-observed bug against the raw API response before filing: it tells you whether the fault is frontend or backend.
Per-endpoint checklist
| Area | What to verify |
| Status codes | Right code for success (200/201/204), client error (400/401/403/404/409/415/422/429), server error (5xx). A 200 carrying an error body is an anti-pattern to flag. |
| Response schema | Types, required fields, enums, formats; no leaked internals (password hashes, internal IDs, stack traces); consistent null vs missing. |
| Request validation | Missing/extra/wrong-type fields, malformed JSON, oversized bodies, wrong Content-Type, unicode/emoji, boundary values (test-design-techniques). Must reject cleanly (4xx), never 500. |
| Auth | No token → 401; wrong role → 403; expired/invalid token → 401 with a clear error; another user's or tenant's object → 403/404 (authn-authz-testing). |
| Pagination/sorting/filtering | First, last and out-of-range page; size 0/negative/huge; stable ordering (no duplicates/skips while data changes); cursor validity; total counts. |
| Idempotency & retries | Repeating POST/PUT/DELETE: Idempotency-Key honored, no duplicate orders/payments; PUT/DELETE truly idempotent. |
| Concurrency | Parallel updates → conflict detection (ETag/If-Match, version field), no lost updates (concurrency-race-condition-testing). |
| Caching & conditional requests | ETag/Last-Modified, 304, Cache-Control, Vary; private data never cacheable by shared caches. |
| Rate limiting | 429 + Retry-After; limits per user/IP/key; limits not bypassable by header tricks. |
| Errors | One consistent error shape across endpoints, ideally RFC 9457 application/problem+json; correlation/request ID present; no internals leaked. |
| Versioning & compatibility | Old clients keep working; deprecations announced with Deprecation/Sunset headers. |
| Headers & transport | CORS (allowed origins are explicit), security headers, TLS, Content-Type charset, compression. |
| Files/binary | Upload size/type limits, virus-scan hook, streaming download, range requests. |
| Webhooks/callbacks | Signature verification, retries, duplicates, out-of-order events (event-driven-messaging-testing). |
Contract and schema validation
Validate responses against the OpenAPI/JSON Schema/GraphQL schema programmatically, not by eyeballing JSON. Drift between documentation and behavior is a bug even when "the API works". Consumer-driven contracts: contract-testing. Spec-driven fuzzing finds crashes and violations automatically:
schemathesis run https://staging.example.com/openapi.json --checks all --hypothesis-max-examples=100
dredd openapi.yaml https://staging.example.com # example-based contract runTooling (pick what fits the stack)
| Need | Tools |
| Quick manual probes | curl -i, httpie, Postman, Bruno, Insomnia, VS Code REST Client |
| Scripted suites | pytest + requests/httpx, Jest/Vitest + supertest, REST Assured (Java), Playwright request, Karate, Hurl |
| Collections in CI | Newman (Postman), Bruno CLI, Hurl |
| Mocks/stubs | WireMock, MockServer, MSW, Prism (from OpenAPI) |
| Traffic capture | Browser DevTools network tab, mitmproxy, proxy logs |
curl -sS -i -X POST "$API/orders" -H "Authorization: Bearer $TOKEN" -H "Idempotency-Key: $(uuidgen)" \
-H 'Content-Type: application/json' -d '{"sku":"A-1","qty":2}'
hurl --test --variable host=$API orders.hurl# pytest: auth matrix as parametrized data
@pytest.mark.parametrize("token,expected", [(None,401), ("expired",401), ("user",403), ("admin",200)])
def test_admin_endpoint_access(client, tokens, token, expected):
r = client.get("/admin/reports", headers=auth(tokens.get(token)))
assert r.status_code == expectedSecurity-adjacent checks (depth in security-testing)
Object-level authorization by changing IDs · mass assignment ("role":"admin" in a body is ignored/rejected) · injection through every string field, header and filename · SSRF on any "fetch this URL" feature · excessive data exposure (fields the client never needs) · verbose errors.
Performance sanity
Record p50/p95 latency per endpoint in the suite and fail on regressions beyond a threshold; deeper work in performance-testing.
Reporting
Include the exact request (method, URL, relevant headers, body) and the full response, plus environment and timestamp. "The API is broken" without the request/response pair is not actionable. Format: bug-reporting.
Related
contract-testing, graphql-testing, authn-authz-testing, integration-testing, security-testing, bug-reporting
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

