DevPrep
  • Interview Prep
  • Projects
  • Resources
  • Pricing
  • About Us
Submit Question
DevPrep
  • Pricing
  • About Us
Submit Question
  1. Home
  2. Articles
  3. Frontend Engineering
  4. API Design Best Practices: Building Developer-Friendly APIs
XLinkedInReddit
MediumFrontend Engineering

API Design Best Practices: Building Developer-Friendly APIs

D
DevPrep Team
February 10, 2026·1 min read·0
Table of Contents
  • URL Structure
  • Response Format
  • Pagination Strategies
  • Versioning
  • Rate Limiting Headers
  • Golden Rules

Good API design is invisible. Bad API design causes endless support tickets. Here's what I've learned designing APIs at Google.

URL Structure

// Good: nouns, not verbs
GET    /api/v1/users          // List users
GET    /api/v1/users/123      // Get user
POST   /api/v1/users          // Create user
PUT    /api/v1/users/123      // Replace user
PATCH  /api/v1/users/123      // Partial update
DELETE /api/v1/users/123      // Delete user

// Bad
GET    /api/getUsers
POST   /api/createUser
POST   /api/deleteUser/123

Response Format

// Success
{
  "data": { "id": "123", "name": "Rahul" },
  "meta": { "requestId": "abc-123" }
}

// Error
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Email is required",
    "details": [
      { "field": "email", "message": "Must be a valid email address" }
    ]
  },
  "meta": { "requestId": "abc-124" }
}

// List with pagination
{
  "data": [...],
  "pagination": {
    "page": 1,
    "pageSize": 20,
    "totalCount": 150,
    "totalPages": 8
  }
}

Pagination Strategies

StrategyProsCons
Offset/LimitSimple, random accessInconsistent with inserts/deletes
Cursor-basedConsistent, performantNo random page access
KeysetVery fast, consistentRequires sortable unique column

Versioning

// URL versioning (most common)
/api/v1/users
/api/v2/users

// Header versioning
Accept: application/vnd.myapi.v2+json

// Query parameter
/api/users?version=2

Rate Limiting Headers

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1699000000
Retry-After: 60

Golden Rules

  • Be consistent (naming, casing, error format)
  • Use HTTP status codes correctly (don't return 200 for errors)
  • Include request IDs for debugging
  • Document everything (OpenAPI/Swagger)
  • Version from day one

Related Articles

MediumFrontend Engineering

System Design #12: Design a Multi-Step Form Wizard

7 min read
MediumFrontend Engineering

Mastering Senior-Level JavaScript Interview Concepts

2 min read
MediumFrontend Engineering

System Design #9: Design a Collaborative Text Editor

9 min read

Comments (0)

Sign in to leave a comment.

No comments yet. Be the first to comment.

Table of Contents

  • URL Structure
  • Response Format
  • Pagination Strategies
  • Versioning
  • Rate Limiting Headers
  • Golden Rules

Series

View all Frontend Engineering articles →

Practice

  • JavaScript
  • DSA
  • Machine Coding
  • System Design

Resources

  • Learning Tracks
  • Articles
  • Roadmaps
  • Compare Concepts
  • Glossary
  • Developer Tools
  • All Questions

Company

  • About
  • Pricing

Legal

  • Privacy Policy
  • Terms of Service
DevPrep

© 2026 DevPrep. All rights reserved.