---
title: "Apply one set of field changes to up to 100 issues"
method: PATCH
path: "/api/workspaces/{workspaceId}/issues/batch"
tags: ["Issues"]
---

# Apply one set of field changes to up to 100 issues

`PATCH /api/workspaces/{workspaceId}/issues/batch`

## Request

- Base URL: `https://hiveship.app/api`
- URL: `https://hiveship.app/api/api/workspaces/{workspaceId}/issues/batch`
- Auth: one of:
  - `apiToken` (a scheme the document does not define)
  - HTTP bearer
  - API key in cookie `hiveship_access`

Replaces the per-issue fan-out bulk actions used to require. Accepts a SUBSET of the update fields — title/description are per-issue prose and are deliberately not settable in bulk. Events are not coalesced: N issues changed, so automations and webhooks still see N events.

## Path parameters

- `workspaceId` string, required

## Request body

- object
  - `issueIds` string[], required
  - `update` object, required
    - `status` string
    - `priority` 'URGENT' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE'
    - `assigneeId` string, cuid, nullable
    - `reviewerId` string, cuid, nullable
    - `sprintId` string, cuid, nullable
    - `dueDate` string, date-time, nullable
    - `labelIds` string[]

## Response `200`

Issues updated

- object
  - `success` boolean, required
  - `data` object, required
    - `updatedCount` integer, required
    - `failedCount` integer, required
    - `items` object[], required
      - `id` string, cuid, required
      - `number` integer, required
      - `title` string, required
      - `description` string, nullable, required
      - `status` string, required
      - `priority` 'URGENT' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE', required
      - `storyPoints` integer, nullable, required
      - `estimatedHours` number, nullable, required
      - `actualHours` number, nullable, required
      - `dueDate` string, date-time, nullable, required
      - `delegateType` 'HUMAN' | 'AGENT', required
      - `assignee` object, nullable, required
        - `id` string, cuid, required
        - `name` string, required
        - `avatarUrl` string, nullable, required
      - `reviewer` object, nullable, required
        - `id` string, cuid, required
        - `name` string, required
        - `avatarUrl` string, nullable, required
      - `agent` object, nullable, required
        - `id` string, cuid, required
        - `name` string, required
        - `avatarUrl` string, nullable, required
        - `provider` 'CURSOR' | 'CLAUDE_CODE' | 'CODEX' | 'AIDER' | 'DEVIN' | 'COPILOT' | 'CUSTOM', required
      - `creator` object, nullable, required
        - `id` string, cuid, required
        - `name` string, required
        - `avatarUrl` string, nullable, required
      - `createdByAgent` object, nullable, required
        - `id` string, cuid, required
        - `name` string, required
        - `avatarUrl` string, nullable, required
        - `provider` 'CURSOR' | 'CLAUDE_CODE' | 'CODEX' | 'AIDER' | 'DEVIN' | 'COPILOT' | 'CUSTOM', required
      - `project` object, required
        - `id` string, cuid, required
        - `name` string, required
        - `prefix` string, required
      - `sprint` object, nullable, required
        - `id` string, cuid, required
        - `name` string, required
      - `labels` object[], required
        - `id` string, cuid, required
        - `name` string, required
        - `color` string, required
      - `commentCount` integer, required
      - `activityCount` integer, required
      - `agentSessions` object[], required
        - `id` string, cuid, required
        - `status` 'QUEUED' | 'WORKING' | 'WAITING_INPUT' | 'ERRORED' | 'COMPLETED', required
        - `issueId` string, cuid, required
        - `agentId` string, cuid, required
        - `startedAt` string, date-time, nullable, required
        - `completedAt` string, date-time, nullable, required
        - `errorMessage` string, nullable, required
        - `externalUrls` string[], required
        - `tokenUsage` integer, nullable, required
        - `modelUsed` string, nullable, required
        - `modelUsage` object[], required
          - `model` string, required
          - `inputTokens` integer, required
          - `outputTokens` integer, required
          - `cacheReadTokens` integer, required
          - `cacheWriteTokens` integer, required
          - `totalTokens` integer, required
        - `createdAt` string, date-time, required
      - `agentTokenUsage` object, required
        - `totalTokens` integer, required
        - `sessionCount` integer, required
        - `finishedSessionCount` integer, required
        - `totalSessionCount` integer, required
        - `byModel` object[], required
          - `model` string, required
          - `inputTokens` integer, required
          - `outputTokens` integer, required
          - `cacheReadTokens` integer, required
          - `cacheWriteTokens` integer, required
          - `totalTokens` integer, required
      - `linkedPRs` object[], required
        - `id` string, cuid, required
        - `provider` 'github' | 'gitlab', required
        - `prNumber` integer, required
        - `prUrl` string, uri, required
        - `prTitle` string, required
        - `prStatus` 'open' | 'merged' | 'closed', required
        - `reviewState` 'approved' | 'changes_requested', nullable, required
        - `branchName` string, nullable, required
        - `repoFullName` string, required
      - `parentId` string, cuid, nullable, required
      - `children` object[], required
        - `id` string, cuid, required
        - `triageSource` string, nullable, required
        - `number` integer, required
        - `title` string, required
        - `status` string, required
        - `priority` 'URGENT' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE', required
        - `delegateType` 'HUMAN' | 'AGENT', required
        - `assignee` object, nullable, required
          - `id` string, cuid, required
          - `name` string, required
          - `avatarUrl` string, nullable, required
        - `agent` object, nullable, required
          - `id` string, cuid, required
          - `name` string, required
          - `avatarUrl` string, nullable, required
          - `provider` 'CURSOR' | 'CLAUDE_CODE' | 'CODEX' | 'AIDER' | 'DEVIN' | 'COPILOT' | 'CUSTOM', required
        - `labels` object[], required
          - `id` string, cuid, required
          - `name` string, required
          - `color` string, required
        - `commentCount` integer, required
        - `linkedPRCount` integer, required
        - `linkedPRStatus` 'open' | 'merged' | 'closed', nullable, required
        - `linkedPRReviewState` 'approved' | 'changes_requested', nullable, required
        - `projectPrefix` string, required
        - `project` object, required
          - `id` string, cuid, required
          - `name` string, required
          - `prefix` string, required
        - `storyPoints` integer, nullable, required
        - `dueDate` string, date-time, nullable, required
        - `activeSession` object, nullable, required
          - `id` string, cuid, required
          - `agentId` string, cuid, required
          - `agentName` string, required
          - `startedAt` string, date-time, required
          - `tokenUsage` integer, nullable, required
          - `modelUsed` string, nullable, required
        - `latestActivity` object, nullable, required
          - `kind` 'THOUGHT' | 'TOOL_USE' | 'ELICITATION' | 'RESPONSE' | 'ERROR', required
          - `summary` string, required
          - `createdAt` string, date-time, required
        - `completedBy` object, nullable, required
          - `agentId` string, cuid, required
          - `agentName` string, required
      - `childrenRollup` object, nullable, required
        - `total` integer, required
        - `byBucket` object, required
          - `backlog` integer, required
          - `unstarted` integer, required
          - `started` integer, required
          - `completed` integer, required
          - `cancelled` integer, required
      - `sortOrder` number, required
      - `attachments` object[], required
        - `id` string, cuid, required
        - `name` string, required
        - `mimeType` string, required
        - `sizeBytes` integer, required
        - `url` string, uri, required
        - `issueId` string, cuid, nullable, required
        - `commentId` string, cuid, nullable, required
        - `user` object, nullable, required
          - `id` string, cuid, required
          - `name` string, required
          - `avatarUrl` string, nullable, required
        - `agent` object, nullable, required
          - `id` string, cuid, required
          - `name` string, required
          - `avatarUrl` string, nullable, required
          - `provider` 'CURSOR' | 'CLAUDE_CODE' | 'CODEX' | 'AIDER' | 'DEVIN' | 'COPILOT' | 'CUSTOM', required
        - `createdAt` string, date-time, required
      - `relations` object, required
        - `blocks` object[], required
          - `relationId` string, cuid, required
          - `issue` object, required
            - `id` string, cuid, required
            - `number` integer, required
            - `title` string, required
            - `status` string, required
            - `priority` 'URGENT' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE', required
            - `projectPrefix` string, required
          - `createdAt` string, date-time, required
        - `blockedBy` object[], required
          - `relationId` string, cuid, required
          - `issue` object, required
            - `id` string, cuid, required
            - `number` integer, required
            - `title` string, required
            - `status` string, required
            - `priority` 'URGENT' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE', required
            - `projectPrefix` string, required
          - `createdAt` string, date-time, required
        - `duplicates` object[], required
          - `relationId` string, cuid, required
          - `issue` object, required
            - `id` string, cuid, required
            - `number` integer, required
            - `title` string, required
            - `status` string, required
            - `priority` 'URGENT' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE', required
            - `projectPrefix` string, required
          - `createdAt` string, date-time, required
        - `duplicatedBy` object[], required
          - `relationId` string, cuid, required
          - `issue` object, required
            - `id` string, cuid, required
            - `number` integer, required
            - `title` string, required
            - `status` string, required
            - `priority` 'URGENT' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE', required
            - `projectPrefix` string, required
          - `createdAt` string, date-time, required
        - `relates` object[], required
          - `relationId` string, cuid, required
          - `issue` object, required
            - `id` string, cuid, required
            - `number` integer, required
            - `title` string, required
            - `status` string, required
            - `priority` 'URGENT' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE', required
            - `projectPrefix` string, required
          - `createdAt` string, date-time, required
      - `reactions` object[], required
        - `emoji` string, required
        - `count` integer, required
        - `authors` object[], required
          - `kind` 'user' | 'agent', required
          - `id` string, cuid, required
          - `name` string, required
          - `avatarUrl` string, nullable, required
        - `reactedByMe` boolean, required
      - `customFieldValues` object[], required
        - `id` string, cuid, required
        - `fieldId` string, cuid, required
        - `field` object, required
          - `id` string, cuid, required
          - `name` string, required
          - `type` 'TEXT' | 'NUMBER' | 'DATE' | 'SELECT' | 'MULTI_SELECT' | 'URL' | 'BOOLEAN', required
          - `options` object[], nullable, required
            - `value` string, required
            - `label` string, required
            - `color` string, nullable
          - `description` string, nullable, required
          - `required` boolean, required
          - `sortOrder` number, required
          - `createdAt` string, date-time, required
          - `updatedAt` string, date-time, required
        - `value` unknown, required
        - `createdAt` string, date-time, required
        - `updatedAt` string, date-time, required
      - `isWatching` boolean, required
      - `watcherCount` integer, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `completedAt` string, date-time, nullable, required
      - `statusChangedAt` string, date-time, nullable, required
    - `failures` object[], required
      - `issueId` string, required
      - `reason` string, required

## Other responses

- `400`: Duplicate ids, empty update, or batch over cap
- `404`: One or more ids not in this workspace

---

[API](https://skmtc.dev/hiveship/apis/hiveship-api.md) · [All operations](https://skmtc.dev/hiveship/apis/hiveship-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hiveship/apis/hiveship-api/revisions/73d3e26544e4?raw)
