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

# Upload Bulk Contacts

> Uploads contacts in bulk. This endpoint expects the bulk request shape: `contacts` must be an array, and each contact item must contain an `attributes` array of `{ attributeKey, value }` objects. Unlike `POST /management/contacts`, this endpoint does not accept a top-level `attributes` object. Each contact must include an `email` attribute in its `attributes` array, and that email must be valid.



## OpenAPI

````yaml /api-v2-reference/openapi.yml put /management/contacts/bulk
openapi: 3.1.0
info:
  title: Formbricks API
  description: Manage Formbricks resources programmatically.
  version: 2.0.0
servers:
  - url: https://app.formbricks.com/api/v2
    description: Formbricks Cloud
security:
  - apiKeyAuth: []
tags:
  - name: Health
    description: Operations for checking critical application dependencies health status.
  - name: Roles
    description: Operations for managing roles.
  - name: Me
    description: Operations for managing your API key.
  - name: Management API - Responses
    description: Operations for managing responses.
  - name: Management API - Contacts
    description: Operations for managing contacts.
  - name: Management API - Contact Attributes
    description: Operations for managing contact attributes.
  - name: Management API - Contact Attribute Keys
    description: Operations for managing contact attribute keys.
  - name: Management API - Surveys
    description: Operations for managing surveys.
  - name: Management API - Surveys - Contact Links
    description: Operations for generating personalized survey links for contacts.
  - name: Management API - Webhooks
    description: Operations for managing webhooks.
  - name: Organizations API - Teams
    description: Operations for managing teams.
  - name: Organizations API - Project Teams
    description: Operations for managing project teams.
  - name: Organizations API - Users
    description: Operations for managing users.
paths:
  /management/contacts/bulk:
    put:
      tags:
        - Management API - Contacts
      summary: Upload Bulk Contacts
      description: >-
        Uploads contacts in bulk. This endpoint expects the bulk request shape:
        `contacts` must be an array, and each contact item must contain an
        `attributes` array of `{ attributeKey, value }` objects. Unlike `POST
        /management/contacts`, this endpoint does not accept a top-level
        `attributes` object. Each contact must include an `email` attribute in
        its `attributes` array, and that email must be valid.
      operationId: uploadBulkContacts
      requestBody:
        required: true
        description: >-
          The contacts to upload. Use the full nested bulk body shown in the
          example or cURL snippet: `{ environmentId, contacts: [{ attributes: [{
          attributeKey: { key, name }, value }] }] }`. Each contact must include
          an `email` attribute inside its `attributes` array.
        content:
          application/json:
            schema:
              type: object
              properties:
                environmentId:
                  type: string
                contacts:
                  type: array
                  items:
                    type: object
                    properties:
                      attributes:
                        type: array
                        items:
                          type: object
                          properties:
                            attributeKey:
                              type: object
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                              required:
                                - key
                                - name
                            value:
                              type: string
                          required:
                            - attributeKey
                            - value
                    required:
                      - attributes
                  maxItems: 250
              required:
                - environmentId
                - contacts
            example:
              environmentId: env_01h2xce9q8p3w4x5y6z7a8b9c0
              contacts:
                - attributes:
                    - attributeKey:
                        key: email
                        name: Email Address
                      value: john.doe@example.com
                    - attributeKey:
                        key: firstName
                        name: First Name
                      value: John
                    - attributeKey:
                        key: lastName
                        name: Last Name
                      value: Doe
                - attributes:
                    - attributeKey:
                        key: email
                        name: Email Address
                      value: jane.smith@example.com
                    - attributeKey:
                        key: firstName
                        name: First Name
                      value: Jane
                    - attributeKey:
                        key: lastName
                        name: Last Name
                      value: Smith
      responses:
        '200':
          description: Contacts uploaded successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      status:
                        type: string
                      message:
                        type: string
                    required:
                      - status
                      - message
                required:
                  - data
        '207':
          description: Contacts uploaded partially successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      status:
                        type: string
                      message:
                        type: string
                      skippedContacts:
                        type: array
                        items:
                          type: object
                          properties:
                            index:
                              type: number
                            userId:
                              type: string
                          required:
                            - index
                            - userId
                    required:
                      - status
                      - message
                      - skippedContacts
                required:
                  - data
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Use your Formbricks x-api-key to authenticate.

````