---
title: "Update multiple issues"
method: PATCH
path: "/issues"
tags: ["issues"]
---

# Update multiple issues

`PATCH /issues`

## Request

- Base URL: `https://api.usepylon.com`
- URL: `https://api.usepylon.com/issues`
- Auth: HTTP bearer

Applies the same changes to up to 100 issues. Only provided fields are modified. Issues that do not exist, or that the caller cannot update, are skipped and listed in skipped_issues instead of failing the request.

**Rate limit:** 30 requests per minute

## Request body

- UpdateIssuesRequest
  - `assignee_id` string: The ID of the user to assign the issues to. If empty string is passed in, the issues will be unassigned.
  - `custom_fields` CustomFieldValue[]: Custom fields to set on the issues. Only passed in fields are modified. Clearing a custom field is not supported in bulk; use PATCH /issues/{id}.
    - `slug` string: The slug of the custom field.
    - `value` string: The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint. If the custom field is a relationship field, the value must be the related object ID.
    - `values` string[]: The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). Replaces the full selection; it does not add to or remove from the existing values. If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.
  - `customer_portal_visible` boolean: Whether the issues should be visible in the customer portal.
  - `issue_ids` string[], required: The IDs of the issues to update. Must contain between 1 and 100 IDs.
  - `state` string: The state to move the issues to. Standard values are `new`, `waiting_on_you`, `waiting_on_customer`, `on_hold`, and `closed`; custom status slugs are also supported.
  - `tags` string[]: Tags to apply to the issues, according to tags_apply_mode.
  - `tags_apply_mode` 'append_only' | 'remove_only' | 'replace': The mode for applying tags. Valid values: "append_only", "remove_only", "replace". Defaults to "replace".
  - `team_id` string: The ID of the team to assign the issues to. If empty string is passed in, the team will be removed. Team assignment is applied asynchronously.

## Response `200`

- UpdateIssuesResponseBody
  - `data` BulkIssueResult, required
    - `skipped_issues` SkippedIssue[], nullable: The issues the operation was not applied to, with the reason for each.
      - `issue_id` string, required: The issue ID as given in the request.
      - `reason` string, required: Why the operation was not applied to this issue. Known values: `not_found`, `forbidden`, `unsupported_source`, `failed`. This list is not exhaustive.
    - `succeeded_issue_ids` string[], nullable: The issues the operation was applied to.
  - `request_id` string, required: The request ID for tracking.

## Other responses

- `400`: The request was invalid or could not be completed.
- `401`: The request could not be authenticated for this API.
- `403`: The authenticated caller or organization is not allowed to access this endpoint or operation.
- `429`: The request exceeded the applicable rate limit.
- `500`: An unexpected internal error occurred.

## Changes

- **2026-10-12** `40bf3229d58f`: 1 breaking, 4 info
  - the `data` response's property type changed from no type to `object` for status `200`
  - added the optional property `data/skipped_issues` to the response with the `200` status
  - added the optional property `data/succeeded_issue_ids` to the response with the `200` status
  - removed `#/components/schemas/BulkIssueResult` from the `data` response property `allOf` list for the response status `200`
  - …1 more
- **2026-10-11** `dfb481067e5a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usepylon/apis/pylon-api/changes/issues/patch.md)

---

[API](https://skmtc.dev/usepylon/apis/pylon-api.md) - [All operations](https://skmtc.dev/usepylon/apis/pylon-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usepylon/apis/pylon-api/revisions/7d018a2a6265?raw)
