Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
Install with Tessl CLI
npx tessl i github:wshobson/agents --skill api-design-principlesOverall
score
65%
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillAgent success when using this skill
Validation for skill structure
REST resource naming and HTTP semantics
Plural nouns for collections
100%
100%
No verb-based endpoints
100%
100%
GET for retrieval
100%
100%
POST for creation
100%
100%
PUT or PATCH for updates
100%
100%
DELETE for removal
100%
100%
201 Created for POST
100%
100%
204 No Content for DELETE
100%
100%
404 for missing resources
100%
100%
422 for validation errors
100%
100%
Shallow nesting
57%
28%
409 for conflict
100%
100%
Without context: $0.5331 · 1m 44s · 23 turns · 23 in / 7,214 out tokens
With context: $0.9799 · 2m 49s · 39 turns · 323 in / 11,746 out tokens
Pagination, filtering, and error response structure
Paginated response shape
25%
100%
Default page size 20
0%
100%
Max page size 100
100%
100%
Default page 1
100%
100%
Error response has error field
25%
100%
Error response has message field
100%
100%
Error response has details field
100%
75%
Rate limit headers present
100%
100%
429 with Retry-After
100%
100%
Status-based filtering
100%
100%
FastAPI + Pydantic
100%
100%
Sorting supported
0%
0%
Without context: $0.5465 · 2m 14s · 19 turns · 18 in / 9,374 out tokens
With context: $0.9780 · 2m 49s · 30 turns · 29 in / 10,310 out tokens
GraphQL schema design and resolver patterns
Schema file first
100%
100%
Relay connection types
100%
100%
PageInfo fields
100%
100%
Cursor-based pagination args
100%
100%
DataLoader for relationships
100%
100%
Mutation input types
37%
62%
Mutation payload with errors
0%
100%
@deprecated used
100%
100%
Status enum defined
100%
100%
PascalCase types
100%
100%
camelCase fields
100%
100%
ariadne resolvers
100%
100%
Without context: $0.4483 · 1m 59s · 16 turns · 65 in / 7,744 out tokens
With context: $0.7837 · 2m 30s · 24 turns · 71 in / 9,018 out tokens
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.