# Stackly API reference (complete)

> The complete reference for every resource and operation of the Stackly API.

Source: https://stacklyhq.xyz/docs/api-reference/full

This is the complete reference for the Stackly API. It lists every resource and every operation in one page, so you can search it with your browser or with the search endpoint. The base path is /api/v1 and every response is JSON. The default page size is 50 and the maximum is 200.

Each section below has the same parts: a method and path, the parameters, a request example, a response example, the errors and a short note. Authentication uses a bearer token, described in the Authentication page of this documentation. Rate limits apply per workspace per minute: Free 60, Pro 600, Business 3,000.

The resources are projects, tasks, subtasks, comments, users, teams, labels, statuses, attachments, webhooks, automations, reports, milestones, sprints, workspaces and integrations. The operations are list, get, create, update, delete, archive, restore, search, bulk update and export. Sections are numbered from 1 to 160 in that order.

## 1. projects.list

GET `/api/v1/projects`

Scope: projects:read. Rate limit: counts as one request. Idempotency: not needed.

### projects.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the project. Maximum length 50 characters. |
| `name` | integer | yes | The name of the project. Maximum length 75 characters. |
| `description` | boolean | no | The description of the project. Maximum length 100 characters. |
| `status` | string | no | The status of the project. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the project. Maximum length 150 characters. |

### projects.list request

```
curl -X GET https://api.stackly.test/api/v1/projects \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.list notes

Use this call for list operations on projects. Results are ordered by id.

## 2. projects.get

GET `/api/v1/projects/{id}`

Scope: projects:read. Rate limit: counts as one request. Idempotency: not needed.

### projects.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the project. Maximum length 50 characters. |
| `description` | integer | yes | The description of the project. Maximum length 75 characters. |
| `status` | boolean | no | The status of the project. Maximum length 100 characters. |
| `priority` | string | no | The priority of the project. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the project. Maximum length 150 characters. |

### projects.get request

```
curl -X GET https://api.stackly.test/api/v1/projects/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.get notes

Use this call for get operations on projects. Results are ordered by id.

## 3. projects.create

POST `/api/v1/projects`

Scope: projects:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### projects.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the project. Maximum length 50 characters. |
| `status` | integer | yes | The status of the project. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the project. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the project. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the project. Maximum length 150 characters. |

### projects.create request

```
curl -X POST https://api.stackly.test/api/v1/projects \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.create notes

Use this call for create operations on projects. Results are ordered by id.

## 4. projects.update

PATCH `/api/v1/projects/{id}`

Scope: projects:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### projects.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the project. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the project. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the project. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the project. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the project. Maximum length 150 characters. |

### projects.update request

```
curl -X PATCH https://api.stackly.test/api/v1/projects/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.update notes

Use this call for update operations on projects. Results are ordered by id.

## 5. projects.delete

DELETE `/api/v1/projects/{id}`

Scope: projects:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### projects.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the project. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the project. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the project. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the project. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the project. Maximum length 150 characters. |

### projects.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/projects/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.delete notes

Use this call for delete operations on projects. Results are ordered by id.

## 6. projects.archive

POST `/api/v1/projects/{id}/archive`

Scope: projects:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### projects.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the project. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the project. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the project. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the project. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the project. Maximum length 150 characters. |

### projects.archive request

```
curl -X POST https://api.stackly.test/api/v1/projects/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.archive notes

Use this call for archive operations on projects. Results are ordered by id.

## 7. projects.restore

POST `/api/v1/projects/{id}/restore`

Scope: projects:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### projects.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the project. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the project. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the project. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the project. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the project. Maximum length 150 characters. |

### projects.restore request

```
curl -X POST https://api.stackly.test/api/v1/projects/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.restore notes

Use this call for restore operations on projects. Results are ordered by id.

## 8. projects.search

GET `/api/v1/projects/search`

Scope: projects:read. Rate limit: counts as one request. Idempotency: not needed.

### projects.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the project. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the project. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the project. Maximum length 100 characters. |
| `labels` | string | no | The labels of the project. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the project. Maximum length 150 characters. |

### projects.search request

```
curl -X GET https://api.stackly.test/api/v1/projects/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.search notes

Use this call for search operations on projects. Results are ordered by id.

## 9. projects.bulk_update

POST `/api/v1/projects/bulk`

Scope: projects:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### projects.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the project. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the project. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the project. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the project. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the project. Maximum length 150 characters. |

### projects.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/projects/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.bulk_update notes

Use this call for bulk update operations on projects. Results are ordered by id.

## 10. projects.export

POST `/api/v1/projects/export`

Scope: projects:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### projects.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the project. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the project. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the project. Maximum length 100 characters. |
| `archived` | string | no | The archived of the project. Maximum length 125 characters. |
| `url` | integer | no | The url of the project. Maximum length 150 characters. |

### projects.export request

```
curl -X POST https://api.stackly.test/api/v1/projects/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### projects.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### projects.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### projects.export notes

Use this call for export operations on projects. Results are ordered by id.

## 11. tasks.list

GET `/api/v1/tasks`

Scope: tasks:read. Rate limit: counts as one request. Idempotency: not needed.

### tasks.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the task. Maximum length 50 characters. |
| `description` | integer | yes | The description of the task. Maximum length 75 characters. |
| `status` | boolean | no | The status of the task. Maximum length 100 characters. |
| `priority` | string | no | The priority of the task. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the task. Maximum length 150 characters. |

### tasks.list request

```
curl -X GET https://api.stackly.test/api/v1/tasks \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.list notes

Use this call for list operations on tasks. Results are ordered by id.

## 12. tasks.get

GET `/api/v1/tasks/{id}`

Scope: tasks:read. Rate limit: counts as one request. Idempotency: not needed.

### tasks.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the task. Maximum length 50 characters. |
| `status` | integer | yes | The status of the task. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the task. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the task. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the task. Maximum length 150 characters. |

### tasks.get request

```
curl -X GET https://api.stackly.test/api/v1/tasks/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.get notes

Use this call for get operations on tasks. Results are ordered by id.

## 13. tasks.create

POST `/api/v1/tasks`

Scope: tasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### tasks.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the task. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the task. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the task. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the task. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the task. Maximum length 150 characters. |

### tasks.create request

```
curl -X POST https://api.stackly.test/api/v1/tasks \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.create notes

Use this call for create operations on tasks. Results are ordered by id.

## 14. tasks.update

PATCH `/api/v1/tasks/{id}`

Scope: tasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### tasks.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the task. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the task. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the task. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the task. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the task. Maximum length 150 characters. |

### tasks.update request

```
curl -X PATCH https://api.stackly.test/api/v1/tasks/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.update notes

Use this call for update operations on tasks. Results are ordered by id.

## 15. tasks.delete

DELETE `/api/v1/tasks/{id}`

Scope: tasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### tasks.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the task. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the task. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the task. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the task. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the task. Maximum length 150 characters. |

### tasks.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/tasks/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.delete notes

Use this call for delete operations on tasks. Results are ordered by id.

## 16. tasks.archive

POST `/api/v1/tasks/{id}/archive`

Scope: tasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### tasks.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the task. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the task. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the task. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the task. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the task. Maximum length 150 characters. |

### tasks.archive request

```
curl -X POST https://api.stackly.test/api/v1/tasks/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.archive notes

Use this call for archive operations on tasks. Results are ordered by id.

## 17. tasks.restore

POST `/api/v1/tasks/{id}/restore`

Scope: tasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### tasks.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the task. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the task. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the task. Maximum length 100 characters. |
| `labels` | string | no | The labels of the task. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the task. Maximum length 150 characters. |

### tasks.restore request

```
curl -X POST https://api.stackly.test/api/v1/tasks/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.restore notes

Use this call for restore operations on tasks. Results are ordered by id.

## 18. tasks.search

GET `/api/v1/tasks/search`

Scope: tasks:read. Rate limit: counts as one request. Idempotency: not needed.

### tasks.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the task. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the task. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the task. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the task. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the task. Maximum length 150 characters. |

### tasks.search request

```
curl -X GET https://api.stackly.test/api/v1/tasks/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.search notes

Use this call for search operations on tasks. Results are ordered by id.

## 19. tasks.bulk_update

POST `/api/v1/tasks/bulk`

Scope: tasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### tasks.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the task. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the task. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the task. Maximum length 100 characters. |
| `archived` | string | no | The archived of the task. Maximum length 125 characters. |
| `url` | integer | no | The url of the task. Maximum length 150 characters. |

### tasks.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/tasks/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.bulk_update notes

Use this call for bulk update operations on tasks. Results are ordered by id.

## 20. tasks.export

POST `/api/v1/tasks/export`

Scope: tasks:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### tasks.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the task. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the task. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the task. Maximum length 100 characters. |
| `url` | string | no | The url of the task. Maximum length 125 characters. |
| `id` | integer | no | The id of the task. Maximum length 150 characters. |

### tasks.export request

```
curl -X POST https://api.stackly.test/api/v1/tasks/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### tasks.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### tasks.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### tasks.export notes

Use this call for export operations on tasks. Results are ordered by id.

## 21. subtasks.list

GET `/api/v1/subtasks`

Scope: subtasks:read. Rate limit: counts as one request. Idempotency: not needed.

### subtasks.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the subtask. Maximum length 50 characters. |
| `status` | integer | yes | The status of the subtask. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the subtask. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the subtask. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the subtask. Maximum length 150 characters. |

### subtasks.list request

```
curl -X GET https://api.stackly.test/api/v1/subtasks \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.list notes

Use this call for list operations on subtasks. Results are ordered by id.

## 22. subtasks.get

GET `/api/v1/subtasks/{id}`

Scope: subtasks:read. Rate limit: counts as one request. Idempotency: not needed.

### subtasks.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the subtask. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the subtask. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the subtask. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the subtask. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the subtask. Maximum length 150 characters. |

### subtasks.get request

```
curl -X GET https://api.stackly.test/api/v1/subtasks/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.get notes

