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

# Updates an existing client. Only supplied (non-null) fields are changed.



## OpenAPI

````yaml /api-reference/openapi.json patch /v1/clients/{clientId}
openapi: 3.0.4
info:
  title: Public API
  description: Gorelo Public API documentation.
  version: 1.0.0
servers:
  - url: https://api.usw.gorelo.io
    description: US
  - url: https://api.aue.gorelo.io
    description: Australia
security:
  - ApiKeyAuth: []
tags:
  - name: Attachments
    description: "Uploading a file, for anything that can carry one. One endpoint rather than one per record\r\ntype, because the upload itself is identical - only the record it is checked against differs."
  - name: Alerts
    description: Alerts management operations
  - name: Assets
    description: Assets management operations
  - name: Billing
    description: Billing management operations
  - name: Tickets
    description: Tickets management operations
  - name: Clients
    description: Clients management operations
  - name: Contacts
    description: Contacts management operations
  - name: Deletions
    description: Deletions management operations
  - name: Documents
    description: Documents management operations
  - name: Forms
    description: Forms management operations
  - name: Organization
    description: Organization management operations
  - name: Projects
    description: Projects management operations
paths:
  /v1/clients/{clientId}:
    patch:
      tags:
        - Clients
      summary: Updates an existing client. Only supplied (non-null) fields are changed.
      operationId: patch_v1_clients_clientId
      parameters:
        - name: clientId
          in: path
          description: Client to update.
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        description: Client fields to update.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateClientCommand'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateClientCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateClientCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateClientCommand'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ClientResponseBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ClientResponseBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ClientResponseBaseResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
components:
  schemas:
    UpdateClientCommand:
      type: object
      properties:
        Name:
          type: string
          description: >-
            New client display name. Leave null to keep the current value.
            Maximum 150 characters.
          nullable: true
        StatusId:
          type: integer
          description: "New status id: 1 Active, 3 Credit hold, 4 Archived. Leave null to keep the current value.\r\nAny other value is a 400; to delete a client use DELETE /v1/clients/{clientId}."
          format: int32
          nullable: true
        BillingName:
          type: string
          description: >-
            New billing name. Leave null or empty to keep the current value.
            Maximum 150 characters.
          nullable: true
        AlternateName:
          type: string
          description: >-
            New alternate / trading name. Leave null to keep the current value;
            send an empty string to clear it. Maximum 500 characters.
          nullable: true
        CustomProperties:
          type: array
          items:
            $ref: '#/components/schemas/CustomPropertyUpdate'
          description: "Custom field values to upsert. Identified by `Id`\r\n(the custom field id) only - an entry present updates that field's value, one absent from the array\r\nis left untouched, and omitting `CustomProperties` entirely leaves all custom properties\r\nuntouched. A `null``Value` clears the saved value so the field falls back to its\r\ndefault; an empty string saves an empty value. On a required field, either is rejected when it\r\nwould leave the field with no value. Each custom field id may appear once; a repeated id is a 400."
          nullable: true
        GroupIds:
          type: array
          items:
            type: integer
            format: int64
          description: "Group ids (from `GET /v1/organization/groups`) the client is subscribed to. Replaces the list;\r\n[] clears it; omit to leave unchanged. At most 100; every id must be an active group. Changing an\r\nexisting client's groups changes which technicians can see it, so open Gorelo web sessions reload."
          nullable: true
      additionalProperties: false
      description: "Request body for updating a client. Only the supplied (non-null) fields are changed;\r\n`Id`, bound from the route, identifies the client to update."
    ClientResponseBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          $ref: '#/components/schemas/ClientResponse'
        DataContext:
          type: object
          additionalProperties: false
          nullable: true
          example: null
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    ObjectBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          nullable: true
        DataContext:
          $ref: '#/components/schemas/ErrorDataContext'
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    CustomPropertyUpdate:
      type: object
      properties:
        Id:
          type: integer
          description: Identifier of the custom field to set.
          format: int64
        Value:
          type: string
          description: "New value to save. `null` clears the saved value, so the field falls back to its default\r\n(which may itself be empty); an empty string saves an empty value. Either is rejected with a\r\n400 on a required field when it would leave the field with no value."
          nullable: true
      additionalProperties: false
      description: "A single custom-field value to set on a PATCH body. Identified by `Id` only;\r\na custom field not present in the array is left untouched."
    HttpStatusCode:
      enum:
        - 100
        - 101
        - 102
        - 103
        - 200
        - 201
        - 202
        - 203
        - 204
        - 205
        - 206
        - 207
        - 208
        - 226
        - 300
        - 301
        - 302
        - 303
        - 304
        - 305
        - 306
        - 307
        - 308
        - 400
        - 401
        - 402
        - 403
        - 404
        - 405
        - 406
        - 407
        - 408
        - 409
        - 410
        - 411
        - 412
        - 413
        - 414
        - 415
        - 416
        - 417
        - 421
        - 422
        - 423
        - 424
        - 426
        - 428
        - 429
        - 431
        - 451
        - 500
        - 501
        - 502
        - 503
        - 504
        - 505
        - 506
        - 507
        - 508
        - 510
        - 511
      type: integer
      format: int32
    ClientResponse:
      type: object
      properties:
        CustomProperties:
          type: array
          items:
            $ref: '#/components/schemas/CustomPropertyValue'
          description: "Every custom field the service provider has defined for clients, with its effective value\r\non this client (saved, else the field's default, else null) and `IsSet` saying whether\r\na value is saved. Empty only when no custom fields are defined."
        Id:
          type: integer
          description: Client identifier.
          format: int64
        Name:
          type: string
          description: Client display name.
        Status:
          $ref: '#/components/schemas/CodeModel'
        CreatedOn:
          type: string
          description: Creation timestamp (UTC).
          format: date-time
          nullable: true
        UpdatedOn:
          type: string
          description: Last-updated timestamp (UTC).
          format: date-time
          nullable: true
        BillingName:
          type: string
          description: Name used on invoices.
        AlternateName:
          type: string
          description: Alternate / trading name.
        IsDefault:
          type: boolean
          description: Whether this is the default client.
          nullable: true
        Domains:
          type: array
          items:
            $ref: '#/components/schemas/ClientWebDomainResponse'
          description: Web domains associated with the client.
        GroupIds:
          type: array
          items:
            type: integer
            format: int64
          description: "Ids of the groups the client is subscribed to (Client > Quick Links > Groups in Gorelo web),\r\nascending. Names are on `GET /v1/organization/groups`. Empty when the client has none."
      additionalProperties: false
      description: "A single client, as returned by `GET /v1/clients/{clientId}`, `POST` and `PATCH`: the\r\nlist shape plus its custom properties, which the list deliberately leaves out.\r\nTimestamps are UTC."
    Error:
      type: object
      properties:
        Code:
          pattern: ^[0-9]{6}$
          type: string
          description: 6-digit MMTTNN error code. See the Public API error-code registry.
          example: '070101'
        Message:
          type: string
        PropertyName:
          type: string
          nullable: true
        ActionHint:
          type: string
          nullable: true
        DocUrl:
          type: string
          nullable: true
      additionalProperties: false
    ErrorDataContext:
      type: object
      properties:
        TraceId:
          type: string
          description: Request correlation id. Quote this when reporting a problem.
          nullable: true
      additionalProperties: false
      description: "The `DataContext` of an error response: carries the correlation id for the failed\r\nrequest."
    CustomPropertyValue:
      type: object
      properties:
        Id:
          type: integer
          description: Custom field identifier.
          format: int64
        Variable:
          type: string
          description: The field's variable name, returned raw with no prefix.
        Name:
          type: string
          description: Custom field display name.
        Type:
          $ref: '#/components/schemas/CodeModel'
        Value:
          type: string
          description: "The field's effective value, as the app shows it: the value saved on this record, else the\r\nfield's default, else null. Always a string regardless of Type. Always null when\r\n`IsHidden` is true."
          nullable: true
        IsSet:
          type: boolean
          description: "True when a value is saved on this record; false when `Value` is the field's default\r\n(or null). A saved value that happens to equal the default is still true. Reported for\r\nhidden fields too."
        IsHidden:
          type: boolean
          description: "True when the service provider has hidden this field's value from the API, which is set\r\nper field in the Gorelo app. `Value` is then always null, whether or not a value is\r\nsaved. The value can still be written through the API."
      additionalProperties: false
      description: A custom field's value on a device or client.
    CodeModel:
      type: object
      properties:
        Id:
          type: integer
          description: >-
            Numeric identifier of the coded value (e.g. status, priority, type,
            or source id).
          format: int64
          example: 1
        Name:
          type: string
          description: Display name of the coded value.
      additionalProperties: false
      description: >-
        A coded value, such as a status, priority, type or source, as an id and
        a display name.
    ClientWebDomainResponse:
      type: object
      properties:
        Id:
          type: integer
          description: Web domain identifier.
          format: int64
        Name:
          type: string
          description: Domain name (e.g. contoso.com).
        CreatedOn:
          type: string
          description: Creation timestamp (UTC).
          format: date-time
          nullable: true
        UpdatedOn:
          type: string
          description: Last-updated timestamp (UTC).
          format: date-time
          nullable: true
        ExpirationDate:
          type: string
          description: >-
            Domain registration expiration date, as a calendar date
            ("yyyy-MM-dd").
          format: date
          nullable: true
        IsDateSetManually:
          type: boolean
          description: >-
            Whether the expiration date was set manually rather than resolved
            automatically.
        Status:
          $ref: '#/components/schemas/CodeModel'
      additionalProperties: false
      description: A web domain associated with a client. Timestamps are UTC.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: >-
        Your Gorelo API key. See [Generate API key](/generate-api-key). If your
        data is hosted in Australia, click the base URL at the top of this page
        and select `https://api.aue.gorelo.io`.
      name: X-API-Key
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.