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

# Split a PDF

> This function allows you to split a single **PDF** file into multiple **PDF** files. It offers various methods for splitting, including by page index, page range, text search, or barcode search. This feature is particularly useful for segmenting large **PDF** documents or extracting specific sections.

<Frame>
  <img src="https://mintcdn.com/pdfco/jvNpJlS3eEFjK2tL/images/integrations/make/make-step25.png?fit=max&auto=format&n=jvNpJlS3eEFjK2tL&q=85&s=0d00dc062c879d807f11bd1020f7f3c9" alt="Make Step" width="812" height="961" data-path="images/integrations/make/make-step25.png" />
</Frame>

## Input

<Tip>
  The Make module doesn't expose every PDF.co API parameter as a field. To pass a parameter that isn't shown, use the **Profiles** field with `std_params`. Enable **Advanced Settings** to see it (see [Profiles](#profiles)). See [Standard Parameters](/api/profiles#standard-parameters) for details.
</Tip>

| Name | Description | Required |
| - | - | - |
| **Import Options** | Choose the input source, either `Upload a File` or `Import a File from URL`. | Yes |

***

**Upload a File**

| Name | Description | Required |
| - | - | - |
| **Data** | Upload a file using raw binary data from another module. Note: This requires additional credits as it first uploads to [PDF.co Temporary Files Storage](/api/file-upload). | Yes |
| **Output File Name** | Specify a custom file name for the output file. | No |

**Import a File from URL**

| Name | Description | Required |
| - | - | - |
| **URL** | Provide the URL to the source **PDF** document, or a `filetoken://` link from [PDF.co Built-In Files Storage](https://app.pdf.co/files). If you use another cloud service such as **Google Drive** or **Dropbox** ensure the link is publicly accessible. | Yes |
| **Output File Name** | Specify a custom file name for the output file. | No |

**Split**

| Name | Description | Required |
| - | - | - |
| **Split By** | Provide split by options. Valid values: `Page Numbers`, `Text Found or Barcode`. | Yes |

**Split by - Page Numbers**

| Name | Description | Required |
| - | - | - |
| **Pages** | Specify comma-separated page indices or ranges for splitting. The first page is numbered `1`. Example: `1,2,3-` or `1,2,3-7`. Use special notations like `!1` for the last page or `*` for splitting into separate pages. | Yes |

**Split by - Text Found or Barcode**

| Name | Description | Required |
| - | - | - |
| **Search String** | Specify the text or barcode to search for when splitting the **PDF**. Use macros for barcodes, such as `[[barcode:<types> <value>]]`. For example, `[[barcode:qrcode 12345]]` to search for a QR code with the value 12345. | No |
| **ExcludeKey Pages** | Choose to exclude pages where the search result is found. This option is useful if you want to omit certain pages based on the search criteria. | No |
| **Regex Search** | Enable this option if you are using regular expressions for your search. This allows for more complex search patterns. | No |
| **Case Sensitive** | Determine whether the search should be case sensitive. Enable this if the text case is important for your search criteria. | No |
| **Language** | Select the language used for **OCR** (Optical Character Recognition). This is relevant when searching text in scanned **PDFs** or images. | No |

| Name | Description | Required |
| - | - | - |
| **Execution Mode** | Select **Sync** for small tasks up to `10` seconds. Choose **Async** for standard jobs, or **Async For Large Docs** for tasks over `30` seconds. Use **Job Check** module for retrieving results in large tasks. | No |
| **Profiles** | Add custom options for the process in a `JSON` string format. See [API Profiles](#profiles) for more details. | No |
| **Output Links Expiration** | Set the expiration time in minutes for output links. Default is `60` minutes. Increase this limit with a `Business Plan` or higher, see [plans here](https://app.pdf.co/subscriptions) for details. | No |
| **Export Type** | Choose between `Download a File` or `JSON Output`. Default is `Download a File`. | No |

### Integrating External File Sources

<Note>
  Streamline your **Make** workflows with external file sources like **Google Drive** and **Dropbox** using their unique actions. Discover efficient integration strategies in our guide: [File Source Integrations in Make](/integrations/make/input-file-sources).
</Note>

## Output

| Name | Description |
| - | - |
| `url` | This is the temporary **URL** provided by the **PDF.co** file server. |
| `URLs` | Contains string array of split **PDF** URLs. This data is generated only when the `Export Type` option is set to `JSON Output`. |
| `Data` | Represents the output binary data. This data is generated only when the `Export Type` option is set to `Download a File`. |
| `Status` | Indicates the [response status](/api/introduction) code. A `success` status is returned if the operation is successful. |
| `outputLinkValidTill` | Specifies the timestamp until which the `url` remains accessible. |
| `error` | Provides details about any errors encountered during the process, if applicable. |
| `File Name` | The designated name of the output file. |
| `Job Id` | A unique identifier assigned to the job. |
| `credits` | The amount of credits utilized for the process. |
| `Remaining Credits` | Displays the balance of credits available in your account. |
| `duration` | The duration of time the process took to complete. |

### Profiles

<Warning>
  To display the Profiles fields, you must **enable Advanced Settings** by clicking the toggle:

  <Frame>
    <img src="https://mintcdn.com/pdfco/tXGo3rbTS_pEF5es/images/integrations/make/show-advanced-settings.png?fit=max&auto=format&n=tXGo3rbTS_pEF5es&q=85&s=8a9777bce100fedc593f641fa3140bd2" alt="Advanced Settings" width="558" height="70" data-path="images/integrations/make/show-advanced-settings.png" />
  </Frame>
</Warning>

You can set additional options for the operation used in the [PDF.co](http://pdf.co/) module by using **Profiles**. A profile is a string in JSON-like format containing predefined parameters.

### Here’s an example of a Custom Profiles input:

```json theme={null}
{ "outputDataFormat": "base64" }
```

With this input, the [PDF.co](http://pdf.co/) module will return the output in base64 format. You can find the list of available parameters for customizing profiles in the [PDF.co](http://pdf.co/) operation documentation below:

<Tip>
  You can use any regular API parameter from the [API Reference](/api) within Make using the `std_params` feature in profiles. The `std_params` enables the definition of regular API parameters in a JSON format, See [Standard Parameters](/api/profiles#standard-parameters) for detailed documentation and examples.
</Tip>

| Parameter | Type | Default | Description |
| - | - | - | - |
| `outputDataFormat` | string | - | If you require your output as base64 format, set this to base64 |
| `DataEncryptionAlgorithm` | string | - | Controls the encryption algorithm used for data encryption. See User-Controlled Encryption for more information. The available algorithms are: AES128, AES192, AES256. |
| `DataEncryptionKey` | string | - | Controls the encryption key used for data encryption. See User-Controlled Encryption for more information. |
| `DataEncryptionIV` | string | - | Controls the encryption IV used for data encryption. See User-Controlled Encryption for more information. |
| `DataDecryptionAlgorithm` | string | - | Controls the decryption algorithm used for data decryption. See User-Controlled Encryption for more information. The available algorithms are: AES128, AES192, AES256. |
| `DataDecryptionKey` | string | - | Controls the decryption key used for data decryption. See User-Controlled Encryption for more information. |
| `DataDecryptionIV` | string | - | Controls the decryption IV used for data decryption. See User-Controlled Encryption for more information. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.