API level, at resource level, in query params) http://api.example.com/v1.2.3/person and/or http://api.example.com/v2.1.1/company a. Resource identifier is intermingled with the API implementation detail b. API caching, bookmarking, crawling at the client becomes difficult c. Very coarse-grained and limits independent evolution of subcomponents d. End to end testing nightmare - Mime-based resource versioning (i.e: github api versioning) - https://api.github.com/users/octocat/orgs Accept: application/vnd.github.v3+json - Clever trick to keep the URI intact, so the identifier is constant across - Same drawbacks as URI based versioning on point C and D above