Use this call for get operations on subtasks. Results are ordered by id.

## 23. subtasks.create

POST `/api/v1/subtasks`

Scope: subtasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### subtasks.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the subtask. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the subtask. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the subtask. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the subtask. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the subtask. Maximum length 150 characters. |

### subtasks.create request

```
curl -X POST https://api.stackly.test/api/v1/subtasks \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.create notes

Use this call for create operations on subtasks. Results are ordered by id.

## 24. subtasks.update

PATCH `/api/v1/subtasks/{id}`

Scope: subtasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### subtasks.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the subtask. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the subtask. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the subtask. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the subtask. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the subtask. Maximum length 150 characters. |

### subtasks.update request

```
curl -X PATCH https://api.stackly.test/api/v1/subtasks/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.update notes

Use this call for update operations on subtasks. Results are ordered by id.

## 25. subtasks.delete

DELETE `/api/v1/subtasks/{id}`

Scope: subtasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### subtasks.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the subtask. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the subtask. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the subtask. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the subtask. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the subtask. Maximum length 150 characters. |

### subtasks.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/subtasks/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.delete notes

Use this call for delete operations on subtasks. Results are ordered by id.

## 26. subtasks.archive

POST `/api/v1/subtasks/{id}/archive`

Scope: subtasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### subtasks.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the subtask. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the subtask. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the subtask. Maximum length 100 characters. |
| `labels` | string | no | The labels of the subtask. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the subtask. Maximum length 150 characters. |

### subtasks.archive request

```
curl -X POST https://api.stackly.test/api/v1/subtasks/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.archive notes

Use this call for archive operations on subtasks. Results are ordered by id.

## 27. subtasks.restore

POST `/api/v1/subtasks/{id}/restore`

Scope: subtasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### subtasks.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the subtask. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the subtask. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the subtask. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the subtask. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the subtask. Maximum length 150 characters. |

### subtasks.restore request

```
curl -X POST https://api.stackly.test/api/v1/subtasks/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.restore notes

Use this call for restore operations on subtasks. Results are ordered by id.

## 28. subtasks.search

GET `/api/v1/subtasks/search`

Scope: subtasks:read. Rate limit: counts as one request. Idempotency: not needed.

### subtasks.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the subtask. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the subtask. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the subtask. Maximum length 100 characters. |
| `archived` | string | no | The archived of the subtask. Maximum length 125 characters. |
| `url` | integer | no | The url of the subtask. Maximum length 150 characters. |

### subtasks.search request

```
curl -X GET https://api.stackly.test/api/v1/subtasks/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.search notes

Use this call for search operations on subtasks. Results are ordered by id.

## 29. subtasks.bulk_update

POST `/api/v1/subtasks/bulk`

Scope: subtasks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### subtasks.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the subtask. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the subtask. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the subtask. Maximum length 100 characters. |
| `url` | string | no | The url of the subtask. Maximum length 125 characters. |
| `id` | integer | no | The id of the subtask. Maximum length 150 characters. |

### subtasks.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/subtasks/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.bulk_update notes

Use this call for bulk update operations on subtasks. Results are ordered by id.

## 30. subtasks.export

POST `/api/v1/subtasks/export`

Scope: subtasks:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### subtasks.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the subtask. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the subtask. Maximum length 75 characters. |
| `url` | boolean | no | The url of the subtask. Maximum length 100 characters. |
| `id` | string | no | The id of the subtask. Maximum length 125 characters. |
| `name` | integer | no | The name of the subtask. Maximum length 150 characters. |

### subtasks.export request

```
curl -X POST https://api.stackly.test/api/v1/subtasks/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### subtasks.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### subtasks.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### subtasks.export notes

Use this call for export operations on subtasks. Results are ordered by id.

## 31. comments.list

GET `/api/v1/comments`

Scope: comments:read. Rate limit: counts as one request. Idempotency: not needed.

### comments.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the comment. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the comment. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the comment. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the comment. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the comment. Maximum length 150 characters. |

### comments.list request

```
curl -X GET https://api.stackly.test/api/v1/comments \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.list notes

Use this call for list operations on comments. Results are ordered by id.

## 32. comments.get

GET `/api/v1/comments/{id}`

Scope: comments:read. Rate limit: counts as one request. Idempotency: not needed.

### comments.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the comment. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the comment. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the comment. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the comment. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the comment. Maximum length 150 characters. |

### comments.get request

```
curl -X GET https://api.stackly.test/api/v1/comments/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.get notes

Use this call for get operations on comments. Results are ordered by id.

## 33. comments.create

POST `/api/v1/comments`

Scope: comments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### comments.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the comment. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the comment. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the comment. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the comment. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the comment. Maximum length 150 characters. |

### comments.create request

```
curl -X POST https://api.stackly.test/api/v1/comments \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.create notes

Use this call for create operations on comments. Results are ordered by id.

## 34. comments.update

PATCH `/api/v1/comments/{id}`

Scope: comments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### comments.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the comment. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the comment. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the comment. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the comment. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the comment. Maximum length 150 characters. |

### comments.update request

```
curl -X PATCH https://api.stackly.test/api/v1/comments/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.update notes

Use this call for update operations on comments. Results are ordered by id.

## 35. comments.delete

DELETE `/api/v1/comments/{id}`

Scope: comments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### comments.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the comment. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the comment. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the comment. Maximum length 100 characters. |
| `labels` | string | no | The labels of the comment. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the comment. Maximum length 150 characters. |

### comments.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/comments/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.delete notes

Use this call for delete operations on comments. Results are ordered by id.

## 36. comments.archive

POST `/api/v1/comments/{id}/archive`

Scope: comments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### comments.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the comment. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the comment. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the comment. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the comment. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the comment. Maximum length 150 characters. |

### comments.archive request

```
curl -X POST https://api.stackly.test/api/v1/comments/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.archive notes

Use this call for archive operations on comments. Results are ordered by id.

## 37. comments.restore

POST `/api/v1/comments/{id}/restore`

Scope: comments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### comments.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the comment. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the comment. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the comment. Maximum length 100 characters. |
| `archived` | string | no | The archived of the comment. Maximum length 125 characters. |
| `url` | integer | no | The url of the comment. Maximum length 150 characters. |

### comments.restore request

```
curl -X POST https://api.stackly.test/api/v1/comments/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.restore notes

Use this call for restore operations on comments. Results are ordered by id.

## 38. comments.search

GET `/api/v1/comments/search`

Scope: comments:read. Rate limit: counts as one request. Idempotency: not needed.

### comments.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the comment. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the comment. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the comment. Maximum length 100 characters. |
| `url` | string | no | The url of the comment. Maximum length 125 characters. |
| `id` | integer | no | The id of the comment. Maximum length 150 characters. |

### comments.search request

```
curl -X GET https://api.stackly.test/api/v1/comments/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.search notes

Use this call for search operations on comments. Results are ordered by id.

## 39. comments.bulk_update

POST `/api/v1/comments/bulk`

Scope: comments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### comments.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the comment. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the comment. Maximum length 75 characters. |
| `url` | boolean | no | The url of the comment. Maximum length 100 characters. |
| `id` | string | no | The id of the comment. Maximum length 125 characters. |
| `name` | integer | no | The name of the comment. Maximum length 150 characters. |

### comments.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/comments/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.bulk_update notes

Use this call for bulk update operations on comments. Results are ordered by id.

## 40. comments.export

POST `/api/v1/comments/export`

Scope: comments:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### comments.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the comment. Maximum length 50 characters. |
| `url` | integer | yes | The url of the comment. Maximum length 75 characters. |
| `id` | boolean | no | The id of the comment. Maximum length 100 characters. |
| `name` | string | no | The name of the comment. Maximum length 125 characters. |
| `description` | integer | no | The description of the comment. Maximum length 150 characters. |

### comments.export request

```
curl -X POST https://api.stackly.test/api/v1/comments/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### comments.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### comments.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### comments.export notes

Use this call for export operations on comments. Results are ordered by id.

## 41. users.list

GET `/api/v1/users`

Scope: users:read. Rate limit: counts as one request. Idempotency: not needed.

### users.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the user. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the user. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the user. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the user. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the user. Maximum length 150 characters. |

### users.list request

```
curl -X GET https://api.stackly.test/api/v1/users \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.list notes

Use this call for list operations on users. Results are ordered by id.

## 42. users.get

GET `/api/v1/users/{id}`

Scope: users:read. Rate limit: counts as one request. Idempotency: not needed.

### users.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the user. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the user. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the user. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the user. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the user. Maximum length 150 characters. |

### users.get request

```
curl -X GET https://api.stackly.test/api/v1/users/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.get notes

Use this call for get operations on users. Results are ordered by id.

## 43. users.create

POST `/api/v1/users`

Scope: users:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### users.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the user. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the user. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the user. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the user. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the user. Maximum length 150 characters. |

### users.create request

```
curl -X POST https://api.stackly.test/api/v1/users \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.create notes

Use this call for create operations on users. Results are ordered by id.

## 44. users.update

PATCH `/api/v1/users/{id}`

Scope: users:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### users.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the user. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the user. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the user. Maximum length 100 characters. |
| `labels` | string | no | The labels of the user. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the user. Maximum length 150 characters. |

### users.update request

```
curl -X PATCH https://api.stackly.test/api/v1/users/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.update notes

Use this call for update operations on users. Results are ordered by id.

## 45. users.delete

DELETE `/api/v1/users/{id}`

Scope: users:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### users.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the user. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the user. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the user. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the user. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the user. Maximum length 150 characters. |

### users.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/users/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.delete notes

Use this call for delete operations on users. Results are ordered by id.

## 46. users.archive

POST `/api/v1/users/{id}/archive`

Scope: users:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### users.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the user. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the user. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the user. Maximum length 100 characters. |
| `archived` | string | no | The archived of the user. Maximum length 125 characters. |
| `url` | integer | no | The url of the user. Maximum length 150 characters. |

