> ## 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.

# Create a contact

> Creates a new registrar contact handle. If no primary registrant contact (RegistrantUser) exists for the account, this request creates one. Subsequent calls create additional contact handles. The contact is also registered with the upstream registrar (RealtimeRegister).



## OpenAPI

````yaml POST /registrar/v1/contacts
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:
    post:
      tags:
        - Contacts
      summary: Create a contact
      description: >-
        Creates a new registrar contact handle. If no primary registrant contact
        (RegistrantUser) exists for the account, this request creates one.
        Subsequent calls create additional contact handles. The contact is also
        registered with the upstream registrar (RealtimeRegister).
      operationId: createContact
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactInput'
            examples:
              individual:
                summary: Individual contact
                value:
                  name: Jane Doe
                  email: jane@example.com
                  phone: '+1.2025551234'
                  address: 123 Main St
                  city: Chicago
                  state: IL
                  zip: '60601'
                  country: US
              business:
                summary: Business contact with label
                value:
                  first_name: Jane
                  last_name: Doe
                  email: jane@acme.com
                  phone: '+1.2025551234'
                  organization: Acme Corp
                  address:
                    - 123 Main St
                    - Suite 400
                  city: Chicago
                  state: IL
                  zip: '60601'
                  country: US
                  label: Acme Legal
                  disclosed_fields:
                    - name
                    - email
      responses:
        '201':
          description: Contact created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: Contact created successfully
                  data:
                    $ref: '#/components/schemas/ContactObject'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '409':
          description: Conflict — a contact with the same label already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Registrar rejected the contact — 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
                    example: Failed to create contact
                  violations:
                    type: array
                    items:
                      type: object
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - BearerAuth: []
components:
  schemas:
    ContactInput:
      type: object
      required:
        - email
        - phone
        - address
        - city
        - zip
        - country
      properties:
        name:
          type: string
          description: Full name. Use either `name` or `first_name` + `last_name`.
          example: Jane Doe
        first_name:
          type: string
          description: First name (alternative to `name`)
          example: Jane
        last_name:
          type: string
          description: Last name (used with `first_name`)
          example: Doe
        email:
          type: string
          format: email
          example: jane@example.com
        phone:
          type: string
          example: '+1.2025551234'
        fax:
          type: string
          example: '+1.2025559999'
        organization:
          type: string
          example: Acme Corp
        address:
          description: Street address as a string or array of lines.
          oneOf:
            - type: string
              example: 123 Main St
            - type: array
              items:
                type: string
              example:
                - 123 Main St
                - Suite 400
        address_1:
          type: string
          description: Address line 1 (alternative to `address`)
          example: 123 Main St
        address_2:
          type: string
          description: Address line 2 (used with `address_1`)
          example: Suite 400
        city:
          type: string
          example: Chicago
        state:
          type: string
          example: IL
        zip:
          type: string
          example: '60601'
        country:
          type: string
          description: ISO 3166-1 alpha-2 country code (uppercase)
          example: US
        label:
          type: string
          description: Optional unique label to identify this contact
          example: My Business Contact
        disclosed_fields:
          type: array
          items:
            type: string
          description: WHOIS fields to disclose publicly
          example:
            - name
            - email
    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.
    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.

````