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

# Create Multi Records

> Create multiple records.

#### Recipes

<AccordionGroup>
  <Accordion title="Create multiple records with API key">
    <Steps>
      <Step title="1. Use 'Authorization' header to pass API key">
        ```curl {3} theme={null}
        curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: ApiKey 28irlNAGasWDSupO9Vw0BBMZfuHrAUYKpmroS9yBORI" \
        -d '{
          "record":{
            "0":{
              "score_value":3021,
              "progress":"0.42",
              "expert_mode":false,
              "game_mode_name":"4x4",
              "date":"2019-09-21 21:25:00",
              "completed_levels":[
                1,
                2,
                3,
                4,
                5,
                6
              ]
            },
            "1":{
              "score_value":1211,
              "progress":"0.32",
              "expert_mode":true,
              "game_mode_name":"deathmatch",
              "user_location":"21.23, 15.32",
              "date":"2019-09-20 15:21:00",
              "completed_levels":[
                1,
                2,
                3,
                4,
                5
              ]
            }
          }
        }' \
        "https://api.quickblox.com/data/ScoreTable/multi.json"
        ```
      </Step>

      <Step title="2. As a result, the API returns the newly created records.">
        ```json theme={null}
        {
          "class_name": "ScoreTable",
          "items": [
            {
              "_id": "5d867291a0eb473ed96099c4",
              "_parent_id": null,
              "completed_levels": [
                1,
                2,
                3,
                4,
                5,
                6
              ],
              "created_at": 1569092241,
              "date": "2019-09-21T21:25:00Z",
              "expert_mode": false,
              "game_mode_name": "4x4",
              "progress": 0.42,
              "score_value": 3021,
              "updated_at": 1569092241,
              "user_avatar": null,
              "user_id": 96753878,
              "user_location": null,
              "permissions": {
                "read": {
                  "access": "open"
                },
                "update": {
                  "access": "owner"
                },
                "delete": {
                  "access": "owner"
                }
              }
            },
            {
              "_id": "5d867291a0eb473ed96099c5",
              "_parent_id": null,
              "completed_levels": [
                1,
                2,
                3,
                4,
                5
              ],
              "created_at": 1569092241,
              "date": "2019-09-20T15:21:00Z",
              "expert_mode": true,
              "game_mode_name": "deathmatch",
              "progress": 0.32,
              "score_value": 1211,
              "updated_at": 1569092241,
              "user_avatar": null,
              "user_id": 96753878,
              "user_location": [
                21.23,
                15.32
              ],
              "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>
  A class name of the parent custom object.
</ParamField>

#### Body Parameters

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

      <Expandable title="properties">
        <ParamField body="{custom_field_N}" type="string">
          Set value to the field defined in Custom Object class. Can be many 1..N.
        </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="201">
    A successful response

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

    <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>
  </Accordion>

  <Accordion title="403">
    An error response

    <ResponseField name="errors" type="array of strings" />
  </Accordion>
</AccordionGroup>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST \
  -H "Content-Type: application/json" \
  -H "QB-Token: 199b1d9ec0dedeb19d81283b3b2a32b80f012bba" \
  -d '{
    "record":{
      "0":{
        "score_value":3021,
        "progress":"0.42",
        "expert_mode":false,
        "game_mode_name":"4x4",
        "date":"2019-09-21 21:25:00",
        "completed_levels":[
          1,
          2,
          3,
          4,
          5,
          6
        ]
      },
      "1":{
        "score_value":1211,
        "progress":"0.32",
        "expert_mode":true,
        "game_mode_name":"deathmatch",
        "user_location":"21.23, 15.32",
        "date":"2019-09-20 15:21:00",
        "completed_levels":[
          1,
          2,
          3,
          4,
          5
        ]
      }
    }
  }' \
  "https://api.quickblox.com/data/ScoreTable/multi.json"
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  {
    "class_name": "ScoreTable",
    "items": [
      {
        "_id": "5d867291a0eb473ed96099c4",
        "_parent_id": null,
        "completed_levels": [
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "created_at": 1569092241,
        "date": "2019-09-21T21:25:00Z",
        "expert_mode": false,
        "game_mode_name": "4x4",
        "progress": 0.42,
        "score_value": 3021,
        "updated_at": 1569092241,
        "user_avatar": null,
        "user_id": 96753878,
        "user_location": null,
        "permissions": {
          "read": {
            "access": "open"
          },
          "update": {
            "access": "owner"
          },
          "delete": {
            "access": "owner"
          }
        }
      },
      {
        "_id": "5d867291a0eb473ed96099c5",
        "_parent_id": null,
        "completed_levels": [
          1,
          2,
          3,
          4,
          5
        ],
        "created_at": 1569092241,
        "date": "2019-09-20T15:21:00Z",
        "expert_mode": true,
        "game_mode_name": "deathmatch",
        "progress": 0.32,
        "score_value": 1211,
        "updated_at": 1569092241,
        "user_avatar": null,
        "user_id": 96753878,
        "user_location": [
          21.23,
          15.32
        ],
        "permissions": {
          "read": {
            "access": "open"
          },
          "update": {
            "access": "owner"
          },
          "delete": {
            "access": "owner"
          }
        }
      }
    ]
  }
  ```

  ```json 403 theme={null}
  {
    "errors": [
      "You don't have appropriate permissions to do this operation"
    ]
  }
  ```
</ResponseExample>
