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

# Create Processor

This endpoint allows you to create a new processor or clone an existing one. Typically processors are created and configured in the Extend Studio, but this endpoint can be used to create processors programmatically in order to sync ID's across systems.

### Body

**`name`** `string` — required

The name of the new processor.

---

**`type`** `string` — required

The type of the processor.

---

**`cloneProcessorId`** `string`

The ID of an existing processor to clone. If provided, a new processor will be
created that clones the config of this processor.

---

### Response

**`success`** `boolean`

A true or false value indicating whether the processor was created
successfully or not.

---

**`processor`** `DocumentProcessor`

A Processor object representing the newly created processor. See the
[DocumentProcessor object](/2024-12-23/developers/objects/processor) for more details.

---

### Error Responses

**`success`** `boolean`

Will be `false` if the request failed.

---

**`error`** `string`

A description of the error that occurred.

---

#### Possible Common Errors

* **400 Bad Request**: If the request body fails schema validation.
* **404 Not Found**: If the processor to clone (cloneProcessorId) is not found.

```curl
curl --request POST \
  --url https://api-prod.extend.app/processors \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "<string>",
  "type": "<string>",
  "cloneProcessorId": "<string>",
  "jsonSchemaEnabled": true
}'
```

```python
import requests

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

payload = {
"name": "<string>",
"type": "<string>",
"cloneProcessorId": "<string>",
"jsonSchemaEnabled": True
}
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: '{"name":"<string>","type":"<string>","cloneProcessorId":"<string>","jsonSchemaEnabled":true}'
};

fetch('https://api-prod.extend.app/processors', 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/processors",
  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  \"name\": \"<string>\",\n  \"type\": \"<string>\",\n  \"cloneProcessorId\": \"<string>\",\n  \"jsonSchemaEnabled\": true\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/processors"

	payload := strings.NewReader("{\n  \"name\": \"<string>\",\n  \"type\": \"<string>\",\n  \"cloneProcessorId\": \"<string>\",\n  \"jsonSchemaEnabled\": true\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/processors")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"<string>\",\n  \"type\": \"<string>\",\n  \"cloneProcessorId\": \"<string>\",\n  \"jsonSchemaEnabled\": true\n}")
  .asString();
```

**`Example Success Response`**

```json Example Success Response
{
  "success": true,
  "processor": {
    "object": "document_processor",
    "id": "processor_1234",
    "name": "New Invoice Processor",
    "type": "EXTRACT",
    "createdAt": "2024-03-01T12:00:00Z",
    "updatedAt": "2024-03-01T12:00:00Z"
  }
}
```