diff --git a/openstack/identity/v2/tokens/requests.go b/openstack/identity/v2/tokens/requests.go
index 5bd5a70..346a149 100644
--- a/openstack/identity/v2/tokens/requests.go
+++ b/openstack/identity/v2/tokens/requests.go
@@ -15,15 +15,9 @@
 		Password string `json:"password"`
 	}
 
-	type apiKeyCredentials struct {
-		Username string `json:"username"`
-		APIKey   string `json:"apiKey"`
-	}
-
 	var request struct {
 		Auth struct {
-			PasswordCredentials *passwordCredentials `json:"passwordCredentials,omitempty"`
-			APIKeyCredentials   *apiKeyCredentials   `json:"RAX-KSKEY:apiKeyCredentials,omitempty"`
+			PasswordCredentials *passwordCredentials `json:"passwordCredentials"`
 			TenantID            string               `json:"tenantId,omitempty"`
 			TenantName          string               `json:"tenantName,omitempty"`
 		} `json:"auth"`
@@ -33,6 +27,9 @@
 	if auth.UserID != "" {
 		return createErr(ErrUserIDProvided)
 	}
+	if auth.APIKey != "" {
+		return createErr(ErrAPIKeyProvided)
+	}
 	if auth.DomainID != "" {
 		return createErr(ErrDomainIDProvided)
 	}
@@ -40,38 +37,24 @@
 		return createErr(ErrDomainNameProvided)
 	}
 
-	// Username is always required.
+	// Username and Password are always required.
 	if auth.Username == "" {
 		return createErr(ErrUsernameRequired)
 	}
-
-	// Populate either PasswordCredentials or APIKeyCredentials
-	if auth.Password != "" {
-		if auth.APIKey != "" {
-			return createErr(ErrPasswordOrAPIKey)
-		}
-
-		// Username + Password
-		request.Auth.PasswordCredentials = &passwordCredentials{
-			Username: auth.Username,
-			Password: auth.Password,
-		}
-	} else if auth.APIKey != "" {
-		// API key authentication.
-		request.Auth.APIKeyCredentials = &apiKeyCredentials{
-			Username: auth.Username,
-			APIKey:   auth.APIKey,
-		}
-	} else {
-		return createErr(ErrPasswordOrAPIKey)
+	if auth.Password == "" {
+		return createErr(ErrPasswordRequired)
 	}
 
-	// Populate the TenantName or TenantID, if provided.
+	// Populate the request.
+	request.Auth.PasswordCredentials = &passwordCredentials{
+		Username: auth.Username,
+		Password: auth.Password,
+	}
 	request.Auth.TenantID = auth.TenantID
 	request.Auth.TenantName = auth.TenantName
 
 	var result CreateResult
-	_, result.Err = perigee.Request("POST", listURL(client), perigee.Options{
+	_, result.Err = perigee.Request("POST", CreateURL(client), perigee.Options{
 		ReqBody: &request,
 		Results: &result.Resp,
 		OkCodes: []int{200, 203},
