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

# Update Multi Records

> Update multiple records.

#### Recipes

<AccordionGroup>
  <Accordion title="Update multiple records with API key">
    <Steps>
      <Step title="1. Use 'Authorization' header to pass API key">
        ```curl {3} theme={null}
        curl -X PUT \
        -H "Content-Type: application/json" \
        -H "Authorization: ApiKey 28irlNAGasWDSupO9Vw0BBMZfuHrAUYKpmroS9yBORI" \
        -d '{
          "record":{
            "1":{
              "id":"5d866b53a28f9a5ad51cb562",
              "score_value":"1000"
            },
            "2":{
              "id":"5d867291a0eb473ed96099c4",
              "progress":"0.3",
              "completed_levels":[
                1,
                2,
                3
              ]
            }
          }
        }' \
        https://api.quickblox.com/data/ScoreTable/multi.json
        ```
      </Step>

      <Step title="2. As a result, the API returns the updated records.">
        ```json theme={null}
        {
          "class_name": "ScoreTable",
          "not_found": {
            "ids": []
          },
          "items": [
            {
              "_id": "5d866b53a28f9a5ad51cb562",
              "_parent_id": null,
              "completed_levels": [
                1,
                2,
                3,
                4
              ],
              "created_at": 1569090387,
              "date": "2019-09-21T21:21:00Z",
              "expert_mode": false,
              "game_mode_name": "beta testing",
              "progress": 0.23,
              "score_value": 1000,
              "updated_at": 1569178320,
              "user_avatar": null,
              "user_id": 96753878,
              "user_location": [
                11.13,
                45.52
              ],
              "permissions": {
                "read": {
                  "access": "open"
                },
                "update": {
                  "access": "owner"
                },
                "delete": {
                  "access": "owner"
                }
              }
            },
            {
              "_id": "5d867291a0eb473ed96099c4",
              "_parent_id": null,
              "completed_levels": [
                1,
                2,
                3
              ],
              "created_at": 1569092241,
              "date": "2019-09-21T21:25:00Z",
              "expert_mode": false,
              "game_mode_name": "beta testing",
              "progress": 0.3,
              "score_value": 3021,
              "updated_at": 1569178320,
              "user_avatar": null,
              "user_id": 96753878,
              "user_location": null,
              "permissions": {
                "read": {
                  "access": "open"
                },
                "update": {
                  "access": "owner"
                },
                "delete": {
                  "access": "owner"
                }
              }
            }
          ]
        }
        ```
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

**Allowed permissions**

| Permission         | Syntax                                                                                                                      | Example                                                                               |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| Open               | permissions.\<CRUD\_operation>.access                                                                                       | permissions.read.access=open                                                          |
| Owner              | permissions.\<CRUD\_operation>.access                                                                                       | permissions.read.access=owner                                                         |
| Open for users IDs | permissions.\<CRUD\_operation>.access=open\_for\_users\_ids permissions.\<CRUD\_operation>.ids=id\_1,id\_2,id\_3,…          | permissions.update.access=open\_for\_users\_ids permissions.update.ids=3,12           |
| Open for groups    | permissions.\<CRUD\_operation>.access=open\_for\_groups permissions.\<CRUD\_operation>.groups=group\_name\_1,group\_name\_2 | permissions.delete.access=open\_for\_groups permissions.delete.groups=experience,rate |

#### Path Parameters

<ParamField path="class_name" type="string" required>
  Custom object class name.
</ParamField>

#### Body Parameters

<ParamField body="record" type="object">
  <Expandable title="properties">
    <ParamField body="N" type="object">
      Numbering records in the query. Begin with 1 to N where N is the last number of the record.

      <Expandable title="properties">
        <ParamField body="id" type="string">
          ID of the record.
        </ParamField>

        <ParamField body="custom_field_N" type="string">
          Update value to the field defined in Custom Object class.
        </ParamField>

        <ParamField body="permissions" type="string">
          Record permissions. Format: <br />
          `permission.<CRUD_operation>.access=<value>` <br />
          `permission.<CRUD_operation>.<option>=<value>`

          CRUD operations: `create`, `read`, `update`, `delete`. <br />
          CRUD access values: `open`, `owner`, `open_for_users_ids`, `open_for_groups`. <br />
          CRUD options: `ids`, `groups`.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

