---
title: "Change the private recipient used when Hive resolves the destination for booking notifications. First read the Bio page and saved notification configuration. Supply its exact page and setting version, a complete new email normalized to lowercase without surrounding spaces, and an original request key. The owner or admin must approve the exact destination inside Hive. Saving sends no email and does not switch notifications on. Keep the original arguments and key for receipt recovery."
method: POST
path: "/api/v1/tools/set_bio_notification_email"
---

# Change the private recipient used when Hive resolves the destination for booking notifications. First read the Bio page and saved notification configuration. Supply its exact page and setting version, a complete new email normalized to lowercase without surrounding spaces, and an original request key. The owner or admin must approve the exact destination inside Hive. Saving sends no email and does not switch notifications on. Keep the original arguments and key for receipt recovery.

`POST /api/v1/tools/set_bio_notification_email`

## Request

- Base URL: `https://hivepublish.com`
- URL: `https://hivepublish.com/api/v1/tools/set_bio_notification_email`
- Auth: HTTP bearer

This reaches real people, so the person is asked before it runs. Their own AI client asks them. When the connection was made with Hive approvals switched on, the first call returns a single-use Hive approval link instead of acting, and the exact request is repeated with approvalToken and an Idempotency-Key once they approve it inside Hive.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `pageId` string, required: The exact pageId from the Bio page you reviewed.
  - `notificationEmail` string, required: The complete new notification email, lowercase with no surrounding spaces. A masked address cannot be used.
  - `expectedVersion` integer, required: The exact version from read_bio_notification_email. Zero means the page creator email is used until an override is saved.
  - `approvalToken` string: Single-use token returned by Hive after the owner approves this exact action.

## Response `200`

Tool result or approval challenge

- union
  - ToolResult
    - `data` unknown, required
    - `meta` object, required
      - `tool` string
      - `workspaceId` string, uuid
  - ApprovalChallengeResponse
    - `data` ApprovalChallenge, required
      - `confirmationRequired` unknown, required
      - `challengeId` string, uuid, required
      - `approvalToken` string, required: Secret, single-use token. Retry only after the human approves approvalUrl.
      - `approvalUrl` string, uri, required
      - `expiresAt` string, date-time, required
      - `warning` string
    - `meta` object, required

## Other responses

- `400`: Invalid input
- `401`: Missing or invalid credential
- `403`: Missing workspace scope, role permission, or plan entitlement
- `409`: Idempotency conflict, replay, or request still in progress
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/hivepublish/apis/hive-developer-api.md) · [All operations](https://skmtc.dev/hivepublish/apis/hive-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hivepublish/apis/hive-developer-api/revisions/b440c763583e?raw)
