---
title: "POST /spaces/{spaceId}/projects/{projectId}/threshold-alert-recipients/bulk"
method: POST
path: "/spaces/{spaceId}/projects/{projectId}/threshold-alert-recipients/bulk"
tags: ["slash-project-threshold-alert-recipient"]
---

# POST /spaces/{spaceId}/projects/{projectId}/threshold-alert-recipients/bulk

`POST /spaces/{spaceId}/projects/{projectId}/threshold-alert-recipients/bulk`

## Request

- Base URL: `https://api.astravue.com`
- URL: `https://api.astravue.com/spaces/{spaceId}/projects/{projectId}/threshold-alert-recipients/bulk`
- Auth: none declared

## Path parameters

- `spaceId` integer, required
- `projectId` integer, required

## Request body

- ThresholdAlertRecipientBulkCreateRequest: Bulk-add recipients to a project's Fixed Fee threshold-alert list. Per-item outcome — partial success is normal.
  - `recipients` ThresholdAlertRecipientCreateRequest[], required: One entry per recipient to add. Deduplicated by email — a repeated email in the same batch will succeed once and be reported as already-configured on the second occurrence.
    - `userId` integer: Internal org member user id. Set for internal members.
    - `email` string, email: Email address for external stakeholders (CEO, finance manager, etc). Ignored when userId is set.
    - `displayName` string: Optional freeform label for external stakeholders. Ignored for internal members (their name comes from user service).

## Response `200`

OK

- ResponseFormat
  - `success` boolean
  - `message` string
  - `data` unknown
  - `errorCode` integer
  - `errors` unknown

## Changes

- **2026-08-15** `2e610947dac4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/astravue/apis/astravue-api/changes/spaces/:spaceId/projects/:projectId/threshold-alert-recipients/bulk/post.md)

---

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