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

# Update a contact

> Updates an existing contact handle. Only the fields provided in the request body are changed — omitted fields keep their current values. If the registrar requires email verification for the change (e.g. email address updates), a 202 response is returned and the update is applied once the user approves the verification email.



## OpenAPI

````yaml PUT /registrar/v1/contacts/{handle}
openapi: 3.0.0
info:
  title: Atom Registrar API
  version: 1.0.0
  description: >-
    REST API for domain registration, DNS management, and domain operations.
    Authentication via Bearer token in Authorization header.
servers:
  - url: https://www.atom.com/api
    description: Production server
  - url: https://dev.atom.com/api
    description: Development server
security:
  - BearerAuth: []
paths:
  /registrar/v1/contacts/{handle}:
    put:
      tags:
        - Contacts
      summary: Update a contact
      description: >-
        Updates an existing contact handle. Only the fields provided in the
        request body are changed — omitted fields keep their current values. If
        the registrar requires email verification for the change (e.g. email
        address updates), a 202 response is returned and the update is applied
        once the user approves the verification email.
      operationId: updateContact
      parameters:
        - name: handle
          in: path
          required: true
          description: >-
            The registrar contact handle to update (e.g. `ATOM-12345` or
            `CONTACT_1-67890`)
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >-
                All fields are optional — only provide the fields you want to
                change.
              properties:
                name:
                  type: string
                  example: Jane Smith
                first_name:
                  type: string
                  example: Jane
                last_name:
                  type: string
                  example: Smith
                email:
                  type: string
                  format: email
                  example: jane.smith@example.com
                phone:
                  type: string
                  example: '+1.2025559876'
                fax:
                  type: string
                  example: null
                organization:
                  type: string
                  example: Acme Corp
                address:
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  example:
                    - 456 Oak Ave
                    - Floor 2
                city:
                  type: string
                  example: Austin
                state:
                  type: string
                  example: TX
                zip:
                  type: string
                  example: '78701'
                country:
                  type: string
                  example: US
                label:
                  type: string
                  example: Updated Label
                disclosed_fields:
                  type: array
                  items:
                    type: string
                  example:
                    - name
      responses:
        '200':
          description: Contact updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: Contact updated successfully
                  data:
                    $ref: '#/components/schemas/ContactObject'
        '202':
          description: >-
            Accepted — verification email sent. The contact will be updated once
            the user approves via email.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: >-
                      Verification email sent. Please approve the contact update
                      via email to complete the change.
                  verification_required:
                    type: boolean
                    example: true
                  data:
                    $ref: '#/components/schemas/ContactObject'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Conflict — label already used by another contact
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Registrar rejected the update — see `violations` for field-level
            errors
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Registrar Error
                  message:
                    type: string
                  violations:
                    type: array
                    items:
                      type: object
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - BearerAuth: []
components:
  schemas:
    ContactObject:
      type: object
      properties:
        handle:
          type: string
          description: Unique registrar contact handle
          example: ATOM-12345
        type:
          type: string
          enum:
            - registrant_user
            - contact_handle
          description: >-
            Whether this is the primary registrant contact or an additional
            handle
          example: registrant_user
        label:
          type: string
          nullable: true
          description: Optional human-readable label for the contact
          example: My Business Contact
        name:
          type: string
          example: Jane Doe
        email:
          type: string
          format: email
          example: jane@example.com
        phone:
          type: string
          example: '+1.2025551234'
        fax:
          type: string
          nullable: true
          example: null
        organization:
          type: string
          nullable: true
          example: Acme Corp
        address:
          type: array
          items:
            type: string
          example:
            - 123 Main St
            - Suite 400
        city:
          type: string
          example: Chicago
        state:
          type: string
          nullable: true
          example: IL
        zip:
          type: string
          example: '60601'
        country:
          type: string
          description: ISO 3166-1 alpha-2 country code
          example: US
        disclosed_fields:
          type: array
          items:
            type: string
          description: WHOIS fields disclosed publicly
          example:
            - name
            - email
        verified:
          type: boolean
          example: false
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: Bad Request
        message:
          type: string
          example: Invalid input provided
  responses:
    BadRequest:
      description: Bad request - invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    UnauthorizedError:
      description: Authentication failed - invalid or revoked API token
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                example: false
              error:
                type: string
                example: Unauthorized
              message:
                type: string
                example: >-
                  Invalid registrar API token or access has been revoked. Please
                  request registrar API access from your dashboard.
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Registrar API Bearer token. Obtain from dashboard at
        /dashboard/seller/api-access after requesting Registrar API access.

````