### users.archive request

```
curl -X POST https://api.stackly.test/api/v1/users/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.archive notes

Use this call for archive operations on users. Results are ordered by id.

## 47. users.restore

POST `/api/v1/users/{id}/restore`

Scope: users:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### users.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the user. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the user. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the user. Maximum length 100 characters. |
| `url` | string | no | The url of the user. Maximum length 125 characters. |
| `id` | integer | no | The id of the user. Maximum length 150 characters. |

### users.restore request

```
curl -X POST https://api.stackly.test/api/v1/users/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.restore notes

Use this call for restore operations on users. Results are ordered by id.

## 48. users.search

GET `/api/v1/users/search`

Scope: users:read. Rate limit: counts as one request. Idempotency: not needed.

### users.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the user. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the user. Maximum length 75 characters. |
| `url` | boolean | no | The url of the user. Maximum length 100 characters. |
| `id` | string | no | The id of the user. Maximum length 125 characters. |
| `name` | integer | no | The name of the user. Maximum length 150 characters. |

### users.search request

```
curl -X GET https://api.stackly.test/api/v1/users/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.search notes

Use this call for search operations on users. Results are ordered by id.

## 49. users.bulk_update

POST `/api/v1/users/bulk`

Scope: users:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### users.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the user. Maximum length 50 characters. |
| `url` | integer | yes | The url of the user. Maximum length 75 characters. |
| `id` | boolean | no | The id of the user. Maximum length 100 characters. |
| `name` | string | no | The name of the user. Maximum length 125 characters. |
| `description` | integer | no | The description of the user. Maximum length 150 characters. |

### users.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/users/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.bulk_update notes

Use this call for bulk update operations on users. Results are ordered by id.

## 50. users.export

POST `/api/v1/users/export`

Scope: users:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### users.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the user. Maximum length 50 characters. |
| `id` | integer | yes | The id of the user. Maximum length 75 characters. |
| `name` | boolean | no | The name of the user. Maximum length 100 characters. |
| `description` | string | no | The description of the user. Maximum length 125 characters. |
| `status` | integer | no | The status of the user. Maximum length 150 characters. |

### users.export request

```
curl -X POST https://api.stackly.test/api/v1/users/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### users.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### users.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### users.export notes

Use this call for export operations on users. Results are ordered by id.

## 51. teams.list

GET `/api/v1/teams`

Scope: teams:read. Rate limit: counts as one request. Idempotency: not needed.

### teams.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the team. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the team. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the team. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the team. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the team. Maximum length 150 characters. |

### teams.list request

```
curl -X GET https://api.stackly.test/api/v1/teams \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.list notes

Use this call for list operations on teams. Results are ordered by id.

## 52. teams.get

GET `/api/v1/teams/{id}`

Scope: teams:read. Rate limit: counts as one request. Idempotency: not needed.

### teams.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the team. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the team. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the team. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the team. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the team. Maximum length 150 characters. |

### teams.get request

```
curl -X GET https://api.stackly.test/api/v1/teams/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.get notes

Use this call for get operations on teams. Results are ordered by id.

## 53. teams.create

POST `/api/v1/teams`

Scope: teams:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### teams.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the team. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the team. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the team. Maximum length 100 characters. |
| `labels` | string | no | The labels of the team. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the team. Maximum length 150 characters. |

### teams.create request

```
curl -X POST https://api.stackly.test/api/v1/teams \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.create notes

Use this call for create operations on teams. Results are ordered by id.

## 54. teams.update

PATCH `/api/v1/teams/{id}`

Scope: teams:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### teams.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the team. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the team. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the team. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the team. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the team. Maximum length 150 characters. |

### teams.update request

```
curl -X PATCH https://api.stackly.test/api/v1/teams/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.update notes

Use this call for update operations on teams. Results are ordered by id.

## 55. teams.delete

DELETE `/api/v1/teams/{id}`

Scope: teams:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### teams.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the team. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the team. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the team. Maximum length 100 characters. |
| `archived` | string | no | The archived of the team. Maximum length 125 characters. |
| `url` | integer | no | The url of the team. Maximum length 150 characters. |

### teams.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/teams/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.delete notes

Use this call for delete operations on teams. Results are ordered by id.

## 56. teams.archive

POST `/api/v1/teams/{id}/archive`

Scope: teams:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### teams.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the team. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the team. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the team. Maximum length 100 characters. |
| `url` | string | no | The url of the team. Maximum length 125 characters. |
| `id` | integer | no | The id of the team. Maximum length 150 characters. |

### teams.archive request

```
curl -X POST https://api.stackly.test/api/v1/teams/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.archive notes

Use this call for archive operations on teams. Results are ordered by id.

## 57. teams.restore

POST `/api/v1/teams/{id}/restore`

Scope: teams:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### teams.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the team. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the team. Maximum length 75 characters. |
| `url` | boolean | no | The url of the team. Maximum length 100 characters. |
| `id` | string | no | The id of the team. Maximum length 125 characters. |
| `name` | integer | no | The name of the team. Maximum length 150 characters. |

### teams.restore request

```
curl -X POST https://api.stackly.test/api/v1/teams/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.restore notes

Use this call for restore operations on teams. Results are ordered by id.

## 58. teams.search

GET `/api/v1/teams/search`

Scope: teams:read. Rate limit: counts as one request. Idempotency: not needed.

### teams.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the team. Maximum length 50 characters. |
| `url` | integer | yes | The url of the team. Maximum length 75 characters. |
| `id` | boolean | no | The id of the team. Maximum length 100 characters. |
| `name` | string | no | The name of the team. Maximum length 125 characters. |
| `description` | integer | no | The description of the team. Maximum length 150 characters. |

### teams.search request

```
curl -X GET https://api.stackly.test/api/v1/teams/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.search notes

Use this call for search operations on teams. Results are ordered by id.

## 59. teams.bulk_update

POST `/api/v1/teams/bulk`

Scope: teams:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### teams.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the team. Maximum length 50 characters. |
| `id` | integer | yes | The id of the team. Maximum length 75 characters. |
| `name` | boolean | no | The name of the team. Maximum length 100 characters. |
| `description` | string | no | The description of the team. Maximum length 125 characters. |
| `status` | integer | no | The status of the team. Maximum length 150 characters. |

### teams.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/teams/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.bulk_update notes

Use this call for bulk update operations on teams. Results are ordered by id.

## 60. teams.export

POST `/api/v1/teams/export`

Scope: teams:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### teams.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the team. Maximum length 50 characters. |
| `name` | integer | yes | The name of the team. Maximum length 75 characters. |
| `description` | boolean | no | The description of the team. Maximum length 100 characters. |
| `status` | string | no | The status of the team. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the team. Maximum length 150 characters. |

### teams.export request

```
curl -X POST https://api.stackly.test/api/v1/teams/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### teams.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### teams.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### teams.export notes

Use this call for export operations on teams. Results are ordered by id.

## 61. labels.list

GET `/api/v1/labels`

Scope: labels:read. Rate limit: counts as one request. Idempotency: not needed.

### labels.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the label. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the label. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the label. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the label. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the label. Maximum length 150 characters. |

### labels.list request

```
curl -X GET https://api.stackly.test/api/v1/labels \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.list notes

Use this call for list operations on labels. Results are ordered by id.

## 62. labels.get

GET `/api/v1/labels/{id}`

Scope: labels:read. Rate limit: counts as one request. Idempotency: not needed.

### labels.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the label. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the label. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the label. Maximum length 100 characters. |
| `labels` | string | no | The labels of the label. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the label. Maximum length 150 characters. |

### labels.get request

```
curl -X GET https://api.stackly.test/api/v1/labels/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.get notes

Use this call for get operations on labels. Results are ordered by id.

## 63. labels.create

POST `/api/v1/labels`

Scope: labels:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### labels.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the label. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the label. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the label. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the label. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the label. Maximum length 150 characters. |

### labels.create request

```
curl -X POST https://api.stackly.test/api/v1/labels \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.create notes

Use this call for create operations on labels. Results are ordered by id.

## 64. labels.update

PATCH `/api/v1/labels/{id}`

Scope: labels:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### labels.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the label. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the label. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the label. Maximum length 100 characters. |
| `archived` | string | no | The archived of the label. Maximum length 125 characters. |
| `url` | integer | no | The url of the label. Maximum length 150 characters. |

### labels.update request

```
curl -X PATCH https://api.stackly.test/api/v1/labels/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.update notes

Use this call for update operations on labels. Results are ordered by id.

## 65. labels.delete

DELETE `/api/v1/labels/{id}`

Scope: labels:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### labels.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the label. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the label. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the label. Maximum length 100 characters. |
| `url` | string | no | The url of the label. Maximum length 125 characters. |
| `id` | integer | no | The id of the label. Maximum length 150 characters. |

### labels.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/labels/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.delete notes

Use this call for delete operations on labels. Results are ordered by id.

## 66. labels.archive

POST `/api/v1/labels/{id}/archive`

Scope: labels:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### labels.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the label. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the label. Maximum length 75 characters. |
| `url` | boolean | no | The url of the label. Maximum length 100 characters. |
| `id` | string | no | The id of the label. Maximum length 125 characters. |
| `name` | integer | no | The name of the label. Maximum length 150 characters. |

### labels.archive request

```
curl -X POST https://api.stackly.test/api/v1/labels/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.archive notes

Use this call for archive operations on labels. Results are ordered by id.

## 67. labels.restore

POST `/api/v1/labels/{id}/restore`

Scope: labels:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### labels.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the label. Maximum length 50 characters. |
| `url` | integer | yes | The url of the label. Maximum length 75 characters. |
| `id` | boolean | no | The id of the label. Maximum length 100 characters. |
| `name` | string | no | The name of the label. Maximum length 125 characters. |
| `description` | integer | no | The description of the label. Maximum length 150 characters. |

### labels.restore request

```
curl -X POST https://api.stackly.test/api/v1/labels/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.restore notes

