The resource has permanently moved and the same HTTP method must be used at the new URL.
308 Permanent Redirect is a method-preserving 301. The URL has moved forever, and the client must use the same method (POST stays POST, PUT stays PUT). For modern APIs, 308 is the right code for permanent moves of write endpoints because it eliminates the historical 301 method-change ambiguity. For static GET resources, 301 is still fine and more widely understood.
When servers should return it: Return 308 for permanent moves of API endpoints, especially write endpoints (POST/PUT/PATCH/DELETE) where you need to preserve the method.
curl -i -X POST https://api.example.com/v1/users
HTTP/2 308
location: https://api.example.com/v2/users
For a one-page reference of all HTTP status codes, see the HTTP cheat sheet. For testing API responses, try the API Tester tool. For inspecting responses on the command line, the curl cheat sheet covers the most common flags.