--- title: "Create pipeline" slug: "devtools-sourcepipeline-projectcreate" tags: ["SourcePipeline"] updated: 2026-09-17T10:05:44Z published: 2026-09-17T10:05:44Z canonical: "api.ncloud-docs.com/devtools-sourcepipeline-projectcreate" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Create pipeline Available in Classic and VPC Create a pipeline. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /api/v1/project | ### Request headers For information about the headers common to all SourcePipeline APIs, see [SourcePipeline request headers](/docs/en/devtools-sourcepipeline#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | String | Required | Pipeline name - Enter 1-30 characters by combining English letters, numbers, and special characters "-" and "_". | | `description` | String | Optional | Pipeline description | | `tasks` | Array | Required | Job list: [tasks](/docs/en/devtools-sourcepipeline-projectcreate#tasks) | | `trigger` | Object | Optional | Trigger settings | | `trigger.repository` | Array | Optional | Push trigger settings: [repository](/docs/en/devtools-sourcepipeline-projectcreate#repository) | | `trigger.sourcepipeline` | Array | Optional | Pipeline trigger settings: [sourcepipeline](/docs/en/devtools-sourcepipeline-projectcreate#sourcepipeline) | | `trigger.schedule` | Array | Optional | Reserved trigger settings: [schedule](/docs/en/devtools-sourcepipeline-projectcreate#schedule) | #### `tasks` The following describes `tasks`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | String | Required | Job name - Enter 1-50 characters by combining English letters, numbers, and special characters "-" and "_". | | `type` | String | Required | Job type - `SourceBuild` \| `SourceDeploy` | | `config` | Object | Required | Set jobs. | | `config.projectId` | Number | Required | Job project ID - If `type` is `SourceBuild`, see [Get SourceBuild project list](/docs/en/devtools-sourcepipeline-sourcbuildprojectlist). - If `type` is `SourceDeploy`, see [Get SourceDeploy project list](/docs/en/devtools-sourcepipeline-sourcedeployprojectlist). | | `config.stageId` | Number | Conditional | Deployment stage ID - See [Get SourceDeploy stage list](/docs/en/devtools-sourcepipeline-sourcedeploystagelist). - Required if `type` is `SourceDeploy` | | `config.scenarioId` | Number | Conditional | Deployment scenario ID - See [Get SourceDeploy scenario list](/docs/en/devtools-sourcepipeline-sourcedeployscenariolist). - Required if `type` is `SourceDeploy` | | `config.target` | Object | Optional | Connection information | | `config.target.info` | Object | Optional | Detailed connection information | | `config.target.info.branch` | String | Optional | Branch name - See [Get SourceCommit branch list](/docs/en/devtools-sourcepipeline-sourcecommitbranchlist). - Can enter if `type` is `SourceBuild`. | | `linkedTasks` | Array | Required | Preceding job name - Enter an empty value `[]` if there is no preceding job. | #### `repository` The following describes `repository`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `type` | String | Conditional | Repository type - `sourcecommit`: SourceCommit (valid value) - Required when setting a trigger | | `name` | String | Conditional | Repository name - See [Get SourceCommit repository list](/docs/en/devtools-sourcepipeline-sourcecommitrepolist). - Required when setting a trigger | | `branch` | String | Conditional | Branch name - See [Get SourceCommit branch list](/docs/en/devtools-sourcepipeline-sourcecommitbranchlist). - Required when setting a trigger | #### `sourcepipeline` The following describes `sourcepipeline`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `id` | Number | Conditional | Pipeline ID - See [Get pipeline list](/docs/en/devtools-sourcepipeline-projectlist). - Required when setting a trigger | #### `schedule` The following describes `schedule`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `day` | Array | Conditional | List of reserved execution days of the week - `MON` \| `TUE` \| `WED` \| `THU` \| `FRI` \| `SAT` \| `SUN` - Required when setting a trigger | | `time` | String | Conditional | Reserved execution time - HH:mm format (24 hours) - Required when setting a trigger | | `timeZone` | String | Conditional | Reserved trigger time zone - See [Get time zone list](/docs/en/devtools-sourcepipeline-timezone). - Required when setting a trigger | | `scheduleOnlyWithChange` | Boolean | Conditional | Whether to execute when changing SourceCommit and SourcePipeline - `true` \| `false` - `true`: execute - `false`: not execute - Required when setting a trigger | ### Request example The request example is as follows: ``` curl --location --request POST 'https://vpcsourcepipeline.apigw.ntruss.com/api/v1/project' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --data '{ "name": "testpipeline", "description": "testpipeline", "tasks": [ { "name": "task1", "type": "SourceBuild", "config": { "projectId": 20***, "target": { "info": { "branch": "app" } } }, "linkedTasks": [] }, { "name": "task2", "type": "SourceDeploy", "config": { "projectId": 2***, "stageId": 3***, "scenarioId": 2*** }, "linkedTasks": [ "task1" ] } ], "trigger": { "schedule": [ { "day": [ "MON", "WED", "FRI", "SUN" ], "time": "23:00", "timeZone": "Asia/Seoul (UTC+09:00)", "scheduleOnlyWithChange": true } ] } }' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `result` | Object | - | Response result | | `result.projectId` | Number | - | Pipeline ID | ### Response status codes For information about the HTTP status codes common to all SourcePipeline APIs, see [SourcePipeline response status codes](/docs/en/devtools-sourcepipeline#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "result": { "projectId": 2*** } } ```