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

# Create contact

> Create a contact. If a contact already exists for this email address, its name is updated instead.

Creates a contact with the same fields as the manual creation flow of the app: a name and an email address. If a contact already exists for this email — email matching is case-insensitive — its name is updated instead, and the response reports `created` as `false`.

The `creatorEmail` must belong to an active workspace member, who is recorded as the author of this manual change.


## OpenAPI

````yaml POST /v1/contacts
openapi: 3.1.0
info:
  title: Claap API
  description: Development documentation
  version: 0.0.0
servers:
  - url: https://api.claap.io/
security:
  - ApiKey: []
paths:
  /v1/contacts:
    post:
      description: >-
        Create a contact. If a contact already exists for this email address,
        its name is updated instead.
      operationId: postV1Contacts
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                creatorEmail:
                  type: string
                  format: email
                  description: >-
                    Email of the workspace member recorded as the author of this
                    manual change.
                email:
                  type: string
                  format: email
                  description: >-
                    Contact email address. If a contact already exists for this
                    email, its name is updated instead.
                name:
                  type: string
                  minLength: 1
                  description: Contact name.
              required:
                - creatorEmail
                - email
                - name
      responses:
        '200':
          description: Contact was successfully created or updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    properties:
                      contact:
                        $ref: '#/components/schemas/ApiContact'
                      created:
                        type: boolean
                        description: >-
                          True when a new contact was created, false when an
                          existing contact was updated.
                    required:
                      - contact
                      - created
                required:
                  - result
        '400':
          description: >-
            The request is not valid. For instance the creator email does not
            correspond to an active workspace member, or the contact is bound to
            a workspace user and cannot be renamed.
components:
  schemas:
    ApiContact:
      type: object
      properties:
        contactId:
          type: string
          description: The contact identifier.
        companyId:
          type: string
          description: The identifier of the company the contact belongs to.
        createdAt:
          type: string
          description: The contact creation date (ISO datetime).
        crmUrl:
          type: string
          description: The URL of the contact in the connected CRM.
        email:
          type: string
          description: The contact email address.
        isExternal:
          type: boolean
          description: >-
            Whether the contact is external to the workspace. False when the
            contact is bound to a workspace user.
        name:
          type: string
          description: The contact name.
        summary:
          type: object
          properties:
            markdown:
              type: string
              description: The AI-generated contact summary, in Markdown.
          required:
            - markdown
          description: >-
            The AI-generated contact summary. Absent until it has been generated
            for the first time.
        updatedAt:
          type: string
          description: The contact last update date (ISO datetime).
        userId:
          type: string
          description: >-
            The identifier of the workspace user the contact is bound to.
            Contacts bound to a workspace user cannot be edited.
      required:
        - contactId
        - createdAt
        - email
        - name
        - updatedAt
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-Claap-Key

````