---
title: "Assign Recipients in Bulk"
method: POST
path: "/1/signals/recipient_assignments"
tags: ["Anomaly Detection"]
---

# Assign Recipients in Bulk

`POST /1/signals/recipient_assignments`

## Request

- Base URL: `https://api.honeycomb.io`
- URL: `https://api.honeycomb.io/1/signals/recipient_assignments`
- Auth: API key in header `X-Honeycomb-Team`

Use this endpoint to bulk add Recipients to many Signals in one call, rather than updating each Signal
individually.

Requires the **Manage Recipients** permission in addition to **Manage Signals**.

## Request body

- BulkSignalRecipientAssignmentRequest: Select the Signals with `selector.signal_ids`, using IDs from [List All Signals](/api/signals/list/). - Problems with the `recipients` list will reject the whole request before anything is written. - One bad Signal ID does not discard the batch. - Recipients are added to each Signal's existing set. A Recipient the Signal already has is skipped, and left untouched.
  - `selector` BulkSignalSelector, required: Chooses which Signals to act on.
    - `signal_ids` string[], required: The IDs of the Signals to update.
  - `recipients` SignalRecipient[], required: The Recipients to assign to every selected Signal. Each must be referenced by its `id` from the [Recipients API](/api/recipients/).
    - `id` string, required: The unique identifier of an existing Recipient. Create Recipients via the [Recipients API](/api/recipients/).
    - `details` object: Per-assignment settings for how this Recipient receives notifications for this Signal.
      - `pagerduty_severity` 'critical' | 'error' | 'warning' | 'info': Severity to use when the assigned Recipient is a PagerDuty Recipient. Rejected for non-PagerDuty Recipients.
      - `muted` boolean: When `true`, the Recipient is muted for this Signal and will not receive notifications.

## Response `200`

The batch was processed. Every requested Signal appears in exactly one of `succeeded`, `unchanged`, or `failed`.

- BulkSignalRecipientAssignmentResponse: The per-Signal outcome of a bulk Recipient assignment.
  - `succeeded` string[], required: The Signals whose Recipient set was updated.
  - `unchanged` string[], required: The Signals that already had every requested Recipient.
  - `failed` BulkSignalRecipientAssignmentFailure[], required: The Signals that were not updated, each with the reason.
    - `signal_id` string, required: The Signal ID.
    - `code` 'not_found' | 'failed', required: `not_found` means the ID did not resolve to a Signal visible to your API key. `failed` means the Signal was found but its Recipients could not be written.
    - `detail` string, required: A human-readable explanation of the failure.

## Other responses

- `400`: The provided request body was invalid.
- `401`: Unauthorized
- `403`: Forbidden
- `413`: The provided request body was over the maximum allowed size.
- `422`: Validation Failed
- `429`: Rate Limit Exceeded
- `default`: Error

## Changes

- **2026-11-03** `276c5555582a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/honeycomb/apis/honeycomb-api/changes/1/signals/recipient_assignments/post.md)

---

[API](https://skmtc.dev/honeycomb/apis/honeycomb-api.md) - [All operations](https://skmtc.dev/honeycomb/apis/honeycomb-api/llms.txt) - [OpenAPI document](https://skmtc.dev/honeycomb/apis/honeycomb-api/revisions/276c5555582a?raw)
