---
title: "Set or correct a lead's category"
method: PUT
path: "/leads/{id}/category"
tags: ["Leads"]
---

# Set or correct a lead's category

`PUT /leads/{id}/category`

## Request

- Base URL: `https://api.emailchaser.com/r`
- URL: `https://api.emailchaser.com/r/leads/{id}/category`
- Auth: HTTP bearer

Sets the lead's category (tag), typically to correct an AI misclassification of a reply. Validated against the category enum: interested, not_interested, bounced, out_of_office, delivery_incomplete, meeting_booked. Setting meeting_booked behaves exactly like POST /leads/{id}/meeting: it records meetingBookedAt when unset and keeps an existing one, because a meeting is an explicit mark set by you or your agent, never inferred by the system. A real category change fires the LeadCategoryUpdate webhook; setting the value the lead already has is a no-op. Changing the category away from meeting_booked does NOT clear the booked-meeting mark - use DELETE /leads/{id}/meeting for that.

## Path parameters

- `id` integer, required

## Request body

- ModelsUpdateLeadCategoryRequest
  - `category` string, required: Category must be one of the lead category values: interested, not_interested, bounced, out_of_office, delivery_incomplete, meeting_booked.

## Response `200`

Lead category updated

- ModelsUpdateLeadCategoryResponse
  - `lead` ModelsLeadCategoryState
    - `id` integer
    - `meetingBookedAt` string: MeetingBookedAt is when the meeting was marked as booked and null while no meeting is marked.
    - `tag` string: Tag is the lead's engagement category and null while the lead has never been categorized.
  - `message` string

## Other responses

- `400`: Invalid lead ID, request body, or category
- `401`: Unauthorized - invalid or missing API key
- `404`: Lead not found
- `500`: Failed to update lead category

---

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