Users
patch/users/{id}

Request

  • Base URL
    https://api.getmaintainx.com/v1
  • Auth
    HTTP bearer

Path parameters

idinteger required

ID of the user

Query parameters

skipWebhookboolean

Set skipWebhook=true, skipWebhook=1 or skipWebhook=yes to skip all webhooks upon successful operation on the endpoint. Learn more about webhooks

Headers

x-organization-idinteger

Required if using a multi organizations token

Request body

firstNamestring
lastNamestring
emailstring nullable
phoneNumberstring nullable
role'ADMIN' | 'MEMBER' | 'OPERATOR' | 'VIEW_ONLY' | 'REQUESTER' | 'SERVICE_ACCOUNT' nullable
customRolestring nullable

Custom role name if the user has a custom role assigned

authType'NORMAL' | 'SAML' | 'OIDC' nullable
extraFieldsobject

Custom Fields on the entity. The object keys are the exact Custom Field labels, including spaces or special characters. (ie: "Department")

hourlyRateinteger nullable

Cost in cents. For example, for $1.20, put 120. Set to null to set the user's rate to organization default hourly rate if defined, otherwise it would set the rate to the user's hourly rate defined in any work order. If none is defined, setting null will set the user's hourly rate to null

Example request

{
  "firstName": "John",
  "lastName": "Doe",
  "email": "user@example.com",
  "phoneNumber": "415-555-0100",
  "role": "MEMBER",
  "customRole": "Custom Role Name",
  "authType": "SAML",
  "externalData": {
    "popularErpSolutionId": "asd732da"
  },
  "extraFields": {
    "Department": "Engineering"
  },
  "hourlyRate": 120
}

Response

Successfully edited user

Example response

{
  "user": {
    "id": 963,
    "firstName": "John",
    "lastName": "Doe",
    "role": "MEMBER",
    "customRole": "Custom Role Name",
    "email": "user@example.com",
    "phoneNumber": "415-555-0100",
    "removedFromOrganization": true,
    "authType": "SAML",
    "hourlyRate": 120,
    "externalData": {
      "popularErpSolutionId": "asd732da"
    },
    "extraFields": {
      "Department": "Engineering"
    },
    "lastVisitedAt": "2026-05-06T12:34:56.000Z",
    "createdAt": "2026-05-06T12:34:56.000Z"
  }
}

Changes

    • warning

      added the new VIEW_ONLY enum value to the / response property for the response status

    • info

      added the new VIEW_ONLY enum value to the request property

    • breaking

      removed the media type application/octet-stream from the request body

    • warning

      added the new OPERATOR enum value to the / response property for the response status

    • warning

      added the new SERVICE_ACCOUNT enum value to the / response property for the response status

    • info

      added the new optional header request parameter x-organization-id

    • info

      added the new optional query request parameter skipWebhook

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new OPERATOR enum value to the request property

    • info

      added the new SERVICE_ACCOUNT enum value to the request property

    • info

      added the non-success response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status