> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/cvat-ai/cvat/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating Projects

> Learn how to create and configure CVAT projects with labels, attributes, and settings

Projects in CVAT help you organize related annotation tasks with shared labels, settings, and quality control configurations. A project serves as a container for multiple tasks that share the same annotation schema.

## Overview

A project contains:

* **Shared label schema**: Labels and attributes used across all tasks
* **Quality settings**: Validation and quality control configuration
* **Tasks**: Individual annotation jobs with uploaded data
* **Organization**: Optional workspace for team collaboration

## Creating a Project

### Using the Web UI

1. Navigate to the **Projects** page
2. Click **Create new project**
3. Enter project details:
   * **Name**: Descriptive project name
   * **Labels**: Define your annotation schema (see [Labels & Attributes](/projects/labels-and-attributes))
   * **Bug tracker**: Optional issue tracking URL
4. Configure advanced settings (optional):
   * **Source storage**: Cloud storage for importing datasets
   * **Target storage**: Cloud storage for exporting annotations
5. Click **Submit** to create the project

### Using the REST API

Create a project with the `POST /api/projects` endpoint:

```bash theme={null}
curl -X POST "https://app.cvat.ai/api/projects" \
  -H "Authorization: Token <your-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Vehicle Detection Project",
    "labels": [
      {
        "name": "car",
        "color": "#ff0000",
        "type": "rectangle",
        "attributes": [
          {
            "name": "occluded",
            "input_type": "checkbox",
            "mutable": true,
            "values": ["false"]
          }
        ]
      },
      {
        "name": "pedestrian",
        "color": "#00ff00",
        "type": "rectangle"
      }
    ]
  }'
```

**Response** (201 Created):

```json theme={null}
{
  "id": 1,
  "name": "Vehicle Detection Project",
  "owner": {
    "id": 1,
    "username": "admin",
    "first_name": "John",
    "last_name": "Doe"
  },
  "assignee": null,
  "bug_tracker": "",
  "created_date": "2026-03-04T10:00:00.000Z",
  "updated_date": "2026-03-04T10:00:00.000Z",
  "status": "annotation",
  "dimension": null,
  "organization_id": null,
  "tasks": {
    "count": 0,
    "url": "https://app.cvat.ai/api/tasks?project_id=1"
  },
  "labels": {
    "url": "https://app.cvat.ai/api/labels?project_id=1"
  }
}
```

### Using the Python SDK

Install the SDK:

```bash theme={null}
pip install cvat-sdk
```

Create a project:

```python theme={null}
from cvat_sdk import Client, models

# Initialize client
client = Client(url="https://app.cvat.ai")
client.login(("username", "password"))

# Define labels
labels = [
    models.PatchedLabelRequest(
        name="car",
        color="#ff0000",
        type="rectangle",
        attributes=[
            models.AttributeRequest(
                name="vehicle_type",
                input_type="select",
                mutable=False,
                values=["sedan", "suv", "truck"],
                default_value="sedan"
            )
        ]
    ),
    models.PatchedLabelRequest(
        name="traffic_light",
        color="#ffff00",
        type="rectangle"
    )
]

# Create project
project = client.projects.create(
    spec=models.ProjectWriteRequest(
        name="Traffic Scene Analysis",
        labels=labels
    )
)

print(f"Created project ID: {project.id}")
print(f"Project name: {project.name}")
```

### Using the CLI

Install the CLI:

```bash theme={null}
pip install cvat-cli
```

Create a project:

```bash theme={null}
# Basic project creation
cvat-cli --auth user:password project create \
  --labels '[{"name": "person"}, {"name": "vehicle"}]' \
  "Pedestrian Detection"

# Create project with label attributes
cvat-cli --auth user:password project create \
  --labels '[
    {
      "name": "car",
      "color": "#ff0000",
      "attributes": [
        {
          "name": "color",
          "input_type": "select",
          "values": ["red", "blue", "white", "black"]
        }
      ]
    }
  ]' \
  "Vehicle Analysis"

# Create project from existing dataset
cvat-cli --auth user:password project create \
  --labels labels.json \
  --dataset_path ./coco_dataset.zip \
  --dataset_format "COCO 1.0" \
  "COCO Import Project"
```

