Accept header based versioning is self-documenting. I've worked on implementing support for this in tastypie: https://github.com/toastdriven/django-tastypie/pull/394
It's like this:
--> GET /api/ Accept: application/json
<-- Content-type: application/vnd.api.v1+json <stuff>
Then your consumers can know what version of the API they're interacting with and act accordingly.