---
updatedAt: 2026-08-02T07:02:37.000Z
agentTools:
  siteIndex: https://docs.jfrog.com/llms.txt
  projectIndex: https://docs.jfrog.com/projects/llms.txt
---

# Project Creation Tasks

Create JFrog Platform Projects with UI workflows and REST APIs for stages, environments, roles, repositories, and members.

The basic workflow tasks for creating a [JFrog Project](/docs/projects) are linked below. A [Platform Admin](/docs/platform-administrator-role) can perform all these actions, and some can also be performed by [Project Admins](/docs/project-admin-role). For more details, refer to individual APIs.

Where:

* `<BASE_URL>`: Your JFrog Platform base URL for the Access API
* `<PROJECT_KEY>`: The unique project key
* `<ROLE>`: The role name
* `<USER>`: The username
* `<ARTIFACTORY_HOST>`: Your Artifactory host
* `<REPO_NAME>`: The repository name
* `<TARGET_PROJECT_KEY>`: The target project key for sharing

For example:

```shell
POST https://company.jfrog.io/access/api/v1/projects
```

## Project Setup by a Platform Administrator

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th style={{ textAlign: "left" }}>
        Procedure
      </th>

      <th style={{ textAlign: "left" }}>
        Using Platform UI
      </th>

      <th style={{ textAlign: "left" }}>
        Using APIs
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td style={{ textAlign: "left" }}>
        **Create a project/assign project name, key, storage quota, admin privileges**
      </td>

      <td style={{ textAlign: "left" }}>
        [Set Up a New Project](/docs/create-a-project)
      </td>

      <td style={{ textAlign: "left" }}>
        [Create Project](/reference/createproject)  
        

```shell
POST <BASE_URL>/access/api/v1/projects
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Create a Lifecycle Stage**
      </td>

      <td style={{ textAlign: "left" }}>
        [Create Stages](/administration/docs/create-stages-in-the-platform-ui)
      </td>

      <td style={{ textAlign: "left" }}>
        [Create Lifecycle Stage  ](/governance/reference/createlifecyclestage)  
        

```shell
https://<ARTIFACTORY_HOST>/access/api/v2/stages
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Update Lifecycle**
      </td>

      <td style={{ textAlign: "left" }}>
        [Edit the Lifecycle](/administration/docs/edit-the-lifecycle-in-the-platform-ui)
      </td>

      <td style={{ textAlign: "left" }}>
        [Update Lifecycle](/governance/reference/updatelifecycle)  
        

```shell
https://<ARTIFACTORY_HOST>/access/api/v2/lifecycle
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Create a global environment**
      </td>

      <td style={{ textAlign: "left" }}>
        [Create a Custom Global Environment](/administration/docs/create-a-custom-global-environment)
      </td>

      <td style={{ textAlign: "left" }}>
        [Create Global Environment](/administration/reference/createglobalenvironment)  
        

```shell
POST <BASE_URL>/access/api/v1/environments
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Create a project environment**
      </td>

      <td style={{ textAlign: "left" }}>
        [Create a Custom Project Environment](/administration/docs/create-a-custom-project-environment)
      </td>

      <td style={{ textAlign: "left" }}>
        [Create Project Environment](/administration/reference/createprojectenvironment)  
        

```shell
POST <BASE_URL>/access/api/v1/projects/<PROJECT_KEY>/environments
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Create a custom global role**
      </td>

      <td style={{ textAlign: "left" }}>
        [Create Custom Global Roles](/docs/manage-global-roles#create-custom-global-roles)
      </td>

      <td style={{ textAlign: "left" }}>
        <Anchor label="Create a Custom Global Role" target="_blank" href="/administration/reference/createglobalrole">Create a Custom Global Role</Anchor>  
        

```shell
POST <BASE_URL>/access/api/v1/roles
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Edit a global role**
      </td>

      <td style={{ textAlign: "left" }}>
        [Assign Environments to Global and Project Roles](/administration/docs/assign-environments-to-global-and-project-roles)
      </td>

      <td style={{ textAlign: "left" }}>
        <Anchor label="Edit a Global Role" target="_blank" href="/administration/reference/updateglobalrole">Edit a Global Role</Anchor>  
        

```shell
PUT <BASE_URL>/access/api/v1/roles/<ROLE>
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Create a project role**
      </td>

      <td style={{ textAlign: "left" }}>
        [Create Project Roles](/docs/manage-project-roles)
      </td>

      <td style={{ textAlign: "left" }}>
        [Create Role](/reference/createprojectrole)  
        

```shell
POST <BASE_URL>/access/api/v1/projects/<PROJECT_KEY>/roles
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Assign repositories to each environment**
      </td>

      <td style={{ textAlign: "left" }}>
        [Assign Environments to Repositories](/administration/docs/assign-environments-to-repositories)
      </td>

      <td style={{ textAlign: "left" }}>
        [Update Repository Configuration](/artifactory/reference/updaterepositoryconfiguration)  
        _(Based on changes made in the Repository Configuration JSON)_
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Edit a project**
      </td>

      <td style={{ textAlign: "left" }}>
        [Manage Projects](/docs/manage-projects)
      </td>

      <td style={{ textAlign: "left" }}>
        [Update Project](/reference/updateproject)  
        

```shell
PUT <BASE_URL>/access/api/v1/projects/<PROJECT_KEY>
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Add users to a project**
      </td>

      <td style={{ textAlign: "left" }}>
        [Assign Members to a Project](/docs/manage-project-roles-and-members)
      </td>

      <td style={{ textAlign: "left" }}>
        [Add or Update User in Project](/reference/addorupdateprojectuser)  
        

```shell
PUT <BASE_URL>/access/api/v1/projects/<PROJECT_KEY>/users/<USER>
```

      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Add resources to a project**
      </td>

      <td style={{ textAlign: "left" }}>
        [Share Repositories Across Multiple Projects](/docs/share-repositories-across-multiple-projects)
      </td>

      <td style={{ textAlign: "left" }}>
        [Share Repository with Target Project](/reference/sharerepositorywithtargetproject)  
        

```shell
PUT /access/api/v1/projects/_/share/repositories/<REPO_NAME>/<TARGET_PROJECT_KEY>
```

      </td>
    </tr>
  </tbody>
</Table>

## Related Topics

* [Create a Project](/docs/create-a-project)
* [Project User Management Tasks](/docs/project-user-management-tasks)
* [Project Management Tasks](/docs/project-management-tasks)
* [Manage Project Roles and Members](/docs/manage-project-roles-and-members)
* [Dedicated Project REST APIs](/docs/dedicated-project-rest-apis)