Terraform
Account API
Account represents the current user interacting with Terraform. It returns the same type of object as the Users API, but also includes an email address, which is hidden when viewing info about other users.
For internal reasons, HCP Terraform associates team and organization tokens with a synthetic user account called service user. HCP Terraform returns the associated service user for account requests authenticated by a team or organization token. Use the authenticated-resource
relationship to access the underlying team or organization associated with a token. For user tokens, you can use the user, itself.
Get your account details
GET /account/details
Status | Response | Reason |
---|---|---|
200 | JSON API document (type: "users" ) | The request was successful |
Sample Request
curl \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/vnd.api+json" \
--request GET \
https://app.terraform.io/api/v2/account/details
Sample Response
{
"data": {
"id": "user-V3R563qtJNcExAkN",
"type": "users",
"attributes": {
"username": "admin",
"is-service-account": false,
"auth-method": "tfc",
"avatar-url": "https://www.gravatar.com/avatar/9babb00091b97b9ce9538c45807fd35f?s=100&d=mm",
"v2-only": false,
"is-site-admin": true,
"is-sso-login": false,
"email": "admin@hashicorp.com",
"unconfirmed-email": null,
"permissions": {
"can-create-organizations": true,
"can-change-email": true,
"can-change-username": true
}
},
"relationships": {
"authentication-tokens": {
"links": {
"related": "/api/v2/users/user-V3R563qtJNcExAkN/authentication-tokens"
}
},
"authenticated-resource": {
"data": {
"id": "user-V3R563qtJNcExAkN",
"type": "users"
},
"links": {
"related": "/api/v2/users/user-V3R563qtJNcExAkN"
}
}
},
"links": {
"self": "/api/v2/users/user-V3R563qtJNcExAkN"
}
}
}
Update your account info
Your username and email address can be updated with this endpoint.
PATCH /account/update
Status | Response | Reason |
---|---|---|
200 | JSON API document (type: "users" ) | Your info was successfully updated |
401 | JSON API error object | Unauthorized |
422 | JSON API error object | Malformed request body (missing attributes, wrong types, etc.) |
Request Body
This PATCH endpoint requires a JSON object with the following properties as a request payload.
Key path | Type | Default | Description |
---|---|---|---|
data.type | string | Must be "users" | |
data.attributes.username | string | New username | |
data.attributes.email | string | New email address (must be confirmed afterwards to take effect) |
Sample Payload
{
"data": {
"type": "users",
"attributes": {
"email": "admin@example.com",
"username": "admin"
}
}
}
Sample Request
curl \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/vnd.api+json" \
--request PATCH \
--data @payload.json \
https://app.terraform.io/api/v2/account/update
Sample Response
{
"data": {
"id": "user-V3R563qtJNcExAkN",
"type": "users",
"attributes": {
"username": "admin",
"is-service-account": false,
"auth-method": "hcp_username_password",
"avatar-url": "https://www.gravatar.com/avatar/9babb00091b97b9ce9538c45807fd35f?s=100&d=mm",
"v2-only": false,
"is-site-admin": true,
"is-sso-login": false,
"email": "admin@hashicorp.com",
"unconfirmed-email": null,
"permissions": {
"can-create-organizations": true,
"can-change-email": true,
"can-change-username": true
}
},
"relationships": {
"authentication-tokens": {
"links": {
"related": "/api/v2/users/user-V3R563qtJNcExAkN/authentication-tokens"
}
}
},
"links": {
"self": "/api/v2/users/user-V3R563qtJNcExAkN"
}
}
}
Change your password
PATCH /account/password
Status | Response | Reason |
---|---|---|
200 | JSON API document (type: "users" ) | Your password was successfully changed |
401 | JSON API error object | Unauthorized |
422 | JSON API error object | Malformed request body (missing attributes, wrong types, etc.) |
Request Body
This PATCH endpoint requires a JSON object with the following properties as a request payload.
Key path | Type | Default | Description |
---|---|---|---|
data.type | string | Must be "users" | |
data.attributes.current_password | string | Current password | |
data.attributes.password | string | New password (must be at least 10 characters in length) | |
data.attributes.password_confirmation | string | New password (confirmation) |
Sample Payload
{
"data": {
"type": "users",
"attributes": {
"current_password": "current password e.g. 2:C)e'G4{D\n06:[d1~y",
"password": "new password e.g. 34rk492+jgLL0@xhfyisj",
"password_confirmation": "new password e.g. 34rk492+jLL0@xhfyisj"
}
}
}
Sample Request
curl \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/vnd.api+json" \
--request PATCH \
--data @payload.json \
https://app.terraform.io/api/v2/account/password
Sample Response
{
"data": {
"id": "user-V3R563qtJNcExAkN",
"type": "users",
"attributes": {
"username": "admin",
"is-service-account": false,
"auth-method": "hcp_github",
"avatar-url": "https://www.gravatar.com/avatar/9babb00091b97b9ce9538c45807fd35f?s=100&d=mm",
"v2-only": false,
"is-site-admin": true,
"is-sso-login": false,
"email": "admin@hashicorp.com",
"unconfirmed-email": null,
"permissions": {
"can-create-organizations": true,
"can-change-email": true,
"can-change-username": true
}
},
"relationships": {
"authentication-tokens": {
"links": {
"related": "/api/v2/users/user-V3R563qtJNcExAkN/authentication-tokens"
}
}
},
"links": {
"self": "/api/v2/users/user-V3R563qtJNcExAkN"
}
}
}