> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dubformer.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Project

> Update basic information of an existing project

## Path Parameters

<ParamField path="projectId" type="string" required>
  Unique identifier of the project to update.
</ParamField>

## Request Body

<ParamField body="name" type="string">
  New name for the project.
</ParamField>

<ParamField body="managerEmail" type="string">
  Email of the new project manager. The manager must belong to the same company as the API key user.
</ParamField>

<ParamField body="translationsGlossaryId" type="string">
  ID of a translation glossary to be used for this project. Pass empty string to remove.
</ParamField>

<ParamField body="voicesGlossaryId" type="string">
  ID of a voices glossary to be used for this project. Pass empty string to remove.
</ParamField>

## Response

<ResponseField name="id" type="string">
  Unique project identifier.
</ResponseField>

<ResponseField name="name" type="string">
  Name of the project.
</ResponseField>

<ResponseField name="status" type="string">
  Current status of the project.
</ResponseField>

<ResponseField name="translationGlossary" type="string | null">
  ID of the translation glossary, if any.
</ResponseField>

<ResponseField name="voicesGlossary" type="string | null">
  ID of the voices glossary, if any.
</ResponseField>

<ResponseField name="remark" type="string | null">
  Project remarks, if any.
</ResponseField>

<ResponseField name="clientName" type="string | null">
  Client name, if specified.
</ResponseField>

<ResponseField name="projectUrl" type="string">
  URL to access the project in the web app.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp when the project was created.
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 timestamp when the project was last updated.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X PATCH \
    https://studio.dubformer.ai/api/v1/projects/proj_5f83a14b2ec1b \
    -H 'Authorization: Bearer YOUR_API_KEY' \
    -H 'Content-Type: application/json' \
    -d '{
      "name": "Updated Marketing Campaign 2023",
      "managerEmail": "new.manager@company.com",
      "translationsGlossaryId": "gloss_new_5f83a14b2ec1b",
      "voicesGlossaryId": ""
    }'
  ```

  ```typescript TypeScript theme={null}
  import axios from 'axios';

  const response = await axios.patch(
    'https://studio.dubformer.ai/api/v1/projects/proj_5f83a14b2ec1b',
    {
      name: "Updated Marketing Campaign 2023",
      managerEmail: "new.manager@company.com",
      translationsGlossaryId: "gloss_new_5f83a14b2ec1b",
      voicesGlossaryId: ""
    },
    {
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json'
      }
    }
  );

  console.log(response.data);
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "id": "proj_5f83a14b2ec1b",
    "name": "Updated Marketing Campaign 2023",
    "status": "new",
    "translationGlossary": "gloss_new_5f83a14b2ec1b",
    "voicesGlossary": null,
    "remark": "Created via Dubformer Studio API",
    "clientName": null,
    "projectUrl": "https://studio.dubformer.ai/projects/proj_5f83a14b2ec1b",
    "createdAt": "2023-12-01T10:00:00.000Z",
    "updatedAt": "2023-12-01T16:45:00.000Z"
  }
  ```
</ResponseExample>

## Notes

<Note>
  This endpoint updates only basic project information. Videos can be managed using separate video management endpoints.
</Note>

<Note>
  The `managerEmail` must be a user from the same company as the API key owner. If not provided, the API key owner becomes the project manager.
</Note>

<Note>
  Translation and voices glossaries must exist and be accessible to your organization if provided. Pass an empty string to remove an existing glossary assignment.
</Note>
