Set Deal Title Route
Changed onSet or clear a deal's own name.
title on the wire is WHAT the deal is called ("Q3 Brand Refresh"), distinct from POST /deals/{deal_id}/rename's target_name/target_company_name (WHO the deal is filed under). It is stored in prospecting_deals.name; canonical display everywhere is COALESCE(name, target_name, target_company_name). Delegates to services.pipeline_stage_moves.set_deal_title — see its docstring for validation detail and clear semantics.
Works at ANY review_state (including a still-pending deal, 2026-08-19 founder feedback — naming a deal is harmless before approval too; only archived_at gates it). 404 if the deal doesn't exist in this org; 400 if it's archived, or if title exceeds 120 characters.
Success is 200 {"deal_id", "name", "name_source", "title", "display_name"}. Clearing does NOT return null: it regenerates the system default, so the response carries the name the deal now shows and name_source: "system" says it came from the allocator rather than a person. title mirrors name for older clients.
Request
- Base URL: https://api.every.ai (the document declares no server; this is the origin it was published from)
- URL: https://api.every.ai/api/pipeline/deals/{deal_id}/title
- Auth: none declared
Query parameters
Request body
Response
Successful Response
Changes
- info
endpoint added
- info