> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://en.megaport.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://en.megaport.ferndocs.com/_mcp/server.

# Update User Details

PUT https://api.megaport.com/v2/employee/{employeeId}
Content-Type: application/json

Updates user information for the user specified by the employee ID.

You can find the employee ID (`personId`) using the GET List Company Users `/v2/employment` endpoint.

The changes are defined in the Body of the request. Only include the attributes that you want to update.

The attributes have these values.

- `notificationEnabled` - (Boolean) - Notification setup of the user.
- `position` - (String) Role of the user. For more information on roles, see **POST Invite (Add) a New User to an Existing Company**.
- `newsletter` - (Boolean) - Newsletter setup of the user.
- `promotions` - (Boolean) - Promotions setup of the user.
- `firstName` - (String) First name of the user.
- `lastName` - (String) Last name of the user.
- `phone` - (String) Phone number of the user.
- `requireTotp` - (Boolean) Defines whether the user requires a time-based one-time password.
- `active` - (Boolean) Set this value to true if the user is active or set this value to false to define the user as Inactive.
- `securityRoles` - (Array of strings) Security roles of the user. For example, companyAdmin, technicalContact.
- `mobile` - (String) Mobile phone number of the user.
- `email` - (String) Email address of the user.
- `partyId` - (String) - Employee ID of the user. Same as the `personId`.
- `altId` - (String) Google ID of the user.
- `username` - (String) - Username of the user.
- `uid` - (String) - Uid of the user.
- `googlePlus` - (String) Google Link of the user.
- `salesforceId` - (String) Salesforce ID of the user.
- `name` - (String) - Full name of the user.
- `emails` - (Array of objects (Email)) Email object of the user.
    - `emailAddressId` (Integer) - Email address ID.
    - `email` (String) - Email address.
    - `primary` (Boolean) - Defines whether the email is the primary email address of the user.
    - `badEmail` (Boolean) - Is the email given in the correct format?

Reference: https://en.megaport.ferndocs.com/api-reference/user-authentication/update-user-details

## Servers

- `https://api.megaport.com` (Production environment, default)
- `https://api-staging.megaport.com` (Staging environment (test only, reset every 24 hours))

## Request

### Path parameters

- `employeeId` (string, required)

### Body (application/json)

This endpoint expects a list of V2EmployeeEmployeeIdPutRequestBodyContentApplicationJsonSchemaItems.

- `list of V2EmployeeEmployeeIdPutRequestBodyContentApplicationJsonSchemaItems`

## Response

### 200

Update User Details - Success / Update User Details - Success

- `message` (string, optional)
- `terms` (string, optional)

## Errors

### 400 Bad Request Error

Update User Details - Cannot Change Email / Update User Details - Cannot Change Email

- `message` (string, optional)
- `terms` (string, optional)

### 401 Unauthorized Error

Update User Details - Token Issue / Update User Details - Token Issue

- `message` (string, optional)
- `terms` (string, optional)

### 404 Not Found Error

Update User Details - User Not Found / Update User Details - User Not Found

- `message` (string, optional)
- `terms` (string, optional)

## Types

### V2EmployeeEmployeeIdPutRequestBodyContentApplicationJsonSchemaItems

- `active` (boolean, optional)
- `altId` (string, optional)
- `email` (string, optional)
- `emails` (list of V2EmployeeEmployeeIdPutRequestBodyContentApplicationJsonSchemaItemsEmailsItems, optional)
- `featureFlags` (list of any, optional)
- `firstName` (string, optional)
- `googlePlus` (string, optional)
- `lastName` (string, optional)
- `mobile` (string, optional)
- `name` (string, optional)
- `newsletter` (boolean, optional)
- `notificationEnabled` (boolean, optional)
- `partyId` (double, optional)
- `phone` (string, optional)
- `position` (string, optional)
- `promotions` (boolean, optional)
- `requireTotp` (boolean, optional)
- `salesforceId` (string, optional)
- `securityRoles` (list of string, optional)
- `uid` (string, optional)
- `username` (string, optional)

### V2EmployeeEmployeeIdPutRequestBodyContentApplicationJsonSchemaItemsEmailsItems

