Update an inbox
cooper_update_inboxUse this when an inbox should pause (stop sending and accepting new mail without deleting the address, threads, or history) or resume, or when you need to change its display name, metadata, signature, inbound screening, sender authentication, or send_mode. Requires auth. Inputs: inbox_id (required; inbox id, username, or email) and at least one of status (active or paused), require_sender_auth, display_name (null clears it), metadata (merged; a null value removes that key), screening (off, observe, or hold), send_mode (direct or approval), signature ({text, html?}, or null to remove it). Bad values return HTTP 400 invalid_metadata, invalid_screening, or invalid_send_mode. send_mode approval applies immediately when a verified owner exists: sends, replies, and forwards become pending drafts and those owners are emailed. No verified owner returns HTTP 409 owner_required and leaves send_mode unchanged. Back to direct is immediate only when the inbox never had a verified owner. Otherwise the owners are emailed and the change waits until they confirm. Opening the confirm link does not change the inbox, and an API key cannot submit it. Screening never drops mail. observe, the default, adds the suspicious label at a heuristic score of 40 or higher. hold stores suspicious mail with the held label, fires message.held instead of message.received, and creates no task. off skips scoring (reason screening_off). Pausing sets paused_at; resuming clears it. A paused inbox still counts toward the plan inbox limit, existing messages stay readable, and sends return HTTP 403 inbox_paused until status is active. Returns the inbox {id, username, email, display_name, created_at, require_sender_auth, labels, expires_at, status, paused_at, metadata, client_id, screening, send_mode, signature}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | paused stops new sends and drops new inbound mail. active resumes the inbox. | |
| inbox_id | Yes | Inbox id (inb_…), username, or full email address owned by this key | |
| metadata | No | Merged into the current metadata. A null value removes that key. At most 256 keys, keys at most 256 characters, values string number or boolean, serialized at most 16 KB. Otherwise 400 invalid_metadata. | |
| screening | No | Inbound prompt-injection screen. off skips scoring and records why. observe labels suspicious mail. hold stores suspicious mail for review and fires message.held. Anything else is 400 invalid_screening. | |
| send_mode | No | Entering approval applies immediately when a verified owner exists and holds POST /messages, reply, reply-all, and forward until that owner approves the current content. No verified owner returns HTTP 409 owner_required. An inbox already in approval can return to direct only when it has never had a verified owner. An unsubscribed owner still blocks that switch. Leaving approval for direct emails verified owners and waits for confirmation. Anything else is 400 invalid_send_mode. | |
| signature | No | Use this when the inbox signature should change. Pass {text, html?} to set or replace it. text is required, non-empty, and at most 2000 characters. html is optional and at most 10000 characters. Pass null to remove it. Omit it to leave the stored signature unchanged. | |
| display_name | No | From display name. Send null to clear it. A blank string also clears it. | |
| require_sender_auth | No | When true, owner or allowlist mail becomes a task only if DMARC passes or DKIM passes and aligns with From. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Inbox id (inb_…). Pass it as inbox_id to other tools. | |
| No | Full email address of the inbox. | ||
| labels | No | Labels on the object. | |
| status | No | active or paused. | |
| metadata | No | Caller key-value data stored on the object. | |
| username | No | Local part of the address. | |
| client_id | No | Caller idempotency key stored with the object, or null. | |
| paused_at | No | ISO-8601 time the inbox was paused, or null. | |
| screening | No | Inbound screening mode: off, observe, or hold. | |
| send_mode | No | direct sends immediately. approval turns sends into drafts a verified owner approves. | |
| signature | No | Signature {text, html} added to sends, or null. | |
| created_at | No | ISO-8601 time the object was created. | |
| expires_at | No | ISO-8601 time the object expires, or null for no expiry. | |
| display_name | No | From display name, or null. | |
| require_sender_auth | No | When true, only mail that passes DMARC/DKIM can create an owner task. |