---
updatedAt: 2026-06-22T09:59:02.000Z
agentTools:
  projectIndex: https://developers.miro.com/llms.txt
---

# Replace user

Updates an existing user resource. This is the easiest way to replace user information. <br><br> If the user is deactivated, <br> userName, userType, and roles.value cannot be updated. <br> emails.value, emails.display, emails.primary get ignored and do not return any error. <br><br> Note: If the user is not a member in the organization, they cannot be updated. Additionally, users with guest role in the organization cannot be updated. 

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Miro SCIM API (legacy, team-based)",
    "description": "<b>⚠️ Legacy documentation.</b> This is the previous version of the Miro SCIM API, where a SCIM Group corresponds to a Miro team. This documentation is temporarily available for existing customers who have not yet migrated to user group-based SCIM synchronization.  In the new model, a SCIM Group maps to a Miro user group instead. We recommend migrating as soon as possible. <br><br> If your organization uses the user group-based SCIM synchronization, do not use this legacy documentation. Refer to the current Miro SCIM API documentation instead, where a SCIM Group corresponds to a Miro user group. <br><br> SCIM V1 API.",
    "version": "1.0"
  },
  "x-settings": {
    "publish": true,
    "skip-tests": true,
    "skip-unified": true
  },
  "tags": [
    {
      "name": "User",
      "description": "SCIM User resources (CRUD, list, patch)."
    }
  ],
  "servers": [
    {
      "url": "https://miro.com/api/v1/scim"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/Users/{id}": {
      "put": {
        "tags": [
          "User"
        ],
        "description": "Updates an existing user resource. This is the easiest way to replace user information. <br><br> If the user is deactivated, <br> userName, userType, and roles.value cannot be updated. <br> emails.value, emails.display, emails.primary get ignored and do not return any error. <br><br> Note: If the user is not a member in the organization, they cannot be updated. Additionally, users with guest role in the organization cannot be updated. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "User ID. A server-assigned, unique identifier for this user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Payload to update user information.",
          "content": {
            "application/scim+json": {
              "schema": {
                "$ref": "#/components/schemas/UserResource"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserResource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Operation",
            "content": {
              "application/scim+json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResource"
                },
                "example": {
                  "schemas": [
                    "urn:ietf:params:scim:schemas:core:2.0:User"
                  ],
                  "id": "2819c223-7f76-453a-919d-413861904646",
                  "userName": "bjensen",
                  "name": {
                    "givenName": "Barbara",
                    "familyName": "Jensen"
                  },
                  "active": true,
                  "emails": [
                    {
                      "value": "bjensen@example.com",
                      "primary": true
                    }
                  ],
                  "meta": {
                    "resourceType": "User",
                    "location": "/Users/2819c223-7f76-453a-919d-413861904646"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResource"
                },
                "example": {
                  "schemas": [
                    "urn:ietf:params:scim:schemas:core:2.0:User"
                  ],
                  "id": "2819c223-7f76-453a-919d-413861904646",
                  "userName": "bjensen",
                  "name": {
                    "givenName": "Barbara",
                    "familyName": "Jensen"
                  },
                  "active": true,
                  "emails": [
                    {
                      "value": "bjensen@example.com",
                      "primary": true
                    }
                  ],
                  "meta": {
                    "resourceType": "User",
                    "location": "/Users/2819c223-7f76-453a-919d-413861904646"
                  }
                }
              }
            },
            "headers": {
              "ETag": {
                "description": "Entity tag identifying the current version of the resource.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/updateUser400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/updateUser404"
          },
          "409": {
            "$ref": "#/components/responses/updateUser409"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "operationId": "replaceUserLegacy",
        "summary": "Replace user",
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "Replace user",
            "source": "curl -X PUT 'https://api.miro.com/api/v1/scim/Users/{id}' \\\n  -H 'Authorization: Bearer <token>' \\\n  -H 'Content-Type: application/scim+json'\n  -d '{\n  \"schemas\": [\n    \"urn:ietf:params:scim:schemas:core:2.0:User\"\n  ],\n  \"userName\": \"bjensen\",\n  \"name\": {\n    \"givenName\": \"Barbara\",\n    \"familyName\": \"Jensen\"\n  },\n  \"active\": true,\n  \"emails\": [\n    {\n      \"value\": \"bjensen@example.com\",\n      \"primary\": true\n    }\n  ]\n}'"
          },
          {
            "lang": "javascript",
            "label": "Replace user (fetch)",
            "source": "const res = await fetch(\n  'https://api.miro.com/api/v1/scim/Users/{id}',\n  {\n    method: 'PUT',\n    headers: {\n      'Authorization': 'Bearer <token>',\n      'Content-Type': 'application/scim+json'\n    },\n    body: JSON.stringify({\n  \"schemas\": [\n    \"urn:ietf:params:scim:schemas:core:2.0:User\"\n  ],\n  \"userName\": \"bjensen\",\n  \"name\": {\n    \"givenName\": \"Barbara\",\n    \"familyName\": \"Jensen\"\n  },\n  \"active\": true,\n  \"emails\": [\n    {\n      \"value\": \"bjensen@example.com\",\n      \"primary\": true\n    }\n  ]\n})\n  }\n);\nconst data = await res.json();\nconsole.log(data);"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "UserResource": {
        "type": "object",
        "properties": {
          "schemas": {
            "type": "array",
            "description": "Identifies which schema(s) this resource uses. In this case it is the SCIM core User schema.",
            "items": {
              "type": "string",
              "enum": [
                "urn:ietf:params:scim:schemas:core:2.0:User"
              ],
              "example": "urn:ietf:params:scim:schemas:core:2.0:User"
            }
          },
          "id": {
            "type": "string",
            "description": "A server-assigned, unique identifier for this user.",
            "example": "3074457365265951581"
          },
          "meta": {
            "type": "object",
            "description": "Metadata about the resource.",
            "properties": {
              "resourceType": {
                "type": "string",
                "description": "The SCIM resource type",
                "example": "User"
              },
              "location": {
                "type": "string",
                "description": "Fully qualified URL of the resource.",
                "example": "http://api-hailey:9111/api/v1/scim/Users/3074457365265951581"
              }
            }
          },
          "userName": {
            "type": "string",
            "description": "The unique username/login identifier. An email address in this case.",
            "example": "user@miro.com"
          },
          "name": {
            "type": "object",
            "description": "Structured object for the person’s name. This includes the family name (last name), and given name (first name).",
            "properties": {
              "formatted": {
                "type": "string",
                "description": "The full name of the user, formatted for display according to cultural and locale conventions.",
                "example": "Mr. John Doe"
              },
              "familyName": {
                "type": "string",
                "description": "Last name / surname",
                "example": "Doe"
              },
              "givenName": {
                "type": "string",
                "description": "First name",
                "example": "John"
              }
            }
          },
          "displayName": {
            "type": "string",
            "description": "A human-readable name for the user, typically the full name.",
            "example": "John Doe"
          },
          "userType": {
            "type": "string",
            "description": "Free-form string to indicate the user license type in the organization.",
            "example": "Full"
          },
          "active": {
            "type": "boolean",
            "description": "Indicates whether the user is active or deactivated in the organization."
          },
          "emails": {
            "type": "array",
            "description": "An array of email addresses, each an object with a value, display and primary flag.",
            "items": {
              "type": "object",
              "properties": {
                "value": {
                  "type": "string",
                  "description": "E-mail addresses for the user",
                  "example": "user@miro.com"
                },
                "type": {
                  "type": "string",
                  "description": "A label that identifies the type of email address.",
                  "example": "work"
                },
                "primary": {
                  "type": "boolean",
                  "description": "Indicates the user's primary email address. Only one item in the list should have primary set to true."
                }
              }
            }
          },
          "photos": {
            "type": "array",
            "description": "An array for profile pictures, contains type.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Indicates the type of photo.",
                  "example": "photo"
                },
                "value": {
                  "type": "string",
                  "description": "The URL of the image",
                  "example": "https://example.com/path_to_image.jpg"
                }
              }
            }
          },
          "groups": {
            "type": "array",
            "description": "An array of groups (teams) the user belongs to in the organization. Contains id and display name of the team.",
            "items": {
              "type": "object",
              "properties": {
                "value": {
                  "type": "string",
                  "description": "The unique ID of the group.",
                  "example": "3074457365266112911"
                },
                "display": {
                  "type": "string",
                  "description": "Human-readable name of the group.",
                  "example": "Product"
                }
              }
            }
          },
          "roles": {
            "type": "array",
            "description": "An array of roles assigned to the user in the organization. Contains role type, value, display and primary flag.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "The type of the role. Supported values are organization_user_role and organization_admin_role. Only one role should have type organization_user_role.",
                  "example": "organization_user_role"
                },
                "value": {
                  "type": "string",
                  "description": "The role assigned to the user. <br> For `organization_user_role` type, supported values include: ORGANIZATION_INTERNAL_ADMIN and ORGANIZATION_INTERNAL_USER. <br> For `organization_admin_role` type, supported values include: Content Admin, User Admin, Security Admin, or names of custom admin roles.",
                  "example": "ORGANIZATION_INTERNAL_USER"
                },
                "display": {
                  "type": "string",
                  "description": "A human-readable name or description of the role.",
                  "example": "Member"
                },
                "primary": {
                  "type": "boolean",
                  "description": "Indicates whether this role is the primary role. Only one role can be marked as primary."
                }
              }
            }
          },
          "preferredLanguage": {
            "type": "string",
            "description": "Specifies the users preferred language. <br><br> Example: en_US for English.",
            "example": "en_US"
          },
          "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
            "type": "object",
            "description": "Enterprise User extension schema.",
            "properties": {
              "employeeNumber": {
                "type": "string",
                "example": "E0001",
                "description": "Unique identifier for the user within the organization. Maximum length: 20 characters"
              },
              "costCenter": {
                "type": "string",
                "example": "CS001",
                "description": "Cost center associated with the user. Maximum length: 120 characters"
              },
              "organization": {
                "type": "string",
                "example": "OrgX",
                "description": "Name of the organization to which the user belongs. Maximum length: 120 characters"
              },
              "division": {
                "type": "string",
                "example": "Div001",
                "description": "The division to which the user belongs within the organization. Maximum length: 120 characters"
              },
              "department": {
                "type": "string",
                "example": "DeptA",
                "description": "The department to which the user belongs within the organization. Maximum length: 120 characters"
              },
              "manager": {
                "type": "object",
                "description": "Manager of the user.",
                "properties": {
                  "displayName": {
                    "type": "string",
                    "example": "John Doe",
                    "description": "The user's manager name. Maximum length: 60 characters"
                  },
                  "value": {
                    "type": "string",
                    "description": "The \"value\" field has String type in SCIM standard but the managerId internal Miro field has Long type. If the \"value\" attribute is not a numeric value, we ignore the value."
                  }
                }
              }
            }
          }
        }
      },
      "ErrorResponse": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "schemas": {
            "type": "array",
            "description": "An array of URNs that identify the schema(s) that define the structure of this response. <br><br> In this case, it contains urn:ietf:params:scim:api:messages:2.0:Error, which indicates that this is a SCIM Error.",
            "items": {
              "type": "string",
              "example": "urn:ietf:params:scim:api:messages:2.0:Error"
            }
          },
          "status": {
            "type": "string",
            "description": "HTTP status code as string.",
            "example": 400
          },
          "scimType": {
            "type": "string",
            "description": "Property name or keyword associated with the error.",
            "example": "invalidFilter"
          },
          "detail": {
            "type": "string",
            "description": "A detailed human-readable message of the error.",
            "example": "Unexpected end of filter string"
          }
        },
        "description": "Information about the response error"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "responses": {
      "401": {
        "description": "Invalid authentication credentials",
        "content": {
          "application/scim+json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "403": {
        "description": "Invalid access",
        "content": {
          "application/scim+json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "429": {
        "description": "Too many requests.",
        "content": {
          "application/scim+json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "500": {
        "description": "Internal Server Error",
        "content": {
          "application/scim+json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "updateUser404": {
        "description": "Not found <br><br> Conditions: <br> - If the user is not a member in the organization, the user cannot be updated. <br>",
        "content": {
          "application/scim+json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "updateUser409": {
        "description": "Conflict <br><br> Conditions: <br> - If the userName is updated to an email that already exists in the organization, the user cannot be updated. <br> The userName cannot be updated for the user if the organization does not owns the old and the new domain of the email address",
        "content": {
          "application/scim+json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "updateUser400": {
        "description": "Malformed request <br><br> Conditions: <br> - If the user does not exist or is not part of this organization, the user cannot be updated. <br> - If the user domain is restricted by the organization, the user cannot be reactivated in the organization. <br> - UserType (license) of the user cannot be downgraded using this API. <br> - If the user is not active, the userType (license) cannot be updated for the user. <br> - If the user is not active, the email address of the user cannot be updated for the user. <br> - If the userName is not a valid email, the email cannot be updated for the user. <br> - If the userName domain is restricted by the organization settings, the user cannot be updated. <br> ",
        "content": {
          "application/scim+json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      }
    }
  }
}
```

# Sibling pages

* [List users](https://developers.miro.com/miro-ea/reference/listuserslegacy.md)
* [Create user](https://developers.miro.com/miro-ea/reference/createuserlegacy.md)
* [Get user](https://developers.miro.com/miro-ea/reference/getuserlegacy.md)
* [Patch user](https://developers.miro.com/miro-ea/reference/patchuserlegacy.md)
* [Delete user](https://developers.miro.com/miro-ea/reference/deleteuserlegacy.md)