---
title: "Edit Report Settings Template"
method: PATCH
path: "/projects/{projectId}/reports/settings-templates/{reportSettingsTemplateId}"
tags: ["Reports"]
---

# Edit Report Settings Template

`PATCH /projects/{projectId}/reports/settings-templates/{reportSettingsTemplateId}`

## Request

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

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

## Path parameters

- `projectId` integer, required
- `reportSettingsTemplateId` integer, required

## Request body

- ReportSettingsTemplateOperation[]: 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` '/name' | '/currency' | '/unit' | '/mode' | '/config', json-pointer, required: A JSON Pointer as defined by <a href="https://tools.ietf.org/html/rfc6901" target="_blank">RFC 6901</a>

## Response `200`

Report Settings Template was successfully updated

- ReportSettingsTemplateResource: 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` PEReportSettingsTemplate, required
    - `id` integer, required
    - `name` string, required: Template name
    - `currency` 'USD' | 'EUR' | 'JPY' | 'GBP' | 'AUD' | 'CAD' | 'CHF' | 'CNY' | 'SEK' | 'NZD' | 'MXN' | 'SGD' | 'HKD' | 'NOK' | 'KRW' | 'TRY' | 'RUB' | 'INR' | 'BRL' | 'ZAR' | 'GEL' | 'UAH' | 'DDK' | 'PLN', required: Defines report currency
    - `unit` 'strings' | 'words' | 'chars' | 'chars_with_spaces', required: Defines report unit
    - `config` PostEditReportSettingsTemplateConfig, required
      - `baseRates` PostEditReportSettingsTemplateBaseRates, required
        - `fullTranslation` number, required: Applies to all languages by default
        - `proofread` number, required
      - `individualRates` PostEditReportSettingsTemplateIndividualRate[], required: Individual rates (Custom rates for certain languages or users)
        - `languageIds` string[], required: Array of language ids
        - `userIds` integer[], required: Array of user ids
        - `fullTranslation` number, required
        - `proofread` number, required
      - `netRateSchemes` PostEditReportSettingsTemplateNetRateSchemes, required
        - `tmMatch` PostEditReportSettingsTemplateNetRateSchemesTmMatchNetRate[], required
          - `matchType` string, required: Match type, %
          - `price` number, required: Price, %
        - `mtMatch` PostEditReportSettingsTemplateNetRateSchemesMtMatchNetRate[], nullable, required
          - `matchType` string, required: Match type, %
          - `price` number, required: Price, %
        - `aiMatch` PostEditReportSettingsTemplateNetRateSchemesAiMatchNetRate[], nullable, required
          - `matchType` string, required: Match type, %
          - `price` number, required: Price, %
        - `suggestionMatch` PostEditReportSettingsTemplateNetRateSchemesSuggestionMatchNetRate[], nullable, required
          - `matchType` string, required: Match type, %
          - `price` number, required: Price, %
      - `calculateInternalMatches` boolean
      - `includePreTranslatedStrings` boolean
      - `excludeApprovalsForEditedTranslations` boolean: Exclude approvals when the same user has made translations for the string.
      - `preTranslatedStringsCategorizationAdjustment` boolean: Repetitive translations of pre-translated strings are reported under TM or MT match rates instead of Other suggestion match rates, depending on the initial pre-translation type.
      - `useCategoryBasedProofreadRates` boolean: Use match proofreading rates.
      - `useTmEditDistance` boolean: Calculations are based on the edit distance between the TM match and final translation instead of source segment similarity. Matches recorded before July 13, 2026, fall back to traditional source similarity.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, nullable
    - `isPublic` boolean, required: Defines report public
    - `isGlobal` boolean: Defines a report as global

## Other responses

- `400`: Invalid Request Body
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project or settings template with specified id was not found
- `405`: Method Not Allowed

---

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