---
title: "Update inbound email configuration"
method: PATCH
path: "/projects/{id}/inbound-email"
---

# Update inbound email configuration

`PATCH /projects/{id}/inbound-email`

## Request

- Base URL: `https://craaft.io/api/v1`
- URL: `https://craaft.io/api/v1/projects/{id}/inbound-email`
- Auth: HTTP bearer

Board admins on Pro boards only. Partially update: active status,
target column, or rotate the token. Send the desired fields only. A
downgraded (Free) board gets 402 here; DELETE stays open so it can
still switch the address off.

## Request body

- object
  - `active` boolean
  - `targetColumn` string, nullable: Column key; empty string clears to first column
  - `rotate` boolean: Generate a new token if true
  - `aiEnrich` boolean

## Response `200`

Updated

- InboundEmailAddress
  - `email` string, email, required: The board's inbound email address (auto-generated from token + domain)
  - `token` string, required: Routing token; used to construct the address. Unique per board.
  - `targetColumn` string, nullable, required: Column key to place inbound cards; null=first column
  - `active` boolean, required: Whether to accept inbound mail to this address
  - `aiEnrich` boolean, required: AI cards for email threads are on
  - `createdAt` string, date-time, required

## Other responses

- `401`: Missing or invalid token
- `402`: Free plan - integrations need Pro
- `403`: Not a board admin
- `404`: Resource doesn't exist or caller isn't a member of its workspace
- `409`: aiEnrich true but AI is not configured on this server

---

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