## Project Configuration

### Organization Assignment

Projects can belong to an organization for team collaboration:

```python theme={null}
# Create project in an organization
project = client.projects.create(
    spec=models.ProjectWriteRequest(
        name="Team Project",
        labels=labels,
        organization_id=5  # Organization ID
    )
)
```

<Note>
  Only organization members can access projects within that organization. Projects without an organization are personal projects.
</Note>

### Storage Configuration

Configure cloud storage for importing and exporting data:

```python theme={null}
from cvat_sdk import models

project = client.projects.create(
    spec=models.ProjectWriteRequest(
        name="Cloud Storage Project",
        labels=labels,
        source_storage=models.StorageWrite(
            location="cloud_storage",
            cloud_storage_id=10
        ),
        target_storage=models.StorageWrite(
            location="cloud_storage",
            cloud_storage_id=11
        )
    )
)
```

**Storage options:**

* `local`: CVAT server storage (default)
* `cloud_storage`: AWS S3, Azure Blob, or Google Cloud Storage

### Bug Tracker Integration

Link an external issue tracker:

```bash theme={null}
curl -X POST "https://app.cvat.ai/api/projects" \
  -H "Authorization: Token <your-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Quality Control Project",
    "bug_tracker": "https://github.com/org/repo/issues",
    "labels": [...]
  }'
```

## Project Properties

Key project attributes returned by the API:

| Field             | Type     | Description                                             |
| ----------------- | -------- | ------------------------------------------------------- |
| `id`              | integer  | Unique project identifier                               |
| `name`            | string   | Project name                                            |
| `owner`           | object   | User who created the project                            |
| `assignee`        | object   | User assigned to the project                            |
| `status`          | string   | Project status: `annotation`, `validation`, `completed` |
| `created_date`    | datetime | Creation timestamp                                      |
| `updated_date`    | datetime | Last modification timestamp                             |
| `dimension`       | string   | Task dimension: `2d` or `3d`                            |
| `organization_id` | integer  | Organization ID (null for personal projects)            |
| `tasks`           | object   | Summary of project tasks                                |
| `labels`          | object   | Project label schema                                    |

## Best Practices

<AccordionGroup>
  <Accordion title="Design your label schema carefully">
    * Define all labels upfront before creating tasks
    * Use consistent naming conventions
    * Add attributes for important object properties
    * Consider label hierarchies for complex scenarios
    * Review [Labels & Attributes](/projects/labels-and-attributes) guide
  </Accordion>

  <Accordion title="Organize with meaningful names">
    * Use descriptive project names: "Traffic Scene Detection Q1 2026"
    * Include version numbers for iterative datasets
    * Add date ranges or data source information
  </Accordion>

  <Accordion title="Configure quality settings early">
    * Set up validation parameters at project creation
    * Define quality thresholds before annotation begins
    * Enable consensus annotation for critical tasks
    * See [Quality Control](/projects/quality-control) for details
  </Accordion>

  <Accordion title="Use organizations for team work">
    * Create projects within organizations for collaboration
    * Assign roles and permissions appropriately
    * Configure shared cloud storage for large datasets
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Managing Tasks" icon="tasks" href="/projects/managing-tasks">
    Create and manage annotation tasks within your project
  </Card>

  <Card title="Labels & Attributes" icon="tags" href="/projects/labels-and-attributes">
    Configure labels, attributes, and annotation schemas
  </Card>

  <Card title="Quality Control" icon="shield-check" href="/projects/quality-control">
    Set up validation workflows and quality metrics
  </Card>

  <Card title="API Reference" icon="code" href="/api/projects">
    View complete API documentation
  </Card>
</CardGroup>
