# Sprints

This resource lets you work with sprints of the specific agile board.
|  Resource  |     ```GENERIC /api/agiles/{agileID}/sprints ```    |
| --- | --- |
|  Returned entity  |  [Sprint](api-entity-Sprint.html). For the description of the entity attributes, see [Supported Fields](#Sprint-supported-fields) section.  |
|  Supported methods  |      * `GET`: [Read a List of Sprints](#get_all-Sprint-method).    * `POST`: [Add a New Sprint](#create-Sprint-method).    |

## Sprint attributes

Represents a sprint that is associated with an agile board. Each sprint can include issues from one or more projects.

### Related Resources

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

* [Sprints]()

* [Issue Sprints](resource-api-issues-issueID-sprints.html)

### Attributes

This table describes attributes of the `Sprint` 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 ID of the sprint. `Read-only`.  |
|  agile  |  [Agile](api-entity-Agile.html)  |  The agile board that the sprint belongs to. `Read-only`. `Can be null`.  |
|  name  |  String  |  Name of the sprint.  |
|  goal  |  String  |  Goal of the sprint. `Can be null`.  |
|  start  |  Long  |  The timestamp in milliseconds indicating the start date of the sprint. Stored as a unix timestamp at UTC. `Can be null`.  |
|  finish  |  Long  |  The timestamp in milliseconds indicating the end date of the sprint. Stored as a unix timestamp at UTC. `Can be null`.  |
|  archived  |  Boolean  |  Indicates whether the sprint is archived.  |
|  isDefault  |  Boolean  |  If `true`, then new issues that match a column on this board are automatically added to this sprint.  |
|  issues  |  [Array of Issues](api-entity-Issue.html)  |  Issues that are present on this sprint.  |
|  unresolvedIssuesCount  |  Int  |  Number of unresolved issues on this sprint. `Read-only`.  |
|  previousSprint  |  [Sprint](api-entity-Sprint.html)  |  If you provide this attribute when you create a new sprint, then all unresolved issues from this sprint will be moved to the newly created sprint.  |

## Read a List of Sprints

Get the list of all sprints of the agile board.

### Request syntax

```GENERIC
GET /api/agiles/{agileID}/sprints?{fields}&{$top}&{$skip}
```

|  null  |  The database ID of Sprint  |
| --- | --- |

### Request parameters

|  Parameter  |  Type  |  Description  |
| --- | --- | --- |
|  fields  |  String  |  A list of Sprint 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/agiles/108-4/sprints?fields=id,name,isDefault,issues(idReadable),goal,start,finish,unresolvedIssuesCount,archived
```

#### Sample response body

```JSON
[
  {
    "issues": [],
    "isDefault": false,
    "start": null,
    "unresolvedIssuesCount": 0,
    "archived": false,
    "finish": null,
    "goal": null,
    "name": "First sprint",
    "id": "109-5",
    "$type": "Sprint"
  },
  {
    "issues": [
      {
        "idReadable": "SP-35",
        "$type": "Issue"
      }
    ],
    "isDefault": false,
    "start": 1540159200000,
    "unresolvedIssuesCount": 1,
    "archived": false,
    "finish": 1541372400000,
    "goal": "Open most requested resources",
    "name": "Sprint 2: Add more resources",
    "id": "109-7",
    "$type": "Sprint"
  },
  {
    "issues": [
      {
        "idReadable": "SP-37",
        "$type": "Issue"
      }
    ],
    "isDefault": false,
    "start": 1541372400000,
    "unresolvedIssuesCount": 1,
    "archived": false,
    "finish": 1542582000000,
    "goal": "Prepare the bug-fix release",
    "name": "Sprint 3: Bug-fix release",
    "id": "109-8",
    "$type": "Sprint"
  },
  {
    "issues": [],
    "isDefault": false,
    "start": null,
    "unresolvedIssuesCount": 0,
    "archived": false,
    "finish": null,
    "goal": "Revise the list of public resources and entities",
    "name": "Sprint 5: Public resources revision",
    "id": "109-10",
    "$type": "Sprint"
  },
  {
    "issues": [],
    "isDefault": false,
    "start": null,
    "unresolvedIssuesCount": 0,
    "archived": false,
    "finish": null,
    "goal": null,
    "name": "Sprint 6: Only the name matters",
    "id": "109-11",
    "$type": "Sprint"
  }
]
```

## Add a New Sprint

Create a new sprint for the specified agile board.

Required fields: `name`.

### Required permissions

The user must have permissions to update the board.

### Request syntax

```GENERIC
POST /api/agiles/{agileID}/sprints?{fields}&{muteUpdateNotifications}
```

|  null  |  The database ID of Sprint  |
| --- | --- |

### Request parameters

|  Parameter  |  Type  |  Description  |
| --- | --- | --- |
|  fields  |  String  |  A list of Sprint attributes that should be returned in the response. If no field is specified, only the `entityID` is returned.  |
|  muteUpdateNotifications  |  Boolean  |  Set this parameter to `true` if no notifications should be sent on changes made by this request. This doesn't mute notifications sent by any workflow rules. Using this parameter requires Apply Commands Silently permission in all projects affected by the request. Available since 2021.3.  |

### Sample

#### Sample request

```CURL
https://example.youtrack.cloud/api/agiles/108-4/sprints?fields=id,archived,start,finish,goal,isDefault,name,previousSprint(finish,name,id),unresolvedIssuesCount,issues(id,summary,description,idReadable)
```

#### Sample request body

```JSON
{
  "start":1572562800000,
  "finish":1575068400000,
  "goal":"Prepare the public BETA release",
  "name":"Public BETA release",
  "previousSprint":{"id":"109-10"}
}
```

#### Sample response body

```JSON
{
  "issues": [],
  "isDefault": false,
  "start": 1572562800000,
  "unresolvedIssuesCount": 0,
  "previousSprint": null,
  "archived": false,
  "finish": 1575068400000,
  "goal": "Prepare the public BETA release",
  "name": "Public BETA release",
  "id": "109-31",
  "$type": "Sprint"
}
```