#### Headers

<ParamField header="QB-Token" type="string" required> A user or application session token. See [Authentication](/reference/authentication) page to learn more about session tokens. Must be used either QB-Token or Authorization. </ParamField>

<ParamField header="Authorization" type="string" default="ApiKey {your_api_key}">
  API key from Dashboard. Expected format: `ApiKey {your_api_key}`. Must be used
  either QB-Token or Authorization.
</ParamField>

<ParamField header="On-Behalf-Of" type="string">
  User ID. The user ID of the user on whose behalf the request is being made.
</ParamField>

#### Responses

<AccordionGroup>
  <Accordion title="200">
    A successful response

    <ResponseField name="class_name" type="string" />

    <ResponseField name="not_found" type="object">
      <Expandable title="properties">
        <ResponseField name="ids" type="array of strings" />
      </Expandable>
    </ResponseField>

    <ResponseField name="items" type="array of objects">
      <Expandable title="properties">
        <ResponseField name="_id" type="string" />

        <ResponseField name="_parent_id" type="string" />

        <ResponseField name="created_at" type="integer" />

        <ResponseField name="updated_at" type="integer" />

        <ResponseField name="user_id" type="integer" />

        <ResponseField name="permissions" type="object">
          <Expandable title="properties">
            <ResponseField name="read" type="object">
              <Expandable title="properties">
                <ResponseField name="access" type="string" />
              </Expandable>
            </ResponseField>

            <ResponseField name="update" type="object">
              <Expandable title="properties">
                <ResponseField name="access" type="string" />
              </Expandable>
            </ResponseField>

            <ResponseField name="delete" type="object">
              <Expandable title="properties">
                <ResponseField name="access" type="string" />
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Accordion>

  <Accordion title="400">
    An error response
  </Accordion>
</AccordionGroup>

<RequestExample>
  ```bash cURL theme={null}
  curl -X PUT \
  -H "Content-Type: application/json" \
  -H "QB-Token: c3cd44309db1405472627e7a5cb436278e012bba" \
  -d '{
    "record":{
      "1":{
        "id":"5d866b53a28f9a5ad51cb562",
        "score_value":"1000"
      },
      "2":{
        "id":"5d867291a0eb473ed96099c4",
        "progress":"0.3",
        "completed_levels":[
          1,
          2,
          3
        ]
      }
    }
  }' \
  https://api.quickblox.com/data/ScoreTable/multi.json
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "class_name": "ScoreTable",
    "not_found": {
      "ids": []
    },
    "items": [
      {
        "_id": "5d866b53a28f9a5ad51cb562",
        "_parent_id": null,
        "completed_levels": [
          1,
          2,
          3,
          4
        ],
        "created_at": 1569090387,
        "date": "2019-09-21T21:21:00Z",
        "expert_mode": false,
        "game_mode_name": "beta testing",
        "progress": 0.23,
        "score_value": 1000,
        "updated_at": 1569178320,
        "user_avatar": null,
        "user_id": 96753878,
        "user_location": [
          11.13,
          45.52
        ],
        "permissions": {
          "read": {
            "access": "open"
          },
          "update": {
            "access": "owner"
          },
          "delete": {
            "access": "owner"
          }
        }
      },
      {
        "_id": "5d867291a0eb473ed96099c4",
        "_parent_id": null,
        "completed_levels": [
          1,
          2,
          3
        ],
        "created_at": 1569092241,
        "date": "2019-09-21T21:25:00Z",
        "expert_mode": false,
        "game_mode_name": "beta testing",
        "progress": 0.3,
        "score_value": 3021,
        "updated_at": 1569178320,
        "user_avatar": null,
        "user_id": 96753878,
        "user_location": null,
        "permissions": {
          "read": {
            "access": "open"
          },
          "update": {
            "access": "owner"
          },
          "delete": {
            "access": "owner"
          }
        }
      }
    ]
  }
  ```

  ```json 400 theme={null}
  {}
  ```
</ResponseExample>
