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

# Create a Project

> Scaffold a new project in Essal Project, apply a template, and assign team members via the API.

**Projects** in Essal Project are the top-level container for tasks, sprints, and time entries. This guide covers creating a project from scratch, using a template, and setting up your team.

## Creating a Project

```bash theme={null}
POST /v1/project/projects
{
  "name": "Website Relaunch",
  "description": "Full redesign and relaunch of the corporate website.",
  "start_date": "2026-08-01",
  "target_date": "2026-10-31",
  "visibility": "team",
  "owner_id": "usr_01HXYZ5678"
}
```

```json theme={null}
{
  "id": "proj_01HXYZ9876",
  "name": "Website Relaunch",
  "status": "planning",
  "progress": 0,
  "created_at": "2026-07-10T10:00:00Z"
}
```

## Using a Template

Accelerate setup by creating a project from a template. Templates pre-populate tasks, sprint structures, and default assignees:

```bash theme={null}
POST /v1/project/projects
{
  "name": "Product Launch — Q4",
  "template_id": "tpl_01HXYZ_LAUNCH",
  "start_date": "2026-09-01"
}
```

List available templates:

```bash theme={null}
GET /v1/project/templates
```

## Assigning Team Members

```bash theme={null}
POST /v1/project/projects/proj_01HXYZ9876/members
{
  "members": [
    { "user_id": "usr_01HXYZ1111", "role": "member" },
    { "user_id": "usr_01HXYZ2222", "role": "admin" },
    { "user_id": "usr_01HXYZ3333", "role": "viewer" }
  ]
}
```

| Project Role | Permissions                                             |
| ------------ | ------------------------------------------------------- |
| `admin`      | Create and delete tasks, manage sprints, invite members |
| `member`     | Create tasks, log time, comment                         |
| `viewer`     | Read-only access to the project                         |

## Project Settings

Configure project-level settings such as default task priority and time tracking:

```bash theme={null}
PATCH /v1/project/projects/proj_01HXYZ9876
{
  "settings": {
    "time_tracking_enabled": true,
    "default_task_priority": "medium",
    "sprint_duration_weeks": 2,
    "enable_roadmap": true
  }
}
```

## Linking to Other Apps

Projects can be linked to Essal Sales deals or Essal Office documents for cross-app context:

```bash theme={null}
PATCH /v1/project/projects/proj_01HXYZ9876
{
  "linked_resources": [
    { "type": "sales.deal", "id": "deal_01HXYZAAA" },
    { "type": "office.document", "id": "doc_01HXYZABC" }
  ]
}
```

<Tip>
  Linking a project to a Sales deal makes it easy for delivery and account teams to see context without switching apps. The deal is displayed in the project's sidebar in the Essal dashboard.
</Tip>
