Meetings
Mark a lead as having booked a meeting, or take the mark off.
Mark a meeting as booked on a lead
Records that a meeting was booked with this lead. A meeting is an explicit mark set by you or your agent when a call actually gets scheduled - Emailchaser never infers one from reply text or calendars, so this call (or PUT /leads/{id}/category with meeting_booked, which behaves identically) is the only way a meeting is recorded. Sets meetingBookedAt to now, sets the lead's category to meeting_booked, and fires the LeadCategoryUpdate webhook on the category change. Idempotent: repeating the call keeps the original meetingBookedAt and fires no second webhook. Marked meetings are counted in GET /campaigns/{id}/stats totals.meetings and GET /reports/outcomes.
Parameters
- id integer required in path
Lead ID
Responses
- 200 Meeting marked as booked · LeadMeetingResponse
- 400 Invalid lead ID · ErrorInvalidLeadID
- 401 Unauthorized - invalid or missing API key · ErrorUnauthorized
- 404 Lead not found · ErrorNotFound
- 500 Failed to mark meeting · ErrorResponse
Fields in the 200 response
- lead LeadCategoryState
3 fields inside lead
- id integerExample:
123 - meetingBookedAt string
MeetingBookedAt is when the meeting was marked as booked and null while no meeting is marked.
Example:2026-07-30T14:05:00Z - tag string
Tag is the lead's engagement category and null while the lead has never been categorized.
Example:meeting_booked
- message stringExample:
meeting marked as booked
Request
curl -X POST "https://api.emailchaser.com/r/leads/123/meeting" \
-H "Authorization: Bearer $EMAILCHASER_API_KEY"Response
{
"lead": {
"id": 123,
"meetingBookedAt": "2026-07-30T14:05:00Z",
"tag": "meeting_booked"
},
"message": "meeting marked as booked"
}Unmark a booked meeting on a lead
Removes the explicit booked-meeting mark: clears meetingBookedAt and, when the lead's category is still meeting_booked, reverts it to interested (firing the LeadCategoryUpdate webhook on the change). A category that was changed to something else since booking is left alone. Idempotent: unmarking a lead with no meeting is a no-op.
Parameters
- id integer required in path
Lead ID
Responses
- 200 Meeting unmarked · LeadMeetingResponse
- 400 Invalid lead ID · ErrorInvalidLeadID
- 401 Unauthorized - invalid or missing API key · ErrorUnauthorized
- 404 Lead not found · ErrorNotFound
- 500 Failed to unmark meeting · ErrorResponse
Fields in the 200 response
- lead LeadCategoryState
3 fields inside lead
- id integerExample:
123 - meetingBookedAt string
MeetingBookedAt is when the meeting was marked as booked and null while no meeting is marked.
Example:2026-07-30T14:05:00Z - tag string
Tag is the lead's engagement category and null while the lead has never been categorized.
Example:meeting_booked
- message stringExample:
meeting marked as booked
Request
curl -X DELETE "https://api.emailchaser.com/r/leads/123/meeting" \
-H "Authorization: Bearer $EMAILCHASER_API_KEY"Response
{
"lead": {
"id": 123,
"meetingBookedAt": "2026-07-30T14:05:00Z",
"tag": "meeting_booked"
},
"message": "meeting marked as booked"
}Generated from the Emailchaser API's own OpenAPI definition, so it always matches the running API.