Method: projects.serviceAccounts.signJwt

Note: This method is in the process of being deprecated. Call the signJwt() method of the Cloud IAM Service Account Credentials API instead.

Signs a JWT using a service account's system-managed private key.

If no expiry time (exp) is provided in the SignJwtRequest, IAM sets an an expiry time of one hour by default. If you request an expiry time of more than one hour, the request will fail.

HTTP request


The URL uses gRPC Transcoding syntax.

Path parameters



The resource name of the service account in the following format: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}. Using - as a wildcard for the PROJECT_ID will infer the project from the account. The ACCOUNT value can be the email address or the uniqueId of the service account.

Authorization requires the following Google IAM permission on the specified resource name:

  • iam.serviceAccounts.signJwt

Request body

The request body contains data with the following structure:

JSON representation
  "payload": string


The JWT payload to sign, a JSON JWT Claim set.

Response body

If successful, the response body contains data with the following structure:

The service account sign JWT response.

JSON representation
  "keyId": string,
  "signedJwt": string


The id of the key used to sign the JWT.



The signed JWT.

Authorization Scopes

Requires one of the following OAuth scopes:


For more information, see the Authentication Overview.

Was this page helpful? Let us know how we did:

Send feedback about...

Cloud Identity and Access Management