api-design-patterns — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited api-design-patterns (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
RESTful API design principles for building consistent, developer-friendly APIs. Contains 38 rules across 7 categories covering resource design, error handling, security, pagination, versioning, response format, and documentation.
Reference these guidelines when:
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Resource Design | CRITICAL | rest- |
| 2 | Error Handling | CRITICAL | error- |
| 3 | Security | CRITICAL | sec- |
| 4 | Pagination & Filtering | HIGH | page-, filter-, sort- |
| 5 | Versioning | HIGH | ver- |
| 6 | Response Format | MEDIUM | resp- |
| 7 | Documentation | MEDIUM | doc- |
rest-nouns-not-verbs - Use nouns for endpoints, not verbsrest-plural-resources - Use plural resource namesrest-http-methods - Correct HTTP method usage (GET, POST, PUT, PATCH, DELETE)rest-nested-resources - Proper resource nesting (max 2 levels)rest-status-codes - Appropriate HTTP status codesrest-idempotency - Idempotent operations with idempotency keysrest-hateoas - Hypermedia links for discoverabilityrest-resource-actions - Non-CRUD actions as sub-resourceserror-consistent-format - Consistent error response structureerror-meaningful-messages - Helpful, actionable error messageserror-validation-details - Field-level validation errorserror-error-codes - Machine-readable error codeserror-no-stack-traces - Never expose stack traces in productionerror-request-id - Include request IDs for debuggingsec-authentication - Proper auth implementation (OAuth2/JWT)sec-authorization - Resource-level permissions (RBAC)sec-rate-limiting - Prevent abuse with rate limitingsec-input-validation - Validate and sanitize all inputsec-cors-config - CORS configuration with whitelistssec-https-only - Enforce HTTPS for all trafficsec-sensitive-data - Protect passwords, tokens, PIIpage-cursor-based - Cursor pagination for large datasetspage-offset-based - Offset pagination for simple casespage-consistent-params - Consistent parameter namingpage-metadata - Include pagination metadata in responsesfilter-query-params - Filter via query parameterssort-flexible - Flexible sorting with - prefix for descendingver-url-path - Version in URL path (/api/v1/)ver-header-based - Version via Accept headerver-backward-compatible - Maintain backward compatibilityver-deprecation - Deprecation strategy with Sunset headerresp-consistent-structure - Consistent response enveloperesp-json-conventions - JSON naming conventionsresp-partial-responses - Field selection (sparse fieldsets)resp-compression - Response compression (gzip/Brotli)doc-openapi - OpenAPI/Swagger specificationdoc-examples - Request/response examplesdoc-changelog - API changelog# ❌ Verbs in URLs
GET /getUsers
POST /createUser
# ✅ Nouns with HTTP methods
GET /users # List users
POST /users # Create user
GET /users/123 # Get user
PUT /users/123 # Update user (full)
PATCH /users/123 # Update user (partial)
DELETE /users/123 # Delete user{
"error": {
"code": "VALIDATION_ERROR",
"message": "The request contains invalid data",
"details": [
{
"field": "email",
"code": "INVALID_FORMAT",
"message": "Please provide a valid email address"
}
],
"request_id": "req_abc123"
}
}{
"data": [...],
"meta": {
"current_page": 2,
"per_page": 20,
"total_pages": 10,
"total_count": 195
},
"links": {
"first": "/users?page=1&per_page=20",
"prev": "/users?page=1&per_page=20",
"next": "/users?page=3&per_page=20",
"last": "/users?page=10&per_page=20"
}
}HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 998
X-RateLimit-Reset: 1640995200Read individual rule files for detailed explanations:
rules/rest-http-methods.md
rules/error-consistent-format.md
rules/page-cursor-based.md
rules/sec-authentication.md
rules/ver-url-path.md
rules/doc-openapi.mdFor the complete guide with all rules expanded: AGENTS.md
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.