- `badEmail` (boolean, optional)
- `email` (string, optional)
- `emailAddressId` (double, optional)
- `primary` (boolean, optional)

## Examples

### Update User Details - Success

**Response**

```json
{
  "message": "Employee has been updated.",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Update User Details - Success
import requests

url = "https://api.megaport.com/v2/employee/employeeId"

response = requests.put(url)

print(response.json())
```

```javascript Update User Details - Success
const url = 'https://api.megaport.com/v2/employee/employeeId';
const options = {method: 'PUT'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Update User Details - Success
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v2/employee/employeeId"

	req, _ := http.NewRequest("PUT", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Update User Details - Success
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v2/employee/employeeId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
```

```java Update User Details - Success
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.put("https://api.megaport.com/v2/employee/employeeId")
  .asString();
```

```php Update User Details - Success
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PUT', 'https://api.megaport.com/v2/employee/employeeId');

echo $response->getBody();
```

```csharp Update User Details - Success
using RestSharp;

var client = new RestClient("https://api.megaport.com/v2/employee/employeeId");
var request = new RestRequest(Method.PUT);
IRestResponse response = client.Execute(request);
```

```swift Update User Details - Success
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v2/employee/employeeId")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PUT"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Update User Details

**Request**

```json
[
  {
    "active": true,
    "altId": "Google_156979315619591871227",
    "email": "jeffrey@megaport.com",
    "emails": [
      {
        "badEmail": false,
        "email": "jeffrey@megaport.com",
        "emailAddressId": 5020,
        "primary": true
      }
    ],
    "featureFlags": [],
    "firstName": "Jeffrey",
    "googlePlus": "https://plus.google.com/100987315619591971225",
    "lastName": "Megaport",
    "mobile": "+61 408227543",
    "name": "Jeffrey Megaport",
    "newsletter": true,
    "notificationEnabled": true,
    "partyId": 45115,
    "phone": "+61 408227543",
    "position": "Company Admin",
    "promotions": true,
    "requireTotp": false,
    "salesforceId": "0736F00113utfdsQAB",
    "securityRoles": [
      "companyAdmin"
    ],
    "uid": "c3ba48e8-20ed-41c3-91ae-c23ad8d3c29e",
    "username": "jeffrey@megaport.com"
  }
]
```

**Response**

```json
{
  "message": "Employee has been updated.",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Update User Details
import requests

url = "https://api.megaport.com/v2/employee/employeeId"

payload = [
    {
        "active": True,
        "altId": "Google_156979315619591871227",
        "email": "jeffrey@megaport.com",
        "emails": [
            {
                "badEmail": False,
                "email": "jeffrey@megaport.com",
                "emailAddressId": 5020,
                "primary": True
            }
        ],
        "featureFlags": [],
        "firstName": "Jeffrey",
        "googlePlus": "https://plus.google.com/100987315619591971225",
        "lastName": "Megaport",
        "mobile": "+61 408227543",
        "name": "Jeffrey Megaport",
        "newsletter": True,
        "notificationEnabled": True,
        "partyId": 45115,
        "phone": "+61 408227543",
        "position": "Company Admin",
        "promotions": True,
        "requireTotp": False,
        "salesforceId": "0736F00113utfdsQAB",
        "securityRoles": ["companyAdmin"],
        "uid": "c3ba48e8-20ed-41c3-91ae-c23ad8d3c29e",
        "username": "jeffrey@megaport.com"
    }
]
headers = {"Content-Type": "application/json"}

response = requests.put(url, json=payload, headers=headers)

print(response.json())
```

```javascript Update User Details
const url = 'https://api.megaport.com/v2/employee/employeeId';
const options = {
  method: 'PUT',
  headers: {'Content-Type': 'application/json'},
  body: '[{"active":true,"altId":"Google_156979315619591871227","email":"jeffrey@megaport.com","emails":[{"badEmail":false,"email":"jeffrey@megaport.com","emailAddressId":5020,"primary":true}],"featureFlags":[],"firstName":"Jeffrey","googlePlus":"https://plus.google.com/100987315619591971225","lastName":"Megaport","mobile":"+61 408227543","name":"Jeffrey Megaport","newsletter":true,"notificationEnabled":true,"partyId":45115,"phone":"+61 408227543","position":"Company Admin","promotions":true,"requireTotp":false,"salesforceId":"0736F00113utfdsQAB","securityRoles":["companyAdmin"],"uid":"c3ba48e8-20ed-41c3-91ae-c23ad8d3c29e","username":"jeffrey@megaport.com"}]'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Update User Details
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v2/employee/employeeId"

	payload := strings.NewReader("[\n  {\n    \"active\": true,\n    \"altId\": \"Google_156979315619591871227\",\n    \"email\": \"jeffrey@megaport.com\",\n    \"emails\": [\n      {\n        \"badEmail\": false,\n        \"email\": \"jeffrey@megaport.com\",\n        \"emailAddressId\": 5020,\n        \"primary\": true\n      }\n    ],\n    \"featureFlags\": [],\n    \"firstName\": \"Jeffrey\",\n    \"googlePlus\": \"https://plus.google.com/100987315619591971225\",\n    \"lastName\": \"Megaport\",\n    \"mobile\": \"+61 408227543\",\n    \"name\": \"Jeffrey Megaport\",\n    \"newsletter\": true,\n    \"notificationEnabled\": true,\n    \"partyId\": 45115,\n    \"phone\": \"+61 408227543\",\n    \"position\": \"Company Admin\",\n    \"promotions\": true,\n    \"requireTotp\": false,\n    \"salesforceId\": \"0736F00113utfdsQAB\",\n    \"securityRoles\": [\n      \"companyAdmin\"\n    ],\n    \"uid\": \"c3ba48e8-20ed-41c3-91ae-c23ad8d3c29e\",\n    \"username\": \"jeffrey@megaport.com\"\n  }\n]")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Update User Details
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v2/employee/employeeId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "[\n  {\n    \"active\": true,\n    \"altId\": \"Google_156979315619591871227\",\n    \"email\": \"jeffrey@megaport.com\",\n    \"emails\": [\n      {\n        \"badEmail\": false,\n        \"email\": \"jeffrey@megaport.com\",\n        \"emailAddressId\": 5020,\n        \"primary\": true\n      }\n    ],\n    \"featureFlags\": [],\n    \"firstName\": \"Jeffrey\",\n    \"googlePlus\": \"https://plus.google.com/100987315619591971225\",\n    \"lastName\": \"Megaport\",\n    \"mobile\": \"+61 408227543\",\n    \"name\": \"Jeffrey Megaport\",\n    \"newsletter\": true,\n    \"notificationEnabled\": true,\n    \"partyId\": 45115,\n    \"phone\": \"+61 408227543\",\n    \"position\": \"Company Admin\",\n    \"promotions\": true,\n    \"requireTotp\": false,\n    \"salesforceId\": \"0736F00113utfdsQAB\",\n    \"securityRoles\": [\n      \"companyAdmin\"\n    ],\n    \"uid\": \"c3ba48e8-20ed-41c3-91ae-c23ad8d3c29e\",\n    \"username\": \"jeffrey@megaport.com\"\n  }\n]"

response = http.request(request)
puts response.read_body
```

```java Update User Details
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.put("https://api.megaport.com/v2/employee/employeeId")
  .header("Content-Type", "application/json")
  .body("[\n  {\n    \"active\": true,\n    \"altId\": \"Google_156979315619591871227\",\n    \"email\": \"jeffrey@megaport.com\",\n    \"emails\": [\n      {\n        \"badEmail\": false,\n        \"email\": \"jeffrey@megaport.com\",\n        \"emailAddressId\": 5020,\n        \"primary\": true\n      }\n    ],\n    \"featureFlags\": [],\n    \"firstName\": \"Jeffrey\",\n    \"googlePlus\": \"https://plus.google.com/100987315619591971225\",\n    \"lastName\": \"Megaport\",\n    \"mobile\": \"+61 408227543\",\n    \"name\": \"Jeffrey Megaport\",\n    \"newsletter\": true,\n    \"notificationEnabled\": true,\n    \"partyId\": 45115,\n    \"phone\": \"+61 408227543\",\n    \"position\": \"Company Admin\",\n    \"promotions\": true,\n    \"requireTotp\": false,\n    \"salesforceId\": \"0736F00113utfdsQAB\",\n    \"securityRoles\": [\n      \"companyAdmin\"\n    ],\n    \"uid\": \"c3ba48e8-20ed-41c3-91ae-c23ad8d3c29e\",\n    \"username\": \"jeffrey@megaport.com\"\n  }\n]")
  .asString();
```

```php Update User Details
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PUT', 'https://api.megaport.com/v2/employee/employeeId', [
  'body' => '[
  {
    "active": true,
    "altId": "Google_156979315619591871227",
    "email": "jeffrey@megaport.com",
    "emails": [
      {
        "badEmail": false,
        "email": "jeffrey@megaport.com",
        "emailAddressId": 5020,
        "primary": true
      }
    ],
    "featureFlags": [],
    "firstName": "Jeffrey",
    "googlePlus": "https://plus.google.com/100987315619591971225",
    "lastName": "Megaport",
    "mobile": "+61 408227543",
    "name": "Jeffrey Megaport",
    "newsletter": true,
    "notificationEnabled": true,
    "partyId": 45115,
    "phone": "+61 408227543",
    "position": "Company Admin",
    "promotions": true,
    "requireTotp": false,
    "salesforceId": "0736F00113utfdsQAB",
    "securityRoles": [
      "companyAdmin"
    ],
    "uid": "c3ba48e8-20ed-41c3-91ae-c23ad8d3c29e",
    "username": "jeffrey@megaport.com"
  }
]',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Update User Details
using RestSharp;

var client = new RestClient("https://api.megaport.com/v2/employee/employeeId");
var request = new RestRequest(Method.PUT);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "[\n  {\n    \"active\": true,\n    \"altId\": \"Google_156979315619591871227\",\n    \"email\": \"jeffrey@megaport.com\",\n    \"emails\": [\n      {\n        \"badEmail\": false,\n        \"email\": \"jeffrey@megaport.com\",\n        \"emailAddressId\": 5020,\n        \"primary\": true\n      }\n    ],\n    \"featureFlags\": [],\n    \"firstName\": \"Jeffrey\",\n    \"googlePlus\": \"https://plus.google.com/100987315619591971225\",\n    \"lastName\": \"Megaport\",\n    \"mobile\": \"+61 408227543\",\n    \"name\": \"Jeffrey Megaport\",\n    \"newsletter\": true,\n    \"notificationEnabled\": true,\n    \"partyId\": 45115,\n    \"phone\": \"+61 408227543\",\n    \"position\": \"Company Admin\",\n    \"promotions\": true,\n    \"requireTotp\": false,\n    \"salesforceId\": \"0736F00113utfdsQAB\",\n    \"securityRoles\": [\n      \"companyAdmin\"\n    ],\n    \"uid\": \"c3ba48e8-20ed-41c3-91ae-c23ad8d3c29e\",\n    \"username\": \"jeffrey@megaport.com\"\n  }\n]", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Update User Details
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = [
  [
    "active": true,
    "altId": "Google_156979315619591871227",
    "email": "jeffrey@megaport.com",
    "emails": [
      [
        "badEmail": false,
        "email": "jeffrey@megaport.com",
        "emailAddressId": 5020,
        "primary": true
      ]
    ],
    "featureFlags": [],
    "firstName": "Jeffrey",
    "googlePlus": "https://plus.google.com/100987315619591971225",
    "lastName": "Megaport",
    "mobile": "+61 408227543",
    "name": "Jeffrey Megaport",
    "newsletter": true,
    "notificationEnabled": true,
    "partyId": 45115,
    "phone": "+61 408227543",
    "position": "Company Admin",
    "promotions": true,
    "requireTotp": false,
    "salesforceId": "0736F00113utfdsQAB",
    "securityRoles": ["companyAdmin"],
    "uid": "c3ba48e8-20ed-41c3-91ae-c23ad8d3c29e",
    "username": "jeffrey@megaport.com"
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v2/employee/employeeId")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PUT"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```