Peter Wiliams suggests versioning REST APIs with the Accept header. I agree that putting the version in the URI (e.g. GET /api/v1/resource) is ugly - for the Heroku client I used a custom header (X-Heroku-API-Version), which seems preferrable to me because you don’t pollute your mimetypes.