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

# Update a contact



## OpenAPI

````yaml /openapi.json patch /api/v1/contacts/{receiver_id}/
openapi: 3.0.3
info:
  title: ChatBridge Public API
  version: 1.0.0
  description: >-
    Customer-facing REST API for ChatBridge — contacts, conversations, messages,
    templates, team, catalogue, tickets, and WhatsApp Flows. Authenticate with a
    workspace API key: `Authorization: Bearer cb_...`. See
    https://github.com/algosmiths/whatschat/blob/main/public_api.md for the full
    scope/versioning reference.
servers:
  - url: https://api.algosmiths.com
    description: Production
security: []
paths:
  /api/v1/contacts/{receiver_id}/:
    patch:
      tags:
        - Contacts
      summary: Update a contact
      operationId: contacts_partial_update
      parameters:
        - in: path
          name: receiver_id
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReceiverUserUpdateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedReceiverUserUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedReceiverUserUpdateRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiverUserUpdate'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
          description: Bad Request — validation error
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized — missing or invalid API key
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Forbidden — insufficient scope (requires contact.edit),
            cross-workspace access denied, or workspace trial expired
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Not Found — contact does not exist or belongs to a different
            workspace
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Too Many Requests — rate limit exceeded (60 requests/minute per key)
      security:
        - ApiKeyAuth: []
        - tokenAuth: []
        - CookieAuth: []
components:
  schemas:
    PatchedReceiverUserUpdateRequest:
      type: object
      properties:
        email:
          nullable: true
          oneOf:
            - type: string
              format: email
              maxLength: 254
            - type: string
              maxLength: 0
        company:
          type: string
          nullable: true
          maxLength: 255
        notes:
          type: string
          nullable: true
        tags: {}
        custom_fields: {}
        conv_status:
          $ref: '#/components/schemas/ConvStatusEnum'
        snoozed_until:
          type: string
          format: date-time
          nullable: true
        priority:
          $ref: '#/components/schemas/PriorityEnum'
        assigned_member:
          type: integer
          nullable: true
        assigned_team_inbox:
          type: integer
          nullable: true
        calling_permission:
          type: boolean
    ReceiverUserUpdate:
      type: object
      properties:
        email:
          nullable: true
          oneOf:
            - type: string
              format: email
              maxLength: 254
            - type: string
              maxLength: 0
        company:
          type: string
          nullable: true
          maxLength: 255
        notes:
          type: string
          nullable: true
        tags: {}
        custom_fields: {}
        conv_status:
          $ref: '#/components/schemas/ConvStatusEnum'
        snoozed_until:
          type: string
          format: date-time
          nullable: true
        priority:
          $ref: '#/components/schemas/PriorityEnum'
        assigned_member:
          type: integer
          nullable: true
        assigned_team_inbox:
          type: integer
          nullable: true
        calling_permission:
          type: boolean
    ValidationErrorResponse:
      type: object
      additionalProperties:
        type: array
        items:
          type: string
      description: >-
        Field-level validation error response (400). Keys are field names;
        values are lists of error messages. May include 'non_field_errors' for
        non-field-specific errors.
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message
      required:
        - error
    ConvStatusEnum:
      enum:
        - open
        - resolved
        - pending
        - snoozed
        - spam
        - converted
      type: string
      description: |-
        * `open` - Open
        * `resolved` - Resolved
        * `pending` - Pending
        * `snoozed` - Snoozed
        * `spam` - Spam
        * `converted` - Converted
    PriorityEnum:
      enum:
        - low
        - normal
        - high
        - urgent
      type: string
      description: |-
        * `low` - Low
        * `normal` - Normal
        * `high` - High
        * `urgent` - Urgent
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: cb_...
      description: >-
        Workspace API key, e.g. `Authorization: Bearer cb_live_...`. Create one
        in Settings → API Keys. See public_api.md § 3 for scopes.
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
    CookieAuth:
      type: apiKey
      in: cookie
      name: token
      description: Dashboard session cookie — internal use only, not the public contract.

````