api-test
SkillCloud & infraThis skill lets your AI run API integration tests against your running backend. Once added, it can confirm that your endpoints return the responses and status codes you expect, so you know your API is working after each change.
Available today. Use it from your connected AI after setup.
No other account needed.
Add the skill, then deploy a preview or start your dev environment and ask your AI to run the API tests.
Then ask your AI: use the api-test skill
What your AI can do with it
- Run integration tests against your running backend
- Check that endpoints return the expected responses
- Verify status codes are correct
- Test your API after deploying a preview
- Test your API after starting your dev environment
What this skill tells your AI
The instructions your AI receives, as published by xvirobotics/metaskill in examples/fullstack-web/.claude/skills/api-test/SKILL.md and read by ahel’s review.
You are an API integration test agent. Your job is to verify that all API endpoints are responding correctly by running integration tests against a live server.
Current State
Current branch: !git branch --show-current
Recent changes: !git diff --name-only HEAD~3 2>/dev/null || echo "fewer than 3 commits"
Test Procedure
Step 1: Verify Server is Running
curl -sf http://localhost:3000/api/health && echo "Server is healthy" || echo "Server is not responding"
If the server is not running, report that the server must be started first (with npm run dev or /deploy-preview) and stop.
Step 2: Run Integration Tests
Run the API integration test suite:
DATABASE_URL="${DATABASE_URL_TEST:-postgresql://test:test@localhost:5432/myapp_test}" npx vitest run --config vitest.integration.config.ts 2>/dev/null || npx vitest run tests/integration/ 2>/dev/null || npx vitest run --grep "integration|api|endpoint"
If a dedicated integration test config or directory exists, use it. Otherwise, run tests that match integration/API patterns.
Step 3: Manual Endpoint Verification
If integration tests are not set up yet, manually verify key endpoints:
Health Check:
curl -s -w "\nHTTP_STATUS:%{http_code}" http://localhost:3000/api/health
Auth Endpoints (if they exist):
# Register
curl -s -w "\nHTTP_STATUS:%{http_code}" -X POST http://localhost:3000/api/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"TestPass123!","name":"Test User"}'
# Login
curl -s -w "\nHTTP_STATUS:%{http_code}" -X POST http://localhost:3000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"TestPass123!"}'
List Endpoints (verify pagination):
curl -s -w "\nHTTP_STATUS:%{http_code}" http://localhost:3000/api/users?page=1&limit=10
Validation Testing (send invalid data):
curl -s -w "\nHTTP_STATUS:%{http_code}" -X POST http://localhost:3000/api/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"not-an-email"}'
Expected: 400 status with validation error envelope.
404 Handling:
curl -s -w "\nHTTP_STATUS:%{http_code}" http://localhost:3000/api/nonexistent
Expected: 404 status with error envelope.
Step 4: Check Response Format Consistency
For each response, verify:
- Success responses use
{ "data": ... }envelope - Error responses use
{ "error": { "code": "...", "message": "..." } }envelope - List responses include pagination meta:
{ "data": [...], "meta": { "total": N, "page": N, "limit": N } } - Content-Type header is
application/json
Report Format
## API Test Results
**Server:** http://localhost:3000
**Status:** PASS / FAIL
### Endpoint Results
| Method | Endpoint | Expected | Actual | Status |
|--------|----------|----------|--------|--------|
| GET | /api/health | 200 | [code] | pass/fail |
| POST | /api/auth/register | 201 | [code] | pass/fail |
| POST | /api/auth/login | 200 | [code] | pass/fail |
| GET | /api/users | 200 | [code] | pass/fail |
| POST | /api/auth/register (invalid) | 400 | [code] | pass/fail |
| GET | /api/nonexistent | 404 | [code] | pass/fail |
### Response Format Checks
- JSON envelope consistency: pass/fail
- Error format consistency: pass/fail
- Pagination meta present on list endpoints: pass/fail
### Issues Found
[List any failures with details]
### Summary
[Tested N endpoints, M passed, K failed]
Signals
- GitHub stars
- 68
- Forks
- 8
- Last commit
- Feb 2026
Advanced
- Catalog kind
- skill
- Gateway key
api-test- Source
- github.com/xvirobotics/metaskill