---
title: "Update Project"
method: PATCH
path: "/api/app-auto-gtm/projects/{project_id}"
tags: ["AppAutoGtm"]
---

# Update Project

`PATCH /api/app-auto-gtm/projects/{project_id}`

Patch editable project-level fields surfaced in the Docs form.

Accepts `description`, `competitors`, and `company_name` (stored in
`Project.info['company_name']`). The remainder of `Project.info` (industry,
team_size, founded, location, …) is funnel-sourced and returned as-is for
rendering. Per-segment targeting hints live on the Segment — see
PATCH /segments/{id}.

company_name changes additionally bump `email_templates_version` on every
segment in the project: the email-generation LLM prompt reads
`info.company_name` (api/app_auto_gtm/email_rag._profile_offer_block) and
its output is cached in `generated_email` keyed by version, so without the
bump previews + future enqueues would keep the old name.

## Path parameters

- `project_id` integer, required

## Cookies

- `ex_access` string, nullable
- `ex_org` string, nullable

## Request body

- ProjectUpdateRequest — PATCH /projects/{id} body. All fields optional — client sends only what the Save button touched (one sub-form at a time).
  - `description` string, nullable
  - `competitors` string[], nullable
  - `company_name` string, nullable
  - `auto_reply_enabled` boolean, nullable
  - `reply_cc_emails` string[], nullable
  - `auto_reply_delay_minutes` integer, nullable
  - `autopilot_enabled` boolean, nullable
  - `target_url` string, nullable
  - `reply_instructions` string, nullable

## Response `200`

Successful Response

- ProjectDetails — Response of PATCH /projects/{id} — full project surface the forms need. `info` is returned as-is so the Profile sub-form can render the read-only badges (industry, team_size, location, founded, …) without an extra round trip. `competitors` is always normalised to a plain domain list on the way out (`docs_builder.competitor_domains`), so whatever the frontend renders re-validates on the next PATCH — display names would 422 the domain validator.
  - `id` integer, required
  - `domain` string, required
  - `description` string, required
  - `competitors` string[], required
  - `info` object, required
  - `auto_reply_enabled` boolean
  - `auto_reply_delay_minutes` integer
  - `autopilot_enabled` boolean
  - `reply_cc_emails` string[], required
  - `target_url` string, nullable
  - `reply_instructions` string

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/explee/apis/explee-api.md) · [All operations](https://skmtc.dev/explee/apis/explee-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/explee/explee-api/revisions/f169bc6e9447/schema)
