> ## Documentation Index
> Fetch the complete documentation index at: https://gcore.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update User email

> Route for update user's email address



## OpenAPI

````yaml /api-reference/services_documented/iam_api.yaml put /iam/users/{userId}/email
openapi: 3.1.0
info:
  title: Gcore OpenAPI – IAM API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: '2026-05-15T06:37:28.230198+00:00'
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: Account
    description: >-
      Account management operations including authentication, password
      management, and account details.
    x-displayName: Account
  - name: API Tokens
    description: >-
      Use permanent API tokens for regular automated requests to services.

      You can either set its validity period when creating it or issue a token
      for an unlimited time.

      Please address the API documentation of the specific product in order to
      check if it supports API tokens.


      Newer endpoints under `/v2/…` issue tokens using `_` (underscore) as the
      separator

      (for example `42_a1b2c3d4e5f6...`) and are the recommended way to create
      new tokens.

      Legacy endpoints that issue `$`-separated tokens are marked deprecated and
      will be removed

      on **2026-07-17**; tokens that were already issued keep authenticating.


      Provide your APIKey in the Authorization header.


      Example: ```curl -H "Authorization: APIKey 42_a1b2c3d4e5f6..."
      https://api.gcore.com/iam/users/me```


      Please note: When authorizing via SAML SSO, our system does not have any

      information about permissions given to the user by the identity provider.

      Even if the provider revokes the user's access rights, their tokens remain
      active.

      Therefore, if necessary, the token will need to be deleted manually.
    x-displayName: API Tokens
  - name: Users
    x-displayName: Users
paths:
  /iam/users/{userId}/email:
    put:
      tags:
        - Users
      summary: Update User email
      description: Route for update user's email address
      operationId: iamUpdateUserEmail
      parameters:
        - $ref: '#/components/parameters/UserID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserEmailRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateUserEmailResponse'
        '400':
          description: Email update failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateUserEmailError'
        '401':
          $ref: '#/components/responses/401'
components:
  parameters:
    UserID:
      name: userId
      in: path
      required: true
      description: User's ID.
      schema:
        type: integer
  schemas:
    UpdateUserEmailRequest:
      type: object
      required:
        - new_email
        - password
      properties:
        new_email:
          type: string
          description: User's new email.
        password:
          type: string
          description: User's password for approve.
    UpdateUserEmailResponse:
      type: object
      properties:
        new_email:
          type: string
          description: User's new email.
    UpdateUserEmailError:
      oneOf:
        - title: Same email address.
          description: Tried to update email address with same email.
          type: array
          items:
            type: object
            properties:
              errors:
                type: object
                properties:
                  new_email:
                    type: string
                    description: Same email address.
        - title: Invalid email address.
          description: Tried to update email address with invalid email.
          type: array
          items:
            type: object
            properties:
              errors:
                type: object
                properties:
                  new_email:
                    type: string
                    description: Enter a valid email address
        - title: User with email already exists.
          description: Tried to update email address with invalid email.
          type: array
          items:
            type: object
            properties:
              errors:
                type: object
                properties:
                  new_email:
                    type: string
                    description: Client with email {`new_email`} already exists.
        - title: Password is incorrect.
          description: Password is incorrect.
          type: array
          items:
            type: object
            properties:
              errors:
                type: object
                properties:
                  password:
                    type: string
                    description: Password is incorrect.
  responses:
    '401':
      description: >-
        Authentication credentials were not provided or given token not valid
        for any token type.
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234$abcdef`
      type: apiKey
      in: header
      name: Authorization

````