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.
serviceAccount.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.
serviceAccount.email
string
Output only. The email address of the service account.
serviceAccount.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 document outlines the process for patching a ServiceAccount, including the necessary HTTP request format.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eserviceAccount.name\u003c/code\u003e path parameter is required and can accept specific project and service account identifiers, or the \u003ccode\u003e-\u003c/code\u003e wildcard, but using the wildcard is discouraged.\u003c/p\u003e\n"],["\u003cp\u003eThe request body must include a JSON representation containing fields such as \u003ccode\u003eserviceAccount\u003c/code\u003e details and an \u003ccode\u003eupdateMask\u003c/code\u003e, with specified output-only fields.\u003c/p\u003e\n"],["\u003cp\u003eA successful response returns a ServiceAccount instance, detailing the updated information.\u003c/p\u003e\n"],["\u003cp\u003eAuthorization requires either the \u003ccode\u003ehttps://www.googleapis.com/auth/iam\u003c/code\u003e or \u003ccode\u003ehttps://www.googleapis.com/auth/cloud-platform\u003c/code\u003e OAuth scopes.\u003c/p\u003e\n"]]],[],null,["# Method: projects.serviceAccounts.patch\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\nPatches a [ServiceAccount](/iam/docs/reference/rest/v1/projects.serviceAccounts#ServiceAccount).\n\n### HTTP request\n\n`PATCH https://iam.googleapis.com/v1/{serviceAccount.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)."]]