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

> ## Agent Instructions
> These are Ditto's developer docs. Ditto is a single source of truth for product copy across design, review, localization, and code.
> The first step on any codebase is a scan: https://developer.dittowords.com/get-started/scan-your-repo.md. That page also covers reviewing the style guide Ditto drafts from the scan. After it, the follow-on guides are Connect Figma files and Set up localization (under /guides/) and Connect the Ditto MCP (the Setup page of the MCP reference).
> Two different MCP servers: the Ditto MCP server at https://api.dittowords.com/v2/mcp gives an agent a workspace's text and style guide rules; the documentation MCP server at https://developer.dittowords.com/mcp searches these docs.
> Prefer logging in with a Ditto account (npx -y @dittowords/cli@latest login; OAuth in MCP clients) over API keys. API keys are for CI and headless clients only.
> Commands are complete as written and use npx -y @dittowords/cli@latest; nothing needs a global install.

# Update a project

> Updates a project's name, Developer ID, and/or connected base.

The project is identified by its current Developer ID in the URL path. Only provided fields are modified.



## OpenAPI

````yaml openapi.json patch /projects/{projectId}
openapi: 3.0.0
info:
  version: 1.0.0
  title: Ditto API
  description: Programmatically read and write data in your Ditto workspace.
servers:
  - url: https://api.dittowords.com/v2
security: []
paths:
  /projects/{projectId}:
    patch:
      tags:
        - Projects
      summary: Update a project
      description: >-
        Updates a project's name, Developer ID, and/or connected base.


        The project is identified by its current Developer ID in the URL path.
        Only provided fields are modified.
      parameters:
        - schema:
            type: string
            minLength: 1
            description: The Developer ID of the project to update
          required: true
          description: The Developer ID of the project to update
          name: projectId
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  description: The new name of the project
                baseId:
                  type: string
                  nullable: true
                  minLength: 1
                  description: >-
                    The Developer ID of the base to connect the project to, or
                    provide null to disconnect from its current base.
                newDeveloperId:
                  type: string
                  minLength: 1
                  description: The new Developer ID of the project
              example:
                name: My Renamed Project
            examples:
              rename:
                summary: Rename a project
                value:
                  name: My Renamed Project
              change_developer_id:
                summary: Change the project's Developer ID
                value:
                  newDeveloperId: my-renamed-project
              connect_to_base:
                summary: Connect the project to a base
                value:
                  baseId: my-base
              disconnect_from_base:
                summary: Disconnect the project from its base
                value:
                  baseId: null
      responses:
        '200':
          description: >-
            Returns the developer ID and name of the updated project, as well as
            the developer ID of the connected base (or null).
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The Developer ID of the project
                  name:
                    type: string
                    description: The name of the project
                  baseId:
                    type: string
                    nullable: true
                    description: >-
                      The Developer ID of the base the project is connected to,
                      or null if not connected to a base
                required:
                  - id
                  - name
                  - baseId
                example:
                  id: my-renamed-project
                  name: My Renamed Project
                  baseId: my-base
        '400':
          description: >-
            Returned when the request fails validation. Common causes:

            - no fields provided to update

            - an empty `name`

            - a `newDeveloperId` that doesn't match the workspace's Developer ID
            format
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message describing the validation failure
                required:
                  - message
              example:
                message: Must provide at least one field to update
        '403':
          description: >-
            Returned when `baseId` is provided but bases are not enabled for the
            workspace
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
              example:
                message: Bases are not enabled for this workspace
        '404':
          description: Returned when the project or the provided base doesn't exist
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message describing what was not found
                required:
                  - message
              example:
                message: 'Could not find project: my-project'
        '409':
          description: >-
            Returned when `newDeveloperId` is already used by another project in
            the workspace
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
              example:
                message: Already exists in workspace
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.