# Projects

This resource provides access to projects.
|  Resource  |     ```GENERIC /api/admin/projects ```    |
| --- | --- |
|  Returned entity  |  [Project](api-entity-Project.html). For the description of the entity attributes, see [Supported Fields](#Project-supported-fields) section.  |
|  Supported methods  |      * `GET`: [Read a List of Projects](#get_all-Project-method).    * `POST`: [Add a New Project](#create-Project-method).    |
|  Supported sub-resources  |      * [/api/admin/projects/{projectID}](operations-api-admin-projects.html)    * [/api/admin/projects/{projectID}/customFields](resource-api-admin-projects-projectID-customFields.html)    * [/api/admin/projects/{projectID}/timeTrackingSettings](resource-api-admin-projects-projectID-timeTrackingSettings.html)    * [/api/admin/projects/{projectID}/team/users](resource-api-admin-projects-projectID-team-users.html)    * [/api/admin/projects/{projectID}/team/ownUsers](resource-api-admin-projects-projectID-team-ownUsers.html)    * [/api/admin/projects/{projectID}/team/groups](resource-api-admin-projects-projectID-team-groups.html)    * [/api/admin/projects/{projectID}/issues](resource-api-admin-projects-projectID-issues.html)    * [/api/admin/projects/{projectID}/team](resource-api-admin-projects-projectID-team.html)    * [/api/admin/projects/{projectID}/articles](resource-api-admin-projects-projectID-articles.html)    |

## Project attributes

Represents a YouTrack project.

### Related Resources

Below you can find the list of resources that let you work with this entity.

* [Projects]()

* [Issue Project](resource-api-issues-issueID-project.html)

Extends [IssueFolder](api-entity-IssueFolder.html)

### Attributes

This table describes attributes of the `Project` entity.

* To receive an attribute in the response from the server, specify it explicitly in the `fields` request parameter.

* To update an attribute, provide it in the body of a POST request.

|  Field  |  Type  |  Description  |
| --- | --- | --- |
|  id  |  String  |  The database ID of the project. `Read-only`.  |
|  archived  |  Boolean  |  If the project is currently archived, this property is `true`.  |
|  createdBy  |  [User](api-entity-User.html)  |  The user who created the project. `Can be null`.  |
|  customFields  |  [ProjectCustomField](api-entity-ProjectCustomField.html)  |  The set of custom fields that are available in the project.  |
|  description  |  String  |  The description of the project as shown on the project profile page. `Can be null`.  |
|  fromEmail  |  String  |  The email address that is used to send notifications for the project. If a 'From' address is not set for the project, the default 'From' address for the YouTrack server is returned.  |
|  iconUrl  |  String  |  The URL of the icon of the project. `Read-only`. `Can be null`.  |
|  issues  |  [Array of Issues](api-entity-Issue.html)  |  A list of all issues that belong to the project.  |
|  leader  |  [User](api-entity-User.html)  |  The user who is set as the project owner.  |
|  name  |  String  |  The name of the project.  |
|  replyToEmail  |  String  |  The email address that is used as the reply email to send notifications for the project. If it is not set for the project, the default address for the YouTrack server is returned. `Can be null`.  |
|  shortName  |  String  |  The ID of the project. This short name is also a prefix for an issue ID.  |
|  startingNumber  |  Long  |  Starting number for issues in project. This property can be set only during creation of the new project.  |
|  team  |  [ProjectTeam](api-entity-ProjectTeam.html)  |  Read-only user group representing all members of the project team.    Available since YouTrack 2026.1.    `Read-only`.  |
|  template  |  Boolean  |  If `true`, this project is a template.  |

## Read a List of Projects

Get a list of all available projects in the system.

### Request syntax

```GENERIC
GET /api/admin/projects?{fields}&{$top}&{$skip}
```

|  null  |  The database ID of Project  |
| --- | --- |

### Request parameters

|  Parameter  |  Type  |  Description  |
| --- | --- | --- |
|  fields  |  String  |  A list of Project attributes that should be returned in the response. If no field is specified, only the `entityID` is returned.  |
|  $skip  |  Int  |  Optional. Lets you set a number of returned entities to skip before returning the first one.  |
|  $top  |  Int  |     Optional. Lets you specify the maximum number of entries that are returned in the response. If you don't set the $top value, the server limits the maximum number of returned entries.       The server returns a maximum of 42 entries for most resources that return collections. For more information, see [Pagination](api-concept-pagination.html).     |

### Sample

#### Sample request

```CURL
https://example.youtrack.cloud/api/admin/projects?fields=id,name,shortName,createdBy(login,name,id),leader(login,name,id),key&$top=2
```

#### Sample response body

```JSON
[
  {
    "shortName": "KNBN",
    "leader": {
      "login": "john.doe",
      "name": "John Doe",
      "id": "1-2",
      "$type": "User"
    },
    "createdBy": {
      "login": "john.doe",
      "name": "John Doe",
      "id": "1-2",
      "$type": "User"
    },
    "name": "Another Kanban project from REST",
    "id": "0-14",
    "$type": "Project"
  },
  {
    "shortName": "SCR",
    "leader": {
      "login": "john.doe",
      "name": "John Doe",
      "id": "1-2",
      "$type": "User"
    },
    "createdBy": {
      "login": "john.doe",
      "name": "John Doe",
      "id": "1-2",
      "$type": "User"
    },
    "name": "AnotherScrum project from REST",
    "id": "0-10",
    "$type": "Project"
  }
]
```

## Add a New Project

Create a project in YouTrack.

Required fields: `name`, `shortName`, `leader` (`id` - the database of the project owner user).

To create a project that is based on a template, like Scrum or Kanban, add `template` query parameter to the endpoint URL. For reference, see Sample 2 below.

### Required permissions

Requires permissions: Create Project

### Request syntax

```GENERIC
POST /api/admin/projects?{fields}&{template}
```

|  null  |  The database ID of Project  |
| --- | --- |

### Request parameters

|  Parameter  |  Type  |  Description  |
| --- | --- | --- |
|  fields  |  String  |  A list of Project attributes that should be returned in the response. If no field is specified, only the `entityID` is returned.  |
|  template  |  String  |  If the `template` is not specified, then the new project will use the default settings. Optional. Lets you specify the template to use for the new project. Possible values: `scrum`, `kanban`.  |

### Sample 1

This sample shows a minimal viable request to create a new project. To check the attributes of a newly created project, we added `fields` request parameters.

#### Sample request

```CURL
https://example.youtrack.cloud/api/admin/projects?fields=id,shortName,name,leader(id,login,name)
```

#### Sample request body

```JSON
{
  "description": "A new project created from rest api",
  "name": "GRA Project",
  "shortName": "GRP",
  "leader": {
    "id": "1-2"
  }
}
```

#### Sample response body

```JSON
{
  "shortName": "NP",
  "leader": {
    "login": "john.doe",
    "name": "John Doe",
    "id": "1-2",
    "$type": "User"
  },
  "name": "New Project",
  "id": "0-16",
  "$type": "Project"
}
```

### Sample 2

This sample shows a request to create a new project with the Scrum template.

#### Sample request

```CURL
https://example.youtrack.cloud/api/admin/projects?fields=id,shortName,name,leader(id,login,name)&template=scrum
```

#### Sample request body

```JSON
{
  "description": "A new project created with the Scrum template",
  "name": "New Scrum Project",
  "shortName": "NSCP",
  "leader":{
    "id":"1-2"
  }
}
```

#### Sample response body

```JSON
{
  "shortName": "NSCP",
  "leader": {
    "login": "minnie.terry",
    "name": "Minnie Terry",
    "id": "1-2",
    "$type": "User"
  },
  "name": "New Scrum Project",
  "id": "81-106",
  "$type": "Project"
}
```

