---
title: "Edit Project Placeholder"
method: PATCH
path: "/projects/{projectId}/placeholders/{projectPlaceholderId}"
tags: ["Placeholders"]
---

# Edit Project Placeholder

`PATCH /projects/{projectId}/placeholders/{projectPlaceholderId}`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/projects/{projectId}/placeholders/{projectPlaceholderId}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/docs/projects/:projectId/placeholders/:projectPlaceholderId/patch.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `project.placeholder` (Read and Write).

Updates the settings a custom placeholder has in this project. The placeholder definition itself is not edited here, so the change reaches no other project.

## Path parameters

- `projectId` integer, required
- `projectPlaceholderId` integer, required

## Request body

- ProjectPlaceholderOperation[]: A JSON Patch document as defined by <a href="https://tools.ietf.org/html/rfc6902#section-3" target="_blank">RFC 6902</a>
  - `op` 'replace' | 'test', required: Patch operation to perform
  - `path` '/index' | '/type' | '/isBlocking' | '/formats', json-pointer, required: A JSON Pointer as defined by <a href="https://tools.ietf.org/html/rfc6901" target="_blank">RFC 6901</a>

## Response `200`

Project Placeholder was successfully updated

- ProjectPlaceholderResource: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
  - `data` ProjectPlaceholderResponse, required: A custom placeholder of the organization, with the settings it has in this project
    - `id` integer, nullable: Identifier of the placeholder in this project. Address the placeholder by this value
    - `customPlaceholderId` integer, nullable: Custom placeholder of the organization this row assigns
    - `type` string, nullable: Priority the placeholder is matched with. One of: `high`, `low`
    - `index` integer, nullable: Position of the placeholder among the ones assigned to the project
    - `isBlocking` boolean, nullable: If `true`, a mismatch of the placeholder blocks the translation from being saved
    - `formats` string[]: File formats the placeholder is applied to; an empty array means every format

## Other responses

- `400`: Invalid Request Parameters
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project Placeholder Not Found
- `405`: Method Not Allowed

---

[API](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/revisions/dc68744c5384?raw)
