## 5.4 Set Up Content Ingestion
Create a pipeline for ingesting documents.
## Register Pipeline
To register a new data pipeline, send a POST request to the endpoint &lt;url&gt;/pipeline/api/v1/pipeline with the desired configuration parameters in the request body.
-  Tip
The &lt;url&gt; value is the service key URL value for document grounding that you obtained in step 8 in Configure User Authentication [page 108].
You can upload a maximum number of 3000 documents per pipeline. Each 40 MB counts as 1 document.
## Schedule Pipeline Content Update
When setting up a pipeline, you can schedule it to be automatically triggered at a frequency of your choice. You do so using cronExpression .
Cron expressions have 5 fields denoted by a string asterisks, as shown in the following tables and sample code blocks for Microsoft SharePoint and SAP Build Work Zone. The values for these fields are as follows:
Pipeline Scheduling: Fields and Values
| *                                          | *                                          | *                                           | *                                           |                                            |
|--------------------------------------------|--------------------------------------------|---------------------------------------------|---------------------------------------------|--------------------------------------------|
| Minute (0-59)                              | Hour (0-23)                                | month (1- Month (1-12)                      | Day of the week (0-6)                       |                                            |
| Pipeline Scheduling Fields: Example Values | Pipeline Scheduling Fields: Example Values | Pipeline Scheduling Fields: Example Values  | Pipeline Scheduling Fields: Example Values  | Pipeline Scheduling Fields: Example Values |
| Expression                                 |                                            | Schedule                                    |                                             |                                            |
| *****                                      |                                            | Every minute                                |                                             |                                            |
| 0****                                      |                                            | Every hour                                  |                                             |                                            |
| 00***                                      |                                            | Every day at 12:00 a.m.                     |                                             |                                            |
| 00**FRI                                    |                                            | At 12:00 a.m. only on Friday                |                                             |                                            |
| 001**                                      |                                            | At 12:00 a.m. on the first day of the month | At 12:00 a.m. on the first day of the month |                                            |
The following examples show requests and responses for each data repository type:
## Microsoft SharePoint
## Request Example
The following shows an example of a SharePoint site ingestion:
##  Sample Code
```
curl \ --request POST \ --url '<url>/pipeline/api/v1/pipeline' \ --header 'Authorization: Bearer <access_token>' \ --header 'content-type: application/json' \ --data '{"type": "MSSharePoint","configuration": {"destination": "<NAME_OF_DESTINATION>","sharePoint": {"site": {"name": "<ID_OF_SHAREPOINT_SITE>","includePaths":["/<NAME_OF_SHAREPOINT_FOLDER_1>","/ <NAME_OF_SHAREPOINT_FOLDER_2>"]} },"cronExpression": "* * * * *"}}' \ --cert <file_with_certificate> \ --key <file_with_key>
```
##  Note
In the request, the parameter includePaths is optional. Use it if you want to add specific SharePoint folders from the SharePoint site to the data pipeline.
The cronExpression parameter is also optional.
Nested folders are also supported. Use "includePaths":["/&lt;NAME\_OF\_SHAREPOINT\_FOLDER\_1&gt;/ &lt;NAME\_OF\_SHAREPOINT\_FOLDER\_2&gt;"] if &lt;NAME\_OF\_SHAREPOINT\_FOLDER\_2&gt; is a subfolder of &lt;NAME\_OF\_SHAREPOINT\_FOLDER\_1&gt; . SharePoint has a folder depth of 5: In other words, it supports up to 5 levels in the folder hierarchy.
Use the parameter includePaths only to specify folder paths within the default document folder from the SharePoint site. Drive, document library paths, or any other formats other than folder paths aren't supported.
## Response Example
The response is given as a JSON file that contains the ID of the created pipeline.
```
{ "pipelineId":"4cfd0478-29ea-45c2-bc40-d3817621744e" }
```
The created pipeline starts ingesting the data in the provided SharePoint site and updates the content daily.
## SAP Build Work Zone
## Request Example
The following shows an example of an SAP Build Work Zone, advanced edition ingestion:
```
 Sample Code curl \ --request POST \ --url '<url›/pipeline/api/v1/pipeline' \ --header 'Authorization: Bearer <access_token>' \ --header 'content-type: application/json' \ --data '{"type": "WorkZone", "metadata": {"destination": "<NAME_OF_DESTINATION>","cronExpression": "* * * * *"}}' \ --cert < file_with_certificate> \ --key ‹file_with_key>
```
The cronExpression parameter is optional.
## Response Example
The response is given as a JSON file that contains the ID of the created pipeline.
```
{ "pipelineId":"4cfd0478-29ea-45c2-bc40-d3817621744e" }
```
The created pipeline starts ingesting the data in the provided WorkZone and updates the content daily.
 Tip To manually trigger a pipeline to start the content update process, send a POST request to the endpoint &lt;url&gt;/pipeline/api/v1/pipeline/trigger . This endpoint supports 5 calls in 1 minute per tenant.
## Request Body Example
```
 Sample Code { "pipelineId":"4cfd0478-29ea-45c2-bc40-d3817621744e" }
```
## Response Example
202 'Accepted'
## Related Information
Get Pipeline Status [page 117] Search Pipelines [page 121]