How To Add Extra Users To Your Rackspace Cloud Account With The Identity API

EDITOR’S NOTE (December 27, 2012): This feature is temporarily unavailable. We will update you once it becomes available again.

It’s been one of the most requested features of Rackspace Cloud: the ability to have multiple control panel logins for one account. And now with our open cloud platform and the Identity Service API, we’ve made that possible.

Rackspace cloud customers can add separate accounts using the Identity Service API documented here:

To add a user to your account, you need your “master” username and API key, and curl. You will also need to be a customer of the new open Rackspace Cloud platform. The first step is to authenticate against the Identity API and get an authentication token to use for subsequent commands:

curl -X POST -d '{ "auth":{ "RAX-KSKEY:apiKeyCredentials":{ "username":"$USERNAME", "apiKey":"$APIKEY" } } }' -H "Content-type: application/json"

You’re looking for the “token ID” in the response. Once you have it, you can create users for the control panel by using it to replace the username, email, password and token in this command:

curl –X POST -d '{"user": {"username": "$USERNAME", "email":"", "enabled": true, "OS-KSADM:password":"$PASSWORD"}}' -H "Content-type: application/json" -H "X-Auth-Token: $TOKEN"

If you decide that you want to revoke access to your account, you can delete the user. To do that, authenticate again using your master account, then delete the user using the ID:

curl -X DELETE -H "X-Auth-Token: "$TOKEN""

To get a listing of users (and their IDs) on your account, perform a GET request:

curl -H "X-Auth-Token: "$TOKEN""

That is just one of the new capabilities available on the Rackspace open cloud platform. Be sure to check back for more ways to leverage the open Rackspace Cloud.

Rack Blogger is our catchall blog byline, subbed in when a Racker author moves on, or used when we publish a guest post. You can email Rack Blogger at


  1. A minor point but the dash in the “curl –X POST” for the create user curl command is actually an em dash (at least that’s how it is with Google Chrome on a Mac). If you copy and paste this command into the terminal directly, you’ll see the errors:

    curl: (6) Could not resolve host: –X; nodename nor servname provided, or not known
    curl: (6) Could not resolve host: POST; nodename nor servname provided, or not known

    The command actually still works but it could be misleading to some. Hope this helps someone.

  2. Hi,

    just played with the users api but it seems this still is in progress. any update on that? we feel a bit insecure using the same api key for all the people and apps using the account.



Please enter your comment!
Please enter your name here