REST API design: resources, status codes and versioning

Design HTTP APIs that are predictable, safe to retry and easy to evolve, with OpenAPI, pagination, errors, auth and webhooks

7 ratings 2,230 students Sample

Created by Lukas Brenner

  • Updated September 2026
  • English
  • Intermediate

What you will learn

  • Apply HTTP methods, idempotency and status codes correctly
  • Model resources and URLs that stay consistent as an API grows
  • Return clear, machine readable errors using Problem Details
  • Design cursor pagination, filtering and safe retries with idempotency keys
  • Choose authentication, rate limiting and versioning strategies
  • Document an API with OpenAPI and design reliable webhooks

Course content

6 sections, 25 lessons, 4h 15m total

Foundations of API design 5 lessons · 51 min
  • Video: What makes an API good Preview 8 min
  • Article: HTTP semantics that matter Preview 13 min
  • Article: Modelling resources and URLs 13 min
  • Article: Status codes and errors clients can act on 12 min
  • Quiz: Check your understanding 5 min
Lists at scale 4 lessons · 40 min
  • Video: Offset versus cursor pagination 12 min
  • Video: Filtering and sorting conventions 10 min
  • Video: Sparse fields and embedding related data 10 min
  • Article: Search endpoints 8 min
Reliability and correctness 4 lessons · 43 min
  • Video: Idempotency keys for safe retries 13 min
  • Video: Optimistic concurrency with ETags 11 min
  • Video: Caching responses safely 10 min
  • Video: Long running operations 9 min
Security and access 4 lessons · 43 min
  • Video: Authentication options compared 12 min
  • Video: Authorisation and object level access 12 min
  • Video: Rate limiting and quotas 10 min
  • Article: Input validation and safe defaults 9 min
Evolving an API 4 lessons · 42 min
  • Video: Additive changes and compatibility rules 11 min
  • Video: Versioning strategies 11 min
  • Article: Deprecation and sunset 8 min
  • Video: Webhooks done well 12 min
Documentation and design reviews 4 lessons · 36 min
  • Video: Describing the API with OpenAPI 13 min
  • Article: Design first workflow and mock servers 9 min
  • Video: Running an API design review 9 min
  • Quiz: Final check 5 min

Requirements

  • Experience building or consuming at least one HTTP API
  • Basic understanding of JSON

Description

An API is a promise to the people who use it. Once other teams, mobile apps or customers depend on it, every name, status code and error format becomes hard to change. Good design up front saves months of workarounds later, and it makes your API pleasant to use.

This course is about the design decisions, not a specific framework. We design an API for a small booking platform from scratch, discuss the options at each step and write the result down as an OpenAPI document. The examples use plain HTTP, so they apply whether you build with FastAPI, Express, Go, Spring or anything else.

What we cover

  • HTTP semantics that matter: methods, safety, idempotency and caching
  • Modelling resources and URLs
  • Status codes and a consistent error format based on Problem Details
  • Pagination, filtering and sorting at scale
  • Idempotency keys and safe retries
  • Authentication and authorisation choices: API keys, OAuth 2 and tokens
  • Rate limiting, versioning and deprecation
  • Webhooks, long running operations and documentation with OpenAPI

Who it is for

You have built or consumed a few APIs and want to design them deliberately. Backend developers, tech leads writing API guidelines, and front end or mobile developers who want to give better feedback on the APIs they consume will all benefit.

Who this course is for

  • Backend developers designing public or internal APIs
  • Tech leads writing API guidelines for a team
  • Front end and mobile developers who consume APIs

Instructor

Lukas Brenner

Backend engineer teaching API design, Python services and testing that catches real bugs

  • 4.4 instructor rating
  • 22 reviews
  • 7,060 students
  • 3 courses
  • Sample

I design and build backend services and APIs, mostly in Python with FastAPI and PostgreSQL. A large part of my job is reviewing API contracts, writing tests and figuring out why something that worked on a laptop fails in production.

My courses are opinionated but honest about trade offs. I show the approach I use, explain the alternatives and point out when the alternative is the better choice for your situation.

I like small, boring, well tested systems. If you finish one of my courses with a habit of writing a failing test before a fix, I consider that a success.

View profile

Student reviews

4.4 7 ratings
5 star 57%
4 star 29%
3 star 14%
2 star 0%
1 star 0%
Viktor B. Sep 21, 2026
Sample

Great for design reviews

The checklist from the last section is now part of every API pull request on our team.

Henrik A. Sep 6, 2026
Sample

Turned into our team guidelines

We adapted the error format and pagination lessons into our internal API standard almost word for word.

Lucia F. Aug 4, 2026
Sample

Idempotency section is excellent

We had duplicate orders from mobile retries. The idempotency key design fixed it properly.

Bilal C. Jun 29, 2026
Sample

Framework neutral and practical

I liked that nothing depends on a specific framework. A short code sample per language would have been nice.

Sara E. May 16, 2026
Sample

Finally clear on 401 versus 403

Small things like that, plus the 422 versus 400 discussion, made our APIs much more consistent.

Kaito R. Mar 31, 2026
Sample

Webhook design lesson is gold

Signatures, retries and handling duplicates were all covered. Exactly the pitfalls we hit last year.

Megan O. Jan 14, 2026
Sample

A little theoretical at times

Mostly practical, but some sections are discussion heavy. I prefer more hands on exercises.

$49.99 Enroll now
SampleSample catalog: the instructors, courses, reviews and stats on this site are demo content.