---
title: "Remove labels from an inbox message"
method: DELETE
path: "/email_inboxes/{inbox_id}/messages/{message_id}/labels"
tags: ["Email Inboxes"]
---

# Remove labels from an inbox message

`DELETE /email_inboxes/{inbox_id}/messages/{message_id}/labels`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/email_inboxes/{inbox_id}/messages/{message_id}/labels`
- Auth: HTTP bearer

Removes one or more labels from a message. Idempotent — removing a
label the message does not carry is a no-op and still returns 200.
Removal is case-sensitive.

## Path parameters

- `inbox_id` string, uuid, required
- `message_id` string, uuid, required

## Request body

- LabelMutationRequest: Labels to add or remove. Both operations are idempotent set operations, so a retried request converges instead of failing.
  - `labels` string[], required: One or more labels. Each label is a freeform, case-sensitive string of at most 255 characters; a message or thread may carry at most 50 labels. The `telnyx:` prefix is a reserved system namespace and is rejected on customer writes.

## Response `200`

The updated message, including its current label set.

- InboundMessageResponse
  - `data` InboundMessage, required
    - `id` string, uuid, required
    - `record_type` 'email_message', required
    - `direction` 'inbound', required
    - `status` 'received', required: Received for inbound messages; the current send status for outbound messages.
    - `inbox_id` string, uuid, required
    - `thread_id` string, uuid, required
    - `message_id` string, nullable, required: RFC Message-ID header. Null is possible for legacy outbound messages.
    - `in_reply_to` string, nullable, required
    - `references` string[], required: Ordered RFC Message-ID values from the References header.
    - `from` InboundEmailAddress, required
      - `email` string, email, required
      - `name` string
    - `to` InboundEmailAddress[], required
      - `email` string, email, required
      - `name` string
    - `cc` InboundEmailAddress[], required
      - `email` string, email, required
      - `name` string
    - `bcc` InboundEmailAddress[], required
      - `email` string, email, required
      - `name` string
    - `reply_to` InboundEmailAddress[], required
      - `email` string, email, required
      - `name` string
    - `subject` string, nullable, required
    - `text_body_url` string, uri, nullable, required: URL for an offloaded plain-text body. Null means the body is not offloaded to a URL; an inline plain-text body may still exist but is not returned on list reads. `reply_text` and `has_quoted_text` are persisted during ingest before any body offload.
    - `html_body_url` string, uri, nullable, required: URL for an offloaded HTML body. Null means the body is not offloaded to a URL; an inline HTML body may still exist but is not returned on list reads. Reply extraction uses only the plain-text body during ingest.
    - `reply_text` string, nullable, required: Conservatively extracted new-reply content persisted from the plain-text body during ingest. Null means no plain-text extraction input was available or extraction was skipped or failed; HTML bodies are not parsed.
    - `has_quoted_text` boolean, required: Whether conservative plain-text extraction detected a quoted tail. False does not prove that the source contains no quoted content.
    - `headers` object, required
    - `inline_files` object[], required
    - `attachments` object[], required
    - `labels` string[], required: Mutable message labels used for agent workflow state (for example `spam`, `needs_review`, `processed`). Distinct from the immutable send-time `tags` on outbound messages: labels are never propagated to Email Detail Records or Mission Control reporting. Always empty for outbound messages. Labels on a message are independent of the labels on its thread.
    - `read_at` string, date-time, nullable, required: Time the inbound message was marked read. Null means unread.
    - `received_at` string, date-time, nullable, required: Receipt time for inbound messages; null for outbound messages.
    - `sent_at` string, date-time, nullable, required: Creation/send-acceptance time for outbound messages; null for inbound messages.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `401`: Not authorized (10006).
- `404`: Resource not found (10001).
- `422`: Validation Failed (10015) or changeset validation error.
- `503`: Inbound label storage is temporarily unavailable.

## Changes

> 152 revisions in range; 1 not diffed.

- **2026-09-22** `9621f6123ebc`: 8 warning
  - added the new `10011` enum value to the `errors/items/code` response property for the response status `401`
  - added the new `10011` enum value to the `errors/items/code` response property for the response status `404`
  - added the new `10011` enum value to the `errors/items/code` response property for the response status `422`
  - added the new `10011` enum value to the `errors/items/code` response property for the response status `503`
  - …4 more
- **2026-07-28** `b1bf96d8391e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/changes/email_inboxes/:inbox_id/messages/:message_id/labels/delete.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api-2.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/revisions/f82938f53ff4?raw)