Use this call for restore operations on labels. Results are ordered by id.

## 68. labels.search

GET `/api/v1/labels/search`

Scope: labels:read. Rate limit: counts as one request. Idempotency: not needed.

### labels.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the label. Maximum length 50 characters. |
| `id` | integer | yes | The id of the label. Maximum length 75 characters. |
| `name` | boolean | no | The name of the label. Maximum length 100 characters. |
| `description` | string | no | The description of the label. Maximum length 125 characters. |
| `status` | integer | no | The status of the label. Maximum length 150 characters. |

### labels.search request

```
curl -X GET https://api.stackly.test/api/v1/labels/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.search notes

Use this call for search operations on labels. Results are ordered by id.

## 69. labels.bulk_update

POST `/api/v1/labels/bulk`

Scope: labels:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### labels.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the label. Maximum length 50 characters. |
| `name` | integer | yes | The name of the label. Maximum length 75 characters. |
| `description` | boolean | no | The description of the label. Maximum length 100 characters. |
| `status` | string | no | The status of the label. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the label. Maximum length 150 characters. |

### labels.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/labels/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.bulk_update notes

Use this call for bulk update operations on labels. Results are ordered by id.

## 70. labels.export

POST `/api/v1/labels/export`

Scope: labels:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### labels.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the label. Maximum length 50 characters. |
| `description` | integer | yes | The description of the label. Maximum length 75 characters. |
| `status` | boolean | no | The status of the label. Maximum length 100 characters. |
| `priority` | string | no | The priority of the label. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the label. Maximum length 150 characters. |

### labels.export request

```
curl -X POST https://api.stackly.test/api/v1/labels/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### labels.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### labels.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### labels.export notes

Use this call for export operations on labels. Results are ordered by id.

## 71. statuses.list

GET `/api/v1/statuses`

Scope: statuses:read. Rate limit: counts as one request. Idempotency: not needed.

### statuses.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the statuse. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the statuse. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the statuse. Maximum length 100 characters. |
| `labels` | string | no | The labels of the statuse. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the statuse. Maximum length 150 characters. |

### statuses.list request

```
curl -X GET https://api.stackly.test/api/v1/statuses \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.list notes

Use this call for list operations on statuses. Results are ordered by id.

## 72. statuses.get

GET `/api/v1/statuses/{id}`

Scope: statuses:read. Rate limit: counts as one request. Idempotency: not needed.

### statuses.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the statuse. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the statuse. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the statuse. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the statuse. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the statuse. Maximum length 150 characters. |

### statuses.get request

```
curl -X GET https://api.stackly.test/api/v1/statuses/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.get notes

Use this call for get operations on statuses. Results are ordered by id.

## 73. statuses.create

POST `/api/v1/statuses`

Scope: statuses:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### statuses.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the statuse. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the statuse. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the statuse. Maximum length 100 characters. |
| `archived` | string | no | The archived of the statuse. Maximum length 125 characters. |
| `url` | integer | no | The url of the statuse. Maximum length 150 characters. |

### statuses.create request

```
curl -X POST https://api.stackly.test/api/v1/statuses \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.create notes

Use this call for create operations on statuses. Results are ordered by id.

## 74. statuses.update

PATCH `/api/v1/statuses/{id}`

Scope: statuses:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### statuses.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the statuse. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the statuse. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the statuse. Maximum length 100 characters. |
| `url` | string | no | The url of the statuse. Maximum length 125 characters. |
| `id` | integer | no | The id of the statuse. Maximum length 150 characters. |

### statuses.update request

```
curl -X PATCH https://api.stackly.test/api/v1/statuses/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.update notes

Use this call for update operations on statuses. Results are ordered by id.

## 75. statuses.delete

DELETE `/api/v1/statuses/{id}`

Scope: statuses:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### statuses.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the statuse. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the statuse. Maximum length 75 characters. |
| `url` | boolean | no | The url of the statuse. Maximum length 100 characters. |
| `id` | string | no | The id of the statuse. Maximum length 125 characters. |
| `name` | integer | no | The name of the statuse. Maximum length 150 characters. |

### statuses.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/statuses/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.delete notes

Use this call for delete operations on statuses. Results are ordered by id.

## 76. statuses.archive

POST `/api/v1/statuses/{id}/archive`

Scope: statuses:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### statuses.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the statuse. Maximum length 50 characters. |
| `url` | integer | yes | The url of the statuse. Maximum length 75 characters. |
| `id` | boolean | no | The id of the statuse. Maximum length 100 characters. |
| `name` | string | no | The name of the statuse. Maximum length 125 characters. |
| `description` | integer | no | The description of the statuse. Maximum length 150 characters. |

### statuses.archive request

```
curl -X POST https://api.stackly.test/api/v1/statuses/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.archive notes

Use this call for archive operations on statuses. Results are ordered by id.

## 77. statuses.restore

POST `/api/v1/statuses/{id}/restore`

Scope: statuses:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### statuses.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the statuse. Maximum length 50 characters. |
| `id` | integer | yes | The id of the statuse. Maximum length 75 characters. |
| `name` | boolean | no | The name of the statuse. Maximum length 100 characters. |
| `description` | string | no | The description of the statuse. Maximum length 125 characters. |
| `status` | integer | no | The status of the statuse. Maximum length 150 characters. |

### statuses.restore request

```
curl -X POST https://api.stackly.test/api/v1/statuses/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.restore notes

Use this call for restore operations on statuses. Results are ordered by id.

## 78. statuses.search

GET `/api/v1/statuses/search`

Scope: statuses:read. Rate limit: counts as one request. Idempotency: not needed.

### statuses.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the statuse. Maximum length 50 characters. |
| `name` | integer | yes | The name of the statuse. Maximum length 75 characters. |
| `description` | boolean | no | The description of the statuse. Maximum length 100 characters. |
| `status` | string | no | The status of the statuse. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the statuse. Maximum length 150 characters. |

### statuses.search request

```
curl -X GET https://api.stackly.test/api/v1/statuses/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.search notes

Use this call for search operations on statuses. Results are ordered by id.

## 79. statuses.bulk_update

POST `/api/v1/statuses/bulk`

Scope: statuses:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### statuses.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the statuse. Maximum length 50 characters. |
| `description` | integer | yes | The description of the statuse. Maximum length 75 characters. |
| `status` | boolean | no | The status of the statuse. Maximum length 100 characters. |
| `priority` | string | no | The priority of the statuse. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the statuse. Maximum length 150 characters. |

### statuses.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/statuses/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.bulk_update notes

Use this call for bulk update operations on statuses. Results are ordered by id.

## 80. statuses.export

POST `/api/v1/statuses/export`

Scope: statuses:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### statuses.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the statuse. Maximum length 50 characters. |
| `status` | integer | yes | The status of the statuse. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the statuse. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the statuse. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the statuse. Maximum length 150 characters. |

### statuses.export request

```
curl -X POST https://api.stackly.test/api/v1/statuses/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### statuses.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### statuses.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### statuses.export notes

Use this call for export operations on statuses. Results are ordered by id.

## 81. attachments.list

GET `/api/v1/attachments`

Scope: attachments:read. Rate limit: counts as one request. Idempotency: not needed.

### attachments.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the attachment. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the attachment. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the attachment. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the attachment. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the attachment. Maximum length 150 characters. |

### attachments.list request

```
curl -X GET https://api.stackly.test/api/v1/attachments \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.list notes

Use this call for list operations on attachments. Results are ordered by id.

## 82. attachments.get

GET `/api/v1/attachments/{id}`

Scope: attachments:read. Rate limit: counts as one request. Idempotency: not needed.

### attachments.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the attachment. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the attachment. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the attachment. Maximum length 100 characters. |
| `archived` | string | no | The archived of the attachment. Maximum length 125 characters. |
| `url` | integer | no | The url of the attachment. Maximum length 150 characters. |

### attachments.get request

```
curl -X GET https://api.stackly.test/api/v1/attachments/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.get notes

Use this call for get operations on attachments. Results are ordered by id.

## 83. attachments.create

POST `/api/v1/attachments`

Scope: attachments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### attachments.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the attachment. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the attachment. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the attachment. Maximum length 100 characters. |
| `url` | string | no | The url of the attachment. Maximum length 125 characters. |
| `id` | integer | no | The id of the attachment. Maximum length 150 characters. |

### attachments.create request

```
curl -X POST https://api.stackly.test/api/v1/attachments \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.create notes

Use this call for create operations on attachments. Results are ordered by id.

## 84. attachments.update

PATCH `/api/v1/attachments/{id}`

Scope: attachments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### attachments.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the attachment. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the attachment. Maximum length 75 characters. |
| `url` | boolean | no | The url of the attachment. Maximum length 100 characters. |
| `id` | string | no | The id of the attachment. Maximum length 125 characters. |
| `name` | integer | no | The name of the attachment. Maximum length 150 characters. |

### attachments.update request

```
curl -X PATCH https://api.stackly.test/api/v1/attachments/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.update notes

Use this call for update operations on attachments. Results are ordered by id.

## 85. attachments.delete

DELETE `/api/v1/attachments/{id}`

Scope: attachments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### attachments.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the attachment. Maximum length 50 characters. |
| `url` | integer | yes | The url of the attachment. Maximum length 75 characters. |
| `id` | boolean | no | The id of the attachment. Maximum length 100 characters. |
| `name` | string | no | The name of the attachment. Maximum length 125 characters. |
| `description` | integer | no | The description of the attachment. Maximum length 150 characters. |

### attachments.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/attachments/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.delete notes

Use this call for delete operations on attachments. Results are ordered by id.

## 86. attachments.archive

POST `/api/v1/attachments/{id}/archive`

Scope: attachments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### attachments.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the attachment. Maximum length 50 characters. |
| `id` | integer | yes | The id of the attachment. Maximum length 75 characters. |
| `name` | boolean | no | The name of the attachment. Maximum length 100 characters. |
| `description` | string | no | The description of the attachment. Maximum length 125 characters. |
| `status` | integer | no | The status of the attachment. Maximum length 150 characters. |

### attachments.archive request

```
curl -X POST https://api.stackly.test/api/v1/attachments/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.archive notes

Use this call for archive operations on attachments. Results are ordered by id.

## 87. attachments.restore

POST `/api/v1/attachments/{id}/restore`

Scope: attachments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### attachments.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the attachment. Maximum length 50 characters. |
| `name` | integer | yes | The name of the attachment. Maximum length 75 characters. |
| `description` | boolean | no | The description of the attachment. Maximum length 100 characters. |
| `status` | string | no | The status of the attachment. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the attachment. Maximum length 150 characters. |

### attachments.restore request

```
curl -X POST https://api.stackly.test/api/v1/attachments/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.restore notes

Use this call for restore operations on attachments. Results are ordered by id.

## 88. attachments.search

GET `/api/v1/attachments/search`

Scope: attachments:read. Rate limit: counts as one request. Idempotency: not needed.

### attachments.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the attachment. Maximum length 50 characters. |
| `description` | integer | yes | The description of the attachment. Maximum length 75 characters. |
| `status` | boolean | no | The status of the attachment. Maximum length 100 characters. |
| `priority` | string | no | The priority of the attachment. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the attachment. Maximum length 150 characters. |

### attachments.search request

```
curl -X GET https://api.stackly.test/api/v1/attachments/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.search notes

Use this call for search operations on attachments. Results are ordered by id.

## 89. attachments.bulk_update

POST `/api/v1/attachments/bulk`

Scope: attachments:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### attachments.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the attachment. Maximum length 50 characters. |
| `status` | integer | yes | The status of the attachment. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the attachment. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the attachment. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the attachment. Maximum length 150 characters. |

### attachments.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/attachments/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.bulk_update notes

Use this call for bulk update operations on attachments. Results are ordered by id.

## 90. attachments.export

POST `/api/v1/attachments/export`

Scope: attachments:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### attachments.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the attachment. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the attachment. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the attachment. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the attachment. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the attachment. Maximum length 150 characters. |

### attachments.export request

```
curl -X POST https://api.stackly.test/api/v1/attachments/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### attachments.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### attachments.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### attachments.export notes

Use this call for export operations on attachments. Results are ordered by id.

## 91. webhooks.list

GET `/api/v1/webhooks`

Scope: webhooks:read. Rate limit: counts as one request. Idempotency: not needed.

### webhooks.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the webhook. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the webhook. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the webhook. Maximum length 100 characters. |
| `archived` | string | no | The archived of the webhook. Maximum length 125 characters. |
| `url` | integer | no | The url of the webhook. Maximum length 150 characters. |

### webhooks.list request

```
curl -X GET https://api.stackly.test/api/v1/webhooks \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.list notes

Use this call for list operations on webhooks. Results are ordered by id.

## 92. webhooks.get

GET `/api/v1/webhooks/{id}`

Scope: webhooks:read. Rate limit: counts as one request. Idempotency: not needed.

### webhooks.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the webhook. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the webhook. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the webhook. Maximum length 100 characters. |
| `url` | string | no | The url of the webhook. Maximum length 125 characters. |
| `id` | integer | no | The id of the webhook. Maximum length 150 characters. |

### webhooks.get request

```
curl -X GET https://api.stackly.test/api/v1/webhooks/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.get notes

Use this call for get operations on webhooks. Results are ordered by id.

## 93. webhooks.create

POST `/api/v1/webhooks`

Scope: webhooks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### webhooks.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the webhook. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the webhook. Maximum length 75 characters. |
| `url` | boolean | no | The url of the webhook. Maximum length 100 characters. |
| `id` | string | no | The id of the webhook. Maximum length 125 characters. |
| `name` | integer | no | The name of the webhook. Maximum length 150 characters. |

### webhooks.create request

```
curl -X POST https://api.stackly.test/api/v1/webhooks \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.create notes

Use this call for create operations on webhooks. Results are ordered by id. Each webhook endpoint can subscribe to at most 25 event types.

## 94. webhooks.update

PATCH `/api/v1/webhooks/{id}`

Scope: webhooks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### webhooks.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the webhook. Maximum length 50 characters. |
| `url` | integer | yes | The url of the webhook. Maximum length 75 characters. |
| `id` | boolean | no | The id of the webhook. Maximum length 100 characters. |
| `name` | string | no | The name of the webhook. Maximum length 125 characters. |
| `description` | integer | no | The description of the webhook. Maximum length 150 characters. |

### webhooks.update request

```
curl -X PATCH https://api.stackly.test/api/v1/webhooks/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.update notes

Use this call for update operations on webhooks. Results are ordered by id.

## 95. webhooks.delete

DELETE `/api/v1/webhooks/{id}`

Scope: webhooks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### webhooks.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the webhook. Maximum length 50 characters. |
| `id` | integer | yes | The id of the webhook. Maximum length 75 characters. |
| `name` | boolean | no | The name of the webhook. Maximum length 100 characters. |
| `description` | string | no | The description of the webhook. Maximum length 125 characters. |
| `status` | integer | no | The status of the webhook. Maximum length 150 characters. |

### webhooks.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/webhooks/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.delete notes

Use this call for delete operations on webhooks. Results are ordered by id.

## 96. webhooks.archive

POST `/api/v1/webhooks/{id}/archive`

Scope: webhooks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### webhooks.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the webhook. Maximum length 50 characters. |
| `name` | integer | yes | The name of the webhook. Maximum length 75 characters. |
| `description` | boolean | no | The description of the webhook. Maximum length 100 characters. |
| `status` | string | no | The status of the webhook. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the webhook. Maximum length 150 characters. |

### webhooks.archive request

```
curl -X POST https://api.stackly.test/api/v1/webhooks/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.archive notes

Use this call for archive operations on webhooks. Results are ordered by id.

## 97. webhooks.restore

POST `/api/v1/webhooks/{id}/restore`

Scope: webhooks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### webhooks.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the webhook. Maximum length 50 characters. |
| `description` | integer | yes | The description of the webhook. Maximum length 75 characters. |
| `status` | boolean | no | The status of the webhook. Maximum length 100 characters. |
| `priority` | string | no | The priority of the webhook. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the webhook. Maximum length 150 characters. |

### webhooks.restore request

```
curl -X POST https://api.stackly.test/api/v1/webhooks/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.restore notes

Use this call for restore operations on webhooks. Results are ordered by id.

## 98. webhooks.search

GET `/api/v1/webhooks/search`

Scope: webhooks:read. Rate limit: counts as one request. Idempotency: not needed.

### webhooks.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the webhook. Maximum length 50 characters. |
| `status` | integer | yes | The status of the webhook. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the webhook. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the webhook. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the webhook. Maximum length 150 characters. |

### webhooks.search request

```
curl -X GET https://api.stackly.test/api/v1/webhooks/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.search notes

Use this call for search operations on webhooks. Results are ordered by id.

## 99. webhooks.bulk_update

POST `/api/v1/webhooks/bulk`

Scope: webhooks:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### webhooks.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the webhook. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the webhook. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the webhook. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the webhook. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the webhook. Maximum length 150 characters. |

### webhooks.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/webhooks/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.bulk_update notes

Use this call for bulk update operations on webhooks. Results are ordered by id.

## 100. webhooks.export

POST `/api/v1/webhooks/export`

Scope: webhooks:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### webhooks.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the webhook. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the webhook. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the webhook. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the webhook. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the webhook. Maximum length 150 characters. |

### webhooks.export request

```
curl -X POST https://api.stackly.test/api/v1/webhooks/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### webhooks.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### webhooks.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### webhooks.export notes

Use this call for export operations on webhooks. Results are ordered by id.

## 101. automations.list

GET `/api/v1/automations`

Scope: automations:read. Rate limit: counts as one request. Idempotency: not needed.

### automations.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the automation. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the automation. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the automation. Maximum length 100 characters. |
| `url` | string | no | The url of the automation. Maximum length 125 characters. |
| `id` | integer | no | The id of the automation. Maximum length 150 characters. |

### automations.list request

```
curl -X GET https://api.stackly.test/api/v1/automations \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.list notes

Use this call for list operations on automations. Results are ordered by id.

## 102. automations.get

GET `/api/v1/automations/{id}`

Scope: automations:read. Rate limit: counts as one request. Idempotency: not needed.

### automations.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the automation. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the automation. Maximum length 75 characters. |
| `url` | boolean | no | The url of the automation. Maximum length 100 characters. |
| `id` | string | no | The id of the automation. Maximum length 125 characters. |
| `name` | integer | no | The name of the automation. Maximum length 150 characters. |

### automations.get request

```
curl -X GET https://api.stackly.test/api/v1/automations/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.get notes

Use this call for get operations on automations. Results are ordered by id.

## 103. automations.create

POST `/api/v1/automations`

Scope: automations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### automations.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the automation. Maximum length 50 characters. |
| `url` | integer | yes | The url of the automation. Maximum length 75 characters. |
| `id` | boolean | no | The id of the automation. Maximum length 100 characters. |
| `name` | string | no | The name of the automation. Maximum length 125 characters. |
| `description` | integer | no | The description of the automation. Maximum length 150 characters. |

### automations.create request

```
curl -X POST https://api.stackly.test/api/v1/automations \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.create notes

Use this call for create operations on automations. Results are ordered by id.

## 104. automations.update

PATCH `/api/v1/automations/{id}`

Scope: automations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### automations.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the automation. Maximum length 50 characters. |
| `id` | integer | yes | The id of the automation. Maximum length 75 characters. |
| `name` | boolean | no | The name of the automation. Maximum length 100 characters. |
| `description` | string | no | The description of the automation. Maximum length 125 characters. |
| `status` | integer | no | The status of the automation. Maximum length 150 characters. |

### automations.update request

```
curl -X PATCH https://api.stackly.test/api/v1/automations/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.update notes

Use this call for update operations on automations. Results are ordered by id.

## 105. automations.delete

DELETE `/api/v1/automations/{id}`

Scope: automations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### automations.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the automation. Maximum length 50 characters. |
| `name` | integer | yes | The name of the automation. Maximum length 75 characters. |
| `description` | boolean | no | The description of the automation. Maximum length 100 characters. |
| `status` | string | no | The status of the automation. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the automation. Maximum length 150 characters. |

### automations.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/automations/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.delete notes

Use this call for delete operations on automations. Results are ordered by id.

## 106. automations.archive

POST `/api/v1/automations/{id}/archive`

Scope: automations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### automations.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the automation. Maximum length 50 characters. |
| `description` | integer | yes | The description of the automation. Maximum length 75 characters. |
| `status` | boolean | no | The status of the automation. Maximum length 100 characters. |
| `priority` | string | no | The priority of the automation. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the automation. Maximum length 150 characters. |

### automations.archive request

```
curl -X POST https://api.stackly.test/api/v1/automations/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.archive notes

Use this call for archive operations on automations. Results are ordered by id.

## 107. automations.restore

POST `/api/v1/automations/{id}/restore`

Scope: automations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### automations.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the automation. Maximum length 50 characters. |
| `status` | integer | yes | The status of the automation. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the automation. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the automation. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the automation. Maximum length 150 characters. |

### automations.restore request

```
curl -X POST https://api.stackly.test/api/v1/automations/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.restore notes

Use this call for restore operations on automations. Results are ordered by id.

## 108. automations.search

GET `/api/v1/automations/search`

Scope: automations:read. Rate limit: counts as one request. Idempotency: not needed.

### automations.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the automation. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the automation. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the automation. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the automation. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the automation. Maximum length 150 characters. |

### automations.search request

```
curl -X GET https://api.stackly.test/api/v1/automations/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.search notes

Use this call for search operations on automations. Results are ordered by id.

## 109. automations.bulk_update

POST `/api/v1/automations/bulk`

Scope: automations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### automations.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the automation. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the automation. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the automation. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the automation. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the automation. Maximum length 150 characters. |

### automations.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/automations/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.bulk_update notes

Use this call for bulk update operations on automations. Results are ordered by id.

## 110. automations.export

POST `/api/v1/automations/export`

Scope: automations:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### automations.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the automation. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the automation. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the automation. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the automation. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the automation. Maximum length 150 characters. |

### automations.export request

```
curl -X POST https://api.stackly.test/api/v1/automations/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### automations.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### automations.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### automations.export notes

Use this call for export operations on automations. Results are ordered by id.

## 111. reports.list

GET `/api/v1/reports`

Scope: reports:read. Rate limit: counts as one request. Idempotency: not needed.

### reports.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimate_hours` | string | yes | The estimate hours of the report. Maximum length 50 characters. |
| `archived` | integer | yes | The archived of the report. Maximum length 75 characters. |
| `url` | boolean | no | The url of the report. Maximum length 100 characters. |
| `id` | string | no | The id of the report. Maximum length 125 characters. |
| `name` | integer | no | The name of the report. Maximum length 150 characters. |

### reports.list request

```
curl -X GET https://api.stackly.test/api/v1/reports \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.list notes

Use this call for list operations on reports. Results are ordered by id.

## 112. reports.get

GET `/api/v1/reports/{id}`

Scope: reports:read. Rate limit: counts as one request. Idempotency: not needed.

### reports.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the report. Maximum length 50 characters. |
| `url` | integer | yes | The url of the report. Maximum length 75 characters. |
| `id` | boolean | no | The id of the report. Maximum length 100 characters. |
| `name` | string | no | The name of the report. Maximum length 125 characters. |
| `description` | integer | no | The description of the report. Maximum length 150 characters. |

### reports.get request

```
curl -X GET https://api.stackly.test/api/v1/reports/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.get notes

Use this call for get operations on reports. Results are ordered by id.

## 113. reports.create

POST `/api/v1/reports`

Scope: reports:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### reports.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the report. Maximum length 50 characters. |
| `id` | integer | yes | The id of the report. Maximum length 75 characters. |
| `name` | boolean | no | The name of the report. Maximum length 100 characters. |
| `description` | string | no | The description of the report. Maximum length 125 characters. |
| `status` | integer | no | The status of the report. Maximum length 150 characters. |

### reports.create request

```
curl -X POST https://api.stackly.test/api/v1/reports \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.create notes

Use this call for create operations on reports. Results are ordered by id.

## 114. reports.update

PATCH `/api/v1/reports/{id}`

Scope: reports:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### reports.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the report. Maximum length 50 characters. |
| `name` | integer | yes | The name of the report. Maximum length 75 characters. |
| `description` | boolean | no | The description of the report. Maximum length 100 characters. |
| `status` | string | no | The status of the report. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the report. Maximum length 150 characters. |

### reports.update request

```
curl -X PATCH https://api.stackly.test/api/v1/reports/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.update notes

Use this call for update operations on reports. Results are ordered by id.

## 115. reports.delete

DELETE `/api/v1/reports/{id}`

Scope: reports:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### reports.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the report. Maximum length 50 characters. |
| `description` | integer | yes | The description of the report. Maximum length 75 characters. |
| `status` | boolean | no | The status of the report. Maximum length 100 characters. |
| `priority` | string | no | The priority of the report. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the report. Maximum length 150 characters. |

### reports.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/reports/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.delete notes

Use this call for delete operations on reports. Results are ordered by id.

## 116. reports.archive

POST `/api/v1/reports/{id}/archive`

Scope: reports:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### reports.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the report. Maximum length 50 characters. |
| `status` | integer | yes | The status of the report. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the report. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the report. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the report. Maximum length 150 characters. |

### reports.archive request

```
curl -X POST https://api.stackly.test/api/v1/reports/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.archive notes

Use this call for archive operations on reports. Results are ordered by id.

## 117. reports.restore

POST `/api/v1/reports/{id}/restore`

Scope: reports:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### reports.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the report. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the report. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the report. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the report. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the report. Maximum length 150 characters. |

### reports.restore request

```
curl -X POST https://api.stackly.test/api/v1/reports/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.restore notes

Use this call for restore operations on reports. Results are ordered by id.

## 118. reports.search

GET `/api/v1/reports/search`

Scope: reports:read. Rate limit: counts as one request. Idempotency: not needed.

### reports.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the report. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the report. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the report. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the report. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the report. Maximum length 150 characters. |

### reports.search request

```
curl -X GET https://api.stackly.test/api/v1/reports/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.search notes

Use this call for search operations on reports. Results are ordered by id.

## 119. reports.bulk_update

POST `/api/v1/reports/bulk`

Scope: reports:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### reports.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the report. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the report. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the report. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the report. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the report. Maximum length 150 characters. |

### reports.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/reports/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.bulk_update notes

Use this call for bulk update operations on reports. Results are ordered by id.

## 120. reports.export

POST `/api/v1/reports/export`

Scope: reports:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### reports.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the report. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the report. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the report. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the report. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the report. Maximum length 150 characters. |

### reports.export request

```
curl -X POST https://api.stackly.test/api/v1/reports/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### reports.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### reports.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### reports.export notes

Use this call for export operations on reports. Results are ordered by id.

## 121. milestones.list

GET `/api/v1/milestones`

Scope: milestones:read. Rate limit: counts as one request. Idempotency: not needed.

### milestones.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `archived` | string | yes | The archived of the milestone. Maximum length 50 characters. |
| `url` | integer | yes | The url of the milestone. Maximum length 75 characters. |
| `id` | boolean | no | The id of the milestone. Maximum length 100 characters. |
| `name` | string | no | The name of the milestone. Maximum length 125 characters. |
| `description` | integer | no | The description of the milestone. Maximum length 150 characters. |

### milestones.list request

```
curl -X GET https://api.stackly.test/api/v1/milestones \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.list notes

Use this call for list operations on milestones. Results are ordered by id.

## 122. milestones.get

GET `/api/v1/milestones/{id}`

Scope: milestones:read. Rate limit: counts as one request. Idempotency: not needed.

### milestones.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the milestone. Maximum length 50 characters. |
| `id` | integer | yes | The id of the milestone. Maximum length 75 characters. |
| `name` | boolean | no | The name of the milestone. Maximum length 100 characters. |
| `description` | string | no | The description of the milestone. Maximum length 125 characters. |
| `status` | integer | no | The status of the milestone. Maximum length 150 characters. |

### milestones.get request

```
curl -X GET https://api.stackly.test/api/v1/milestones/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.get notes

Use this call for get operations on milestones. Results are ordered by id.

## 123. milestones.create

POST `/api/v1/milestones`

Scope: milestones:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### milestones.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the milestone. Maximum length 50 characters. |
| `name` | integer | yes | The name of the milestone. Maximum length 75 characters. |
| `description` | boolean | no | The description of the milestone. Maximum length 100 characters. |
| `status` | string | no | The status of the milestone. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the milestone. Maximum length 150 characters. |

### milestones.create request

```
curl -X POST https://api.stackly.test/api/v1/milestones \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.create notes

Use this call for create operations on milestones. Results are ordered by id.

## 124. milestones.update

PATCH `/api/v1/milestones/{id}`

Scope: milestones:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### milestones.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the milestone. Maximum length 50 characters. |
| `description` | integer | yes | The description of the milestone. Maximum length 75 characters. |
| `status` | boolean | no | The status of the milestone. Maximum length 100 characters. |
| `priority` | string | no | The priority of the milestone. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the milestone. Maximum length 150 characters. |

### milestones.update request

```
curl -X PATCH https://api.stackly.test/api/v1/milestones/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.update notes

Use this call for update operations on milestones. Results are ordered by id.

## 125. milestones.delete

DELETE `/api/v1/milestones/{id}`

Scope: milestones:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### milestones.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the milestone. Maximum length 50 characters. |
| `status` | integer | yes | The status of the milestone. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the milestone. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the milestone. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the milestone. Maximum length 150 characters. |

### milestones.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/milestones/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.delete notes

Use this call for delete operations on milestones. Results are ordered by id.

## 126. milestones.archive

POST `/api/v1/milestones/{id}/archive`

Scope: milestones:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### milestones.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the milestone. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the milestone. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the milestone. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the milestone. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the milestone. Maximum length 150 characters. |

### milestones.archive request

```
curl -X POST https://api.stackly.test/api/v1/milestones/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.archive notes

Use this call for archive operations on milestones. Results are ordered by id.

## 127. milestones.restore

POST `/api/v1/milestones/{id}/restore`

Scope: milestones:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### milestones.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the milestone. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the milestone. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the milestone. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the milestone. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the milestone. Maximum length 150 characters. |

### milestones.restore request

```
curl -X POST https://api.stackly.test/api/v1/milestones/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.restore notes

Use this call for restore operations on milestones. Results are ordered by id.

## 128. milestones.search

GET `/api/v1/milestones/search`

Scope: milestones:read. Rate limit: counts as one request. Idempotency: not needed.

### milestones.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the milestone. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the milestone. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the milestone. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the milestone. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the milestone. Maximum length 150 characters. |

### milestones.search request

```
curl -X GET https://api.stackly.test/api/v1/milestones/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.search notes

Use this call for search operations on milestones. Results are ordered by id.

## 129. milestones.bulk_update

POST `/api/v1/milestones/bulk`

Scope: milestones:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### milestones.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the milestone. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the milestone. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the milestone. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the milestone. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the milestone. Maximum length 150 characters. |

### milestones.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/milestones/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.bulk_update notes

Use this call for bulk update operations on milestones. Results are ordered by id.

## 130. milestones.export

POST `/api/v1/milestones/export`

Scope: milestones:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### milestones.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the milestone. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the milestone. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the milestone. Maximum length 100 characters. |
| `labels` | string | no | The labels of the milestone. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the milestone. Maximum length 150 characters. |

### milestones.export request

```
curl -X POST https://api.stackly.test/api/v1/milestones/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### milestones.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### milestones.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### milestones.export notes

Use this call for export operations on milestones. Results are ordered by id.

## 131. sprints.list

GET `/api/v1/sprints`

Scope: sprints:read. Rate limit: counts as one request. Idempotency: not needed.

### sprints.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The url of the sprint. Maximum length 50 characters. |
| `id` | integer | yes | The id of the sprint. Maximum length 75 characters. |
| `name` | boolean | no | The name of the sprint. Maximum length 100 characters. |
| `description` | string | no | The description of the sprint. Maximum length 125 characters. |
| `status` | integer | no | The status of the sprint. Maximum length 150 characters. |

### sprints.list request

```
curl -X GET https://api.stackly.test/api/v1/sprints \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.list notes

Use this call for list operations on sprints. Results are ordered by id.

## 132. sprints.get

GET `/api/v1/sprints/{id}`

Scope: sprints:read. Rate limit: counts as one request. Idempotency: not needed.

### sprints.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the sprint. Maximum length 50 characters. |
| `name` | integer | yes | The name of the sprint. Maximum length 75 characters. |
| `description` | boolean | no | The description of the sprint. Maximum length 100 characters. |
| `status` | string | no | The status of the sprint. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the sprint. Maximum length 150 characters. |

### sprints.get request

```
curl -X GET https://api.stackly.test/api/v1/sprints/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.get notes

Use this call for get operations on sprints. Results are ordered by id.

## 133. sprints.create

POST `/api/v1/sprints`

Scope: sprints:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### sprints.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the sprint. Maximum length 50 characters. |
| `description` | integer | yes | The description of the sprint. Maximum length 75 characters. |
| `status` | boolean | no | The status of the sprint. Maximum length 100 characters. |
| `priority` | string | no | The priority of the sprint. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the sprint. Maximum length 150 characters. |

### sprints.create request

```
curl -X POST https://api.stackly.test/api/v1/sprints \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.create notes

Use this call for create operations on sprints. Results are ordered by id.

## 134. sprints.update

PATCH `/api/v1/sprints/{id}`

Scope: sprints:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### sprints.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the sprint. Maximum length 50 characters. |
| `status` | integer | yes | The status of the sprint. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the sprint. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the sprint. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the sprint. Maximum length 150 characters. |

### sprints.update request

```
curl -X PATCH https://api.stackly.test/api/v1/sprints/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.update notes

Use this call for update operations on sprints. Results are ordered by id.

## 135. sprints.delete

DELETE `/api/v1/sprints/{id}`

Scope: sprints:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### sprints.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the sprint. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the sprint. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the sprint. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the sprint. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the sprint. Maximum length 150 characters. |

### sprints.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/sprints/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.delete notes

Use this call for delete operations on sprints. Results are ordered by id.

## 136. sprints.archive

POST `/api/v1/sprints/{id}/archive`

Scope: sprints:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### sprints.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the sprint. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the sprint. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the sprint. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the sprint. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the sprint. Maximum length 150 characters. |

### sprints.archive request

```
curl -X POST https://api.stackly.test/api/v1/sprints/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.archive notes

Use this call for archive operations on sprints. Results are ordered by id.

## 137. sprints.restore

POST `/api/v1/sprints/{id}/restore`

Scope: sprints:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### sprints.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the sprint. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the sprint. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the sprint. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the sprint. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the sprint. Maximum length 150 characters. |

### sprints.restore request

```
curl -X POST https://api.stackly.test/api/v1/sprints/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.restore notes

Use this call for restore operations on sprints. Results are ordered by id.

## 138. sprints.search

GET `/api/v1/sprints/search`

Scope: sprints:read. Rate limit: counts as one request. Idempotency: not needed.

### sprints.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the sprint. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the sprint. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the sprint. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the sprint. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the sprint. Maximum length 150 characters. |

### sprints.search request

```
curl -X GET https://api.stackly.test/api/v1/sprints/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.search notes

Use this call for search operations on sprints. Results are ordered by id.

## 139. sprints.bulk_update

POST `/api/v1/sprints/bulk`

Scope: sprints:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### sprints.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the sprint. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the sprint. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the sprint. Maximum length 100 characters. |
| `labels` | string | no | The labels of the sprint. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the sprint. Maximum length 150 characters. |

### sprints.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/sprints/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.bulk_update notes

Use this call for bulk update operations on sprints. Results are ordered by id.

## 140. sprints.export

POST `/api/v1/sprints/export`

Scope: sprints:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### sprints.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the sprint. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the sprint. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the sprint. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the sprint. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the sprint. Maximum length 150 characters. |

### sprints.export request

```
curl -X POST https://api.stackly.test/api/v1/sprints/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### sprints.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### sprints.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### sprints.export notes

Use this call for export operations on sprints. Results are ordered by id.

## 141. workspaces.list

GET `/api/v1/workspaces`

Scope: workspaces:read. Rate limit: counts as one request. Idempotency: not needed.

### workspaces.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The id of the workspace. Maximum length 50 characters. |
| `name` | integer | yes | The name of the workspace. Maximum length 75 characters. |
| `description` | boolean | no | The description of the workspace. Maximum length 100 characters. |
| `status` | string | no | The status of the workspace. Maximum length 125 characters. |
| `priority` | integer | no | The priority of the workspace. Maximum length 150 characters. |

### workspaces.list request

```
curl -X GET https://api.stackly.test/api/v1/workspaces \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.list notes

Use this call for list operations on workspaces. Results are ordered by id.

## 142. workspaces.get

GET `/api/v1/workspaces/{id}`

Scope: workspaces:read. Rate limit: counts as one request. Idempotency: not needed.

### workspaces.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the workspace. Maximum length 50 characters. |
| `description` | integer | yes | The description of the workspace. Maximum length 75 characters. |
| `status` | boolean | no | The status of the workspace. Maximum length 100 characters. |
| `priority` | string | no | The priority of the workspace. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the workspace. Maximum length 150 characters. |

### workspaces.get request

```
curl -X GET https://api.stackly.test/api/v1/workspaces/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.get notes

Use this call for get operations on workspaces. Results are ordered by id.

## 143. workspaces.create

POST `/api/v1/workspaces`

Scope: workspaces:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### workspaces.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the workspace. Maximum length 50 characters. |
| `status` | integer | yes | The status of the workspace. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the workspace. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the workspace. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the workspace. Maximum length 150 characters. |

### workspaces.create request

```
curl -X POST https://api.stackly.test/api/v1/workspaces \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.create notes

Use this call for create operations on workspaces. Results are ordered by id.

## 144. workspaces.update

PATCH `/api/v1/workspaces/{id}`

Scope: workspaces:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### workspaces.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the workspace. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the workspace. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the workspace. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the workspace. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the workspace. Maximum length 150 characters. |

### workspaces.update request

```
curl -X PATCH https://api.stackly.test/api/v1/workspaces/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.update notes

Use this call for update operations on workspaces. Results are ordered by id.

## 145. workspaces.delete

DELETE `/api/v1/workspaces/{id}`

Scope: workspaces:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### workspaces.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the workspace. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the workspace. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the workspace. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the workspace. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the workspace. Maximum length 150 characters. |

### workspaces.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/workspaces/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.delete notes

Use this call for delete operations on workspaces. Results are ordered by id.

## 146. workspaces.archive

POST `/api/v1/workspaces/{id}/archive`

Scope: workspaces:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### workspaces.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the workspace. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the workspace. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the workspace. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the workspace. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the workspace. Maximum length 150 characters. |

### workspaces.archive request

```
curl -X POST https://api.stackly.test/api/v1/workspaces/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.archive notes

Use this call for archive operations on workspaces. Results are ordered by id.

## 147. workspaces.restore

POST `/api/v1/workspaces/{id}/restore`

Scope: workspaces:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### workspaces.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the workspace. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the workspace. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the workspace. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the workspace. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the workspace. Maximum length 150 characters. |

### workspaces.restore request

```
curl -X POST https://api.stackly.test/api/v1/workspaces/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.restore notes

Use this call for restore operations on workspaces. Results are ordered by id.

## 148. workspaces.search

GET `/api/v1/workspaces/search`

Scope: workspaces:read. Rate limit: counts as one request. Idempotency: not needed.

### workspaces.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the workspace. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the workspace. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the workspace. Maximum length 100 characters. |
| `labels` | string | no | The labels of the workspace. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the workspace. Maximum length 150 characters. |

### workspaces.search request

```
curl -X GET https://api.stackly.test/api/v1/workspaces/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.search notes

Use this call for search operations on workspaces. Results are ordered by id.

## 149. workspaces.bulk_update

POST `/api/v1/workspaces/bulk`

Scope: workspaces:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### workspaces.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the workspace. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the workspace. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the workspace. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the workspace. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the workspace. Maximum length 150 characters. |

### workspaces.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/workspaces/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.bulk_update notes

Use this call for bulk update operations on workspaces. Results are ordered by id.

## 150. workspaces.export

POST `/api/v1/workspaces/export`

Scope: workspaces:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### workspaces.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the workspace. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the workspace. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the workspace. Maximum length 100 characters. |
| `archived` | string | no | The archived of the workspace. Maximum length 125 characters. |
| `url` | integer | no | The url of the workspace. Maximum length 150 characters. |

### workspaces.export request

```
curl -X POST https://api.stackly.test/api/v1/workspaces/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### workspaces.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### workspaces.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### workspaces.export notes

Use this call for export operations on workspaces. Results are ordered by id.

## 151. integrations.list

GET `/api/v1/integrations`

Scope: integrations:read. Rate limit: counts as one request. Idempotency: not needed.

### integrations.list parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | The name of the integration. Maximum length 50 characters. |
| `description` | integer | yes | The description of the integration. Maximum length 75 characters. |
| `status` | boolean | no | The status of the integration. Maximum length 100 characters. |
| `priority` | string | no | The priority of the integration. Maximum length 125 characters. |
| `assignee_id` | integer | no | The assignee id of the integration. Maximum length 150 characters. |

### integrations.list request

```
curl -X GET https://api.stackly.test/api/v1/integrations \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.list response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.list errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.list notes

Use this call for list operations on integrations. Results are ordered by id.

## 152. integrations.get

GET `/api/v1/integrations/{id}`

Scope: integrations:read. Rate limit: counts as one request. Idempotency: not needed.

### integrations.get parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | yes | The description of the integration. Maximum length 50 characters. |
| `status` | integer | yes | The status of the integration. Maximum length 75 characters. |
| `priority` | boolean | no | The priority of the integration. Maximum length 100 characters. |
| `assignee_id` | string | no | The assignee id of the integration. Maximum length 125 characters. |
| `project_id` | integer | no | The project id of the integration. Maximum length 150 characters. |

### integrations.get request

```
curl -X GET https://api.stackly.test/api/v1/integrations/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.get response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.get errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.get notes

Use this call for get operations on integrations. Results are ordered by id.

## 153. integrations.create

POST `/api/v1/integrations`

Scope: integrations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### integrations.create parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | yes | The status of the integration. Maximum length 50 characters. |
| `priority` | integer | yes | The priority of the integration. Maximum length 75 characters. |
| `assignee_id` | boolean | no | The assignee id of the integration. Maximum length 100 characters. |
| `project_id` | string | no | The project id of the integration. Maximum length 125 characters. |
| `created_at` | integer | no | The created at of the integration. Maximum length 150 characters. |

### integrations.create request

```
curl -X POST https://api.stackly.test/api/v1/integrations \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.create response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.create errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.create notes

Use this call for create operations on integrations. Results are ordered by id.

## 154. integrations.update

PATCH `/api/v1/integrations/{id}`

Scope: integrations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### integrations.update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `priority` | string | yes | The priority of the integration. Maximum length 50 characters. |
| `assignee_id` | integer | yes | The assignee id of the integration. Maximum length 75 characters. |
| `project_id` | boolean | no | The project id of the integration. Maximum length 100 characters. |
| `created_at` | string | no | The created at of the integration. Maximum length 125 characters. |
| `updated_at` | integer | no | The updated at of the integration. Maximum length 150 characters. |

### integrations.update request

```
curl -X PATCH https://api.stackly.test/api/v1/integrations/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.update notes

Use this call for update operations on integrations. Results are ordered by id.

## 155. integrations.delete

DELETE `/api/v1/integrations/{id}`

Scope: integrations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### integrations.delete parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | yes | The assignee id of the integration. Maximum length 50 characters. |
| `project_id` | integer | yes | The project id of the integration. Maximum length 75 characters. |
| `created_at` | boolean | no | The created at of the integration. Maximum length 100 characters. |
| `updated_at` | string | no | The updated at of the integration. Maximum length 125 characters. |
| `due_date` | integer | no | The due date of the integration. Maximum length 150 characters. |

### integrations.delete request

```
curl -X DELETE https://api.stackly.test/api/v1/integrations/{id} \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.delete response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.delete errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.delete notes

Use this call for delete operations on integrations. Results are ordered by id.

## 156. integrations.archive

POST `/api/v1/integrations/{id}/archive`

Scope: integrations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### integrations.archive parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `project_id` | string | yes | The project id of the integration. Maximum length 50 characters. |
| `created_at` | integer | yes | The created at of the integration. Maximum length 75 characters. |
| `updated_at` | boolean | no | The updated at of the integration. Maximum length 100 characters. |
| `due_date` | string | no | The due date of the integration. Maximum length 125 characters. |
| `labels` | integer | no | The labels of the integration. Maximum length 150 characters. |

### integrations.archive request

```
curl -X POST https://api.stackly.test/api/v1/integrations/{id}/archive \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.archive response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.archive errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.archive notes

Use this call for archive operations on integrations. Results are ordered by id.

## 157. integrations.restore

POST `/api/v1/integrations/{id}/restore`

Scope: integrations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### integrations.restore parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `created_at` | string | yes | The created at of the integration. Maximum length 50 characters. |
| `updated_at` | integer | yes | The updated at of the integration. Maximum length 75 characters. |
| `due_date` | boolean | no | The due date of the integration. Maximum length 100 characters. |
| `labels` | string | no | The labels of the integration. Maximum length 125 characters. |
| `estimate_hours` | integer | no | The estimate hours of the integration. Maximum length 150 characters. |

### integrations.restore request

```
curl -X POST https://api.stackly.test/api/v1/integrations/{id}/restore \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.restore response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.restore errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.restore notes

Use this call for restore operations on integrations. Results are ordered by id.

## 158. integrations.search

GET `/api/v1/integrations/search`

Scope: integrations:read. Rate limit: counts as one request. Idempotency: not needed.

### integrations.search parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `updated_at` | string | yes | The updated at of the integration. Maximum length 50 characters. |
| `due_date` | integer | yes | The due date of the integration. Maximum length 75 characters. |
| `labels` | boolean | no | The labels of the integration. Maximum length 100 characters. |
| `estimate_hours` | string | no | The estimate hours of the integration. Maximum length 125 characters. |
| `archived` | integer | no | The archived of the integration. Maximum length 150 characters. |

### integrations.search request

```
curl -X GET https://api.stackly.test/api/v1/integrations/search \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.search response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.search errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.search notes

Use this call for search operations on integrations. Results are ordered by id.

## 159. integrations.bulk_update

POST `/api/v1/integrations/bulk`

Scope: integrations:write. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### integrations.bulk_update parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `due_date` | string | yes | The due date of the integration. Maximum length 50 characters. |
| `labels` | integer | yes | The labels of the integration. Maximum length 75 characters. |
| `estimate_hours` | boolean | no | The estimate hours of the integration. Maximum length 100 characters. |
| `archived` | string | no | The archived of the integration. Maximum length 125 characters. |
| `url` | integer | no | The url of the integration. Maximum length 150 characters. |

### integrations.bulk_update request

```
curl -X POST https://api.stackly.test/api/v1/integrations/bulk \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.bulk_update response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.bulk_update errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.bulk_update notes

Use this call for bulk update operations on integrations. Results are ordered by id.

## 160. integrations.export

POST `/api/v1/integrations/export`

Scope: integrations:read. Rate limit: counts as one request. Idempotency: send an Idempotency-Key header.

### integrations.export parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `labels` | string | yes | The labels of the integration. Maximum length 50 characters. |
| `estimate_hours` | integer | yes | The estimate hours of the integration. Maximum length 75 characters. |
| `archived` | boolean | no | The archived of the integration. Maximum length 100 characters. |
| `url` | string | no | The url of the integration. Maximum length 125 characters. |
| `id` | integer | no | The id of the integration. Maximum length 150 characters. |

### integrations.export request

```
curl -X POST https://api.stackly.test/api/v1/integrations/export \
  -H "Authorization: Bearer $STACKLY_TOKEN" \
  -H "Content-Type: application/json"
```

### integrations.export response

```
{
  "id": "id_value",
  "name": 101,
  "description": false,
  "status": "status_value",
  "priority": 104,
  "assignee_id": false,
  "project_id": "project_id_value",
  "created_at": 107,
  "updated_at": false,
  "due_date": "due_date_value",
  "labels": 110,
  "estimate_hours": false,
  "archived": "archived_value",
  "url": 113
}
```

### integrations.export errors

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `invalid_field` | A field is missing or has the wrong type. |
| 401 | `unauthorized` | The token is missing or invalid. |
| 403 | `forbidden` | The token has no access to this resource. |
| 404 | `not_found` | No such resource. |
| 409 | `conflict` | The change conflicts with the current state. |
| 429 | `rate_limited` | Too many requests; wait for Retry-After seconds. |

### integrations.export notes

Use this call for export operations on integrations. Results are ordered by id. Exported files are kept for 72 hours and then deleted.
