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

# Batch Update Group Profiles

> Send a batch of group profile updates. Instead of sending a single JSON object as the data query parameter, send a JSON list of objects as the data parameter of an application/x-www-form-urlencoded POST or GET request body.

Refer to the respective group profile update commands (\$set, \$set_once, \$add, \$union, \$remove, \$unset, and \$delete) on syntax for their parameters.

Send a batch of group profile updates. Instead of sending a single JSON object as the data query parameter, send a JSON list of objects as the data parameter of an application/x-www-form-urlencoded POST or GET request body.

Refer to the respective group profile update commands (\$set, \$set\_once, \$add, \$union, \$remove, \$unset, and \$delete) on syntax for their parameters.


## OpenAPI

````yaml openapi/ingestion.openapi.yaml POST /groups#group-batch-update
openapi: 3.0.2
info:
  title: Ingestion API
  description: APIs allowing for event-based tracking and user profile handling.
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: 1.0.0
  contact:
    url: https://mixpanel.com/get-support
servers:
  - url: https://{region}.mixpanel.com
    description: Mixpanel's data collection server.
    variables:
      region:
        default: api
        enum:
          - api
          - api-eu
          - api-in
        description: |
          The server location to be used:
            * `api` - The default (US) servers used for most projects
            * `api-eu` - EU servers if you are enrolled in EU Data Residency
            * `api-in` - India servers if you are enrolled in India Data Residency
security: []
tags:
  - name: Events
    description: Track events.
  - name: Group Profiles
    description: Manage groups and their properties
  - name: Identities
    description: Register or merge users with a new identity.
  - name: Lookup Tables
    description: Enrich existing event and profile properties
  - name: User Profiles
    description: Manage profiles and their properties
paths:
  /groups#group-batch-update:
    post:
      tags:
        - Group Profiles
      summary: Batch Update Group Profiles
      description: >-
        Send a batch of group profile updates. Instead of sending a single JSON
        object as the data query parameter, send a JSON list of objects as the
        data parameter of an application/x-www-form-urlencoded POST or GET
        request body.


        Refer to the respective group profile update commands (\$set,
        \$set_once, \$add, \$union, \$remove, \$unset, and \$delete) on syntax
        for their parameters.
      operationId: group-batch-update
      parameters:
        - in: query
          name: ip
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 1
            default: 0
            description: >-
              If present and equal to 0, Mixpanel will not perform geolocation
              parsing using the IP address of the request. We recommend setting
              the ip to "0" when making requests from the server-side to prevent
              the unintentional effect of overwriting your profile's geolocation
              with your server location. Defaults to 1 which would use the IP
              address of the request to update profile geolocation.
        - in: query
          name: strict
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 1
            description: >-
              If present and equal to 1, Mixpanel will validate the provided
              records and return a JSON object with per-record error messages
              for records that fail validation.
        - in: query
          name: verbose
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 1
          description: >-
            If present and equal to 1, Mixpanel will respond with a JSON Object
            describing the success or failure of the tracking call. The returned
            object will have two keys: `status`, with the value 1 on success and
            0 on failure, and `error`, with a string-valued error message if the
            request wasn't successful. This is useful for debugging during
            implementation.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: string
              format: blob
              description: >-
                A JSON list of update objects, each with a $token, $group_key,
                $group_id, and an operation.
              default: |
                [
                    {
                        "$token": "YOUR_PROJECT_TOKEN",
                        "$group_key": "Company",
                        "$group_id": "Mixpanel",
                        "$set": {
                            "Address": "1313 Mockingbird Lane"
                        }
                    },
                    {
                        "$token": "YOUR_PROJECT_TOKEN",
                        "$group_key": "Company",
                        "$group_id": "Wayne Enterprises",
                        "$set_once": {
                            "Address": "Wayne Tower, Gotham City"
                        }
                    }
                ]
      responses:
        '200':
          $ref: '#/components/responses/Received'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
        - {}
components:
  responses:
    Received:
      content:
        text/plain:
          schema:
            type: integer
            enum:
              - 1
              - 0
          examples:
            Valid Data:
              value: 1
            Invalid Data:
              value: 0
      description: >

        * `1` - One or more objects provided are valid. This does not signify a
        valid project token or secret.

        * `0` - No data objects in the body are valid.
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        status:
          type: string
          enum:
            - error

````