> This page is for version v2024-12-23.
> For other versions, use one of these documentation indexes:
> - v2026-02-09 (default): https://docs.extend.ai/2026-02-09/llms.txt
> - v2025-04-21: https://docs.extend.ai/2025-04-21/llms.txt
> - v2024-12-23: https://docs.extend.ai/2024-12-23/llms.txt

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.extend.ai/llms.txt
> Use this file to discover all available pages before exploring further.
>
> ## API version
> The current API version is `2026-02-09`, served at the site root (no version prefix in URLs).
> If this page URL contains `/2025-04-21/` or `/2024-12-23/`, you are reading an older API version.
> Prefer the current docs at https://docs.extend.ai/llms.txt unless the user explicitly needs that older version.
> Do not treat older-version pages as the source of truth for new integrations.

# Bulk Create Evaluation Set Items

If you have a large number of files that you need to add to an evaluation set, you can use this endpoint to create multiple evaluation set items at once. This can be useful if you have a large dataset that you need to evaluate the performance of a processor against.

*Note*: you still need to create each File first using the file API.

### Body

**`evaluationSetId`** `string` — required

The ID of the evaluation set to add the items to.

---

**`items`** `array` — required

An array of objects representing the evaluation set items to create. Each object should have the following fields:

#### properties

**`fileId`** `string`

The ID of the file to add to the evaluation set.

---

**`expectedOutput`** `object`

The expected output of the processor when run against the file. This should be a JSON object conforming to the [output type schema](/2024-12-23/developers/guides/output-types) of the processor.

---

---

### Response

**`success`** `boolean`

A true or false value for whether the evaluation set items were created
successfully or not.

---

**`evaluationSetItems`** `array`

An array of EvaluationSetItem objects representing the newly created
evaluation set items. See the [EvaluationSetItem object](/2024-12-23/developers/objects/evaluation-set-item) for more details.

---

```curl
curl --request POST \
  --url https://api-prod.extend.app/evaluation_set_items/bulk \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "evaluationSetId": "<string>",
  "items": [
    {}
  ]
}'
```

```python
import requests

url = "https://api-prod.extend.app/evaluation_set_items/bulk"

payload = {
    "evaluationSetId": "<string>",
    "items": [{}]
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)
```

```javascript
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"evaluationSetId":"<string>","items":[{}]}'
};

fetch('https://api-prod.extend.app/evaluation_set_items/bulk', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
```

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api-prod.extend.app/evaluation_set_items/bulk",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n  \"evaluationSetId\": \"<string>\",\n  \"items\": [\n    {}\n  ]\n}",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://api-prod.extend.app/evaluation_set_items/bulk"

	payload := strings.NewReader("{\n  \"evaluationSetId\": \"<string>\",\n  \"items\": [\n    {}\n  ]\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```java
HttpResponse<String> response = Unirest.post("https://api-prod.extend.app/evaluation_set_items/bulk")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"evaluationSetId\": \"<string>\",\n  \"items\": [\n    {}\n  ]\n}")
  .asString();
```

**`Example Response`**

```json Example Response
{
  "success": true,
  "evaluationSetItems": [
    {
      "object": "evaluation_set_item",
      "id": "eval_item_1234",
      "evaluationSetId": "eval_set_1234",
      "fileId": "file_1234",
      "expectedOutput": {
        // Output object - see “Processor output types” for details
      },
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z"
    },
    {
      "object": "evaluation_set_item",
      "id": "eval_item_5678",
      "evaluationSetId": "eval_set_5678",
      "fileId": "file_5678",
      "expectedOutput": {
        // Output object - see “Processor output types” for details
      },
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z"
    }
  ]
}
```