As an alternative, you can use the - wildcard character instead of the project ID:
projects/-/serviceAccounts/{EMAIL_ADDRESS}
projects/-/serviceAccounts/{UNIQUE_ID}
When possible, avoid using the - wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account projects/-/serviceAccounts/fake@example.com, which does not exist, the response contains an HTTP 403 Forbidden error instead of a 404 Not
Found error.
Request body
The request body contains data with the following structure:
Output only. The ID of the project that owns the service account.
uniqueId
string
Output only. The unique, stable numeric ID for the service account.
Each service account retains its unique ID even if you delete the service account. For example, if you delete a service account, then create a new service account with the same name, the new service account has a different unique ID than the deleted service account.
email
string
Output only. The email address of the service account.
displayName
string
Optional. A user-specified, human-readable name for the service account. The maximum length is 100 UTF-8 bytes.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-21 UTC."],[[["\u003cp\u003eThis method is being deprecated; the \u003ccode\u003eserviceAccounts.patch\u003c/code\u003e method should be used instead for updating service accounts.\u003c/p\u003e\n"],["\u003cp\u003eThis method allows updating a service account's \u003ccode\u003edisplayName\u003c/code\u003e field via a PUT HTTP request to a specific URL, which uses gRPC Transcoding syntax.\u003c/p\u003e\n"],["\u003cp\u003eThe request body must include data with specific structure, including \u003ccode\u003eprojectId\u003c/code\u003e, \u003ccode\u003euniqueId\u003c/code\u003e, \u003ccode\u003eemail\u003c/code\u003e, \u003ccode\u003edisplayName\u003c/code\u003e, \u003ccode\u003eetag\u003c/code\u003e, \u003ccode\u003edescription\u003c/code\u003e, \u003ccode\u003eoauth2ClientId\u003c/code\u003e, and \u003ccode\u003edisabled\u003c/code\u003e fields, each with their own data types and constraints.\u003c/p\u003e\n"],["\u003cp\u003eThe resource \u003ccode\u003ename\u003c/code\u003e is a required path parameter to access the service account and can use different formats for the project ID and service account identifier.\u003c/p\u003e\n"],["\u003cp\u003eSuccessful updates will return a \u003ccode\u003eServiceAccount\u003c/code\u003e instance in the response body, and this method requires specific OAuth scopes for authorization: \u003ccode\u003ehttps://www.googleapis.com/auth/iam\u003c/code\u003e or \u003ccode\u003ehttps://www.googleapis.com/auth/cloud-platform\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Method: projects.serviceAccounts.update\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Examples](#examples)\n- [Try it!](#try-it)\n\n**Note:** We are in the process of deprecating this method. Use [serviceAccounts.patch](/iam/docs/reference/rest/v1/projects.serviceAccounts/patch#google.iam.admin.v1.IAM.PatchServiceAccount) instead.\n\nUpdates a [ServiceAccount](/iam/docs/reference/rest/v1/projects.serviceAccounts#ServiceAccount).\n\nYou can update only the `displayName` field.\n\n### HTTP request\n\n`PUT https://iam.googleapis.com/v1/{name=projects/*/serviceAccounts/*}`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n### Request body\n\nThe request body contains data with the following structure:\n\n### Response body\n\nIf successful, the response body contains an instance of [ServiceAccount](/iam/docs/reference/rest/v1/projects.serviceAccounts#ServiceAccount).\n\n### Authorization scopes\n\nRequires one of the following OAuth scopes:\n\n- `https://www.googleapis.com/auth/iam`\n- `\n https://www.googleapis.com/auth/cloud-platform`\n\nFor more information, see the [Authentication Overview](/docs/authentication#authorization-gcp)."]]