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

# Changelog

> Stay up to date with the latest changes to Phrase APIs, SDKs, and developer tools.

For full product release notes, see the [Phrase Help Center](https://support.phrase.com/hc/en-us/categories/4930539748124-Release-notes).

<Update label="September 3, 2026" tags={["Strings", "API", "New feature"]}>
  ## Strings API: list and dismiss check issues

  The new Checks API surfaces quality check issues detected in a project so you can review and triage them programmatically:

  * **List check issues** — `GET /projects/{project_id}/checks/issues` returns the project's check issues, filterable by locale, state (`active`, `solved`, `dismissed`, `all`), and check name.
  * **Dismiss a check issue** — `PATCH /projects/{project_id}/checks/issues/{id}/dismiss` removes an issue from the active list.
  * Three checks are reported: `translation_content_length` (translation exceeds the key's character limit), `translation_placeholder_usage` (missing or unexpected placeholders), and `translation_glossary_usage` (translation doesn't follow glossary term translations).

  The Checks API is still in development and might change in subsequent releases. See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="August 31, 2026" tags={["Strings", "API", "Update"]}>
  ## Strings API: link TMS translation memories and term bases to projects

  Create project and Update project now accept two optional fields for the AI translation agent:

  * **`tm_ids`** — TMS translation memory IDs that provide reference translations.
  * **`term_base_ids`** — TMS term base IDs that ensure consistent terminology.

  Set these to ground AI translations in your existing TMS linguistic assets. See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="August 28, 2026" tags={["TMS", "Guide", "New"]}>
  ## New guide: SRX segmentation rules

  Added a guide to SRX (Segmentation Rules eXchange), the XML format Phrase TMS uses for custom segmentation rules — the format's structure, worked examples, and the segmentation rules API operations to list, create, edit, and export rules.

  See [SRX overview](/en/guides/srx/overview).
</Update>

<Update label="August 27, 2026" tags={["TMS", "Guide", "New"]}>
  ## New guide: working with MXLIFF

  Added a dedicated guide documenting MXLIFF, Phrase's bilingual file format for TMS jobs — what it's for, which API operations produce and consume it, and the full element/attribute reference.

  See [MXLIFF overview](/en/guides/mxliff/overview) and [MXLIFF structure](/en/guides/mxliff/structure).
</Update>

<Update label="August 25, 2026" tags={["Style Guides", "API", "Update"]}>
  ## Style Guides API: restricted library access, plus new fields, filters and error code changes

  `POST /api/v1/styleguides/search` can now return `403` with error code `STYLEGUIDE_LIBRARY_RESTRICTED` for organizations that restrict browsing of the shared Style Guide library to users with Manage rights. Callers with Manage rights are unaffected.

  A few other Rules and Style Guides behaviors are also documented here for the first time:

  * **Rule limit error codes renamed** — the `409 Conflict` responses on rule create/update now use `RULE_ACTIVE_LIMIT_REACHED` and `RULE_AI_CHECK_LIMIT_REACHED` (previously documented as `ACTIVE_RULE_LIMIT_REACHED` / `AI_CHECK_LIMIT_REACHED`).
  * **Rule activation lock** — create/update Rule can return `503 RULE_ACTIVATION_LOCK_UNAVAILABLE` under concurrent limit-affecting requests for the same organization; retry the request.
  * **Auto-disable on scope change** — if editing a rule's Content Group/Language scope alone would breach the active-rule or AI-check limit, the rule is auto-disabled and the update still succeeds, rather than being rejected. An explicit `active: true` / `aiCheckEnabled: true` still fails with `409 Conflict` on a breach.
  * **Language code normalization** — `languages` on Rules now accepts non-canonical forms (e.g. `en_US`) and normalizes them to BCP-47 (`en-US`).
  * **Auto-generated rule name** — Rule responses include a system-generated `name` field (not directly editable), which may be briefly absent right after a rule is created.
  * **Content Group filter on Style Guide search** — `POST /api/v1/styleguides/search` accepts a `contentGroupIds` filter.
  * **Rule count on Style Guides** — Style Guide responses include a `rulesCount` field.
  * **"All Groups" system content group on Rules** — filtering Rules by the organization's Control Hub "All Groups" system content group ID also matches rules linked via `allContentGroups: true`; combining that ID with any other content group ID on create/update is rejected with `400 INVALID_ARGUMENT`.

  See the [Style Guides API reference](/en/api/style-guides/introduction).
</Update>

<Update label="August 20, 2026" tags={["TMS", "API", "New feature"]}>
  ## TMS API: PHRASE connector type for Job Sync with Phrase Strings

  The connector API now supports a `PHRASE` connector type that links a TMS organization to a Phrase Strings account and automatically routes translation jobs between the two products (Job Sync).

  * Create it with `POST /api2/v2/connectors` using `type: PHRASE` and a `PHRASE` configuration object.
  * Configure per-sync behavior with fields such as `phraseAccountId`, `phraseMembershipId`, `phraseUpdateTranslationKeys`, `phraseUpdateTranslations`, `phraseCompleteJob`, `phraseCompleteLocale`, `phraseImportDueDates`, `phraseImportIncludeScreenshots`, `phraseImportIncludeTags`, `phraseLanguageMapping`, and more.
  * The `type` field on connector responses now exposes its full enum, so you can discriminate PHRASE connectors from `GITHUB`, `AMAZON_S3`, `SALESFORCE`, and the other supported integrations without string-matching descriptions.

  See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="August 19, 2026" tags={["TMS", "API", "New feature"]}>
  ## TMS API: clone jobs into new target languages

  The new `POST /api2/v1/projects/{projectUid}/jobs/clone` endpoint clones one or more jobs into additional target languages in a single call.

  * Provide `jobPartTargetLangs` with the source job UIDs and the target languages to create for each.
  * For projects with workflows, pass `workflowSettings` to set linguist or vendor assignments, due date, and notify-linguist email template and reminder interval per workflow step.
  * Set `keepSplit: true` to preserve the split structure of the source jobs in the clones.
  * Multilingual jobs are rejected, and the project must have more than one target language and available job capacity.

  See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="August 19, 2026" tags={["TMS", "API", "Update"]}>
  ## TMS API: suggested-providers `limit`, safer connector deletion, and PKCE for connector auth

  * `POST /api2/v2/projects/{projectUid}/jobs/providers/suggest` now accepts an optional `limit` to cap the response to the top-N most relevant providers. If omitted, all relevant providers are returned.
  * `DELETE /api2/v2/connectors/{connectorId}` now returns `400 Bad Request` when the connector is still referenced by an Automated Project Creation setting, instead of silently breaking that automation. Detach the connector from APC settings before deleting it.
  * `AuthPageDto` responses from the connector OAuth flow now include a `codeVerifier` alongside `oauthClientId` and `reconnectParameter`, enabling PKCE-based OAuth clients.

  See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="August 17, 2026" tags={["TMS", "API", "Update"]}>
  ## TMS API: richer vendor details on list and get vendor

  Vendor responses (`GET /api2/v1/vendors`, `GET /api2/v1/vendors/{vendorUid}`, and endpoints that embed a vendor) now include additional fields on `VendorDtoV1`:

  * `active` — whether the vendor organization's edition and subscription allow it to act as a vendor.
  * `buyerOwner` — the default project owner configured for the vendor, or `null` if no buyer relationship exists.
  * `createdBy` and `dateCreated` — who set up the vendor connection and when.
  * `timezone` — the vendor organization's timezone.

  Use these to display vendor status and provenance in your integrations without a follow-up call.

  See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="August 13, 2026" tags={["TMS", "API", "New feature"]}>
  ## TMS API: due date schemes, user profile, and connector helpers

  Several new TMS endpoints are now available:

  * **Due Date Schemes** — create, list, get, edit, and batch-delete due date schemes. Attach one to a service to auto-calculate due dates for a project and its jobs when created via a Submitter Portal or Automated Project Creation.
  * **User profile** — `GET /api2/v1/userProfile` and `PUT /api2/v1/userProfile` let the current user read and update their own profile without needing user-management rights.
  * **Suggested providers for multiple jobs** — `POST /api2/v2/projects/{projectUid}/jobs/providers/suggest` returns provider suggestions for a batch of jobs in one call.
  * **Connector auth page URL** and **Test connection of existing connector** — programmatically kick off the connector OAuth flow and verify that a saved connector still works.

  See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="August 13, 2026" tags={["TMS", "API", "Update"]}>
  ## TMS API: per-language machine translate settings on project templates

  `PUT /api2/v3/projectTemplates/{projectTemplateUid}/mtSettings` now accepts a `machineTranslateSettingsPerLangs` array so you can update MT settings for specific target locales only, leaving the other locales untouched. If both `machineTranslateSettings` and `machineTranslateSettingsPerLangs` are set, the per-language values take precedence.

  When a template is currently in bulk mode (one setting for all locales) and you switch to per-language mode, the bulk value is copied onto every locale you don't list before being cleared, so effective settings for other locales don't change as a side effect.

  See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="August 10, 2026" tags={["TMS", "API", "New feature"]}>
  ## TMS API: edit multiple LQA assessments in one call

  The new `PUT /api2/v1/lqa/assessments/edit` endpoint marks multiple Language Quality Assessments as edited in a single request, so you no longer need to loop over jobs one by one.

  See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="August 7, 2026" tags={["Platform", "Authentication", "New feature"]}>
  ## Service Accounts: Machine-to-Machine authentication

  Server-to-server integrations can now authenticate without a human user in the loop. Create a Service Account in **Organization Settings → Service Accounts** to get a `client_id`/`client_secret` pair and exchange them directly for an access token via the standard OAuth 2.0 Client Credentials flow — no API token or token-exchange step needed.

  * Each Service Account provisions a bot user scoped to one or more Phrase products.
  * Bot users can read/write content, run analyses, and work with translation memories, but can't create or modify human users, or be assigned as project owners. They don't count toward seat quotas.

  See the [Platform authentication guide](/en/api/platform/authentication#machine-to-machine-authentication-service-accounts).
</Update>

<Update label="August 6, 2026" tags={["Content Groups", "API", "New feature"]}>
  ## Content Groups API: SYSTEM content group

  Every organization now has one platform-managed **SYSTEM** content group ("All Groups"), representing "applies to all content groups." `Group` objects now carry a `groupType` field (`SYSTEM` or `USER`), and references now carry a `referenceType` field (`SYSTEM` or `USER`).

  * Use the literal string `SYSTEM` as an alias for the group id on `GET /groups/{groupId}` and `GET /groups/{groupId}/references`. It is not accepted on `PUT`/`DELETE /groups/{groupId}` — the SYSTEM group is immutable and those calls return `403`.
  * `listGroups` and `listGroupReferences` accept a new `includeSystem` query parameter (default `true`) to include/exclude the SYSTEM group and its references.
  * `PLATFORM_STYLE_GUIDE`, `TMS_PROJECT`, and the newly added `TMS_PROJECT_TEMPLATE` object type are never linked to the SYSTEM group; only `PLATFORM_QA_CHECK` and `PLATFORM_STYLE_RULE` references can appear under it.

  See the [Content Groups API reference](/en/api/control-hub/introduction#the-system-content-group).
</Update>

<Update label="July 20, 2026" tags={["Style Guides", "API", "Update"]}>
  ## Style Guide API: active-rule and AI-check limits per Content Group and Language

  Each (Content Group, Language) pair now allows at most **50 active rules** and **20 active rules with AI check
  enabled**. Rules are counted whether linked directly to a Content Group/Language or via
  `allContentGroups`/`allLanguages`.

  * Explicitly requesting `active: true` or `aiCheckEnabled: true` when a pair is already at its limit is rejected
    with `409 Conflict` (`RULE_ACTIVE_LIMIT_REACHED` / `RULE_AI_CHECK_LIMIT_REACHED`).
  * When these flags are omitted, the API now decides them automatically based on remaining room, instead of
    always defaulting to `true`.
  * Style Guide rule extraction respects the same limits: extracted rules beyond the remaining room are saved but
    left inactive, without affecting rules already active for that Content Group and Language.

  See [Limits](/en/api/style-guides/concepts#limits) in the Style Guide API reference.
</Update>

<Update label="July 10, 2026" tags={["Studio", "API", "Update"]}>
  ## Studio API: AI model value `quokka` is now `aita`

  The AI model name enums for the [Update project settings](/en/api/studio/projects/update-project-settings) endpoint (`chatModelName`, `insightsModelName`, and `translationModelName`) previously exposed the internal codename `quokka`. The AI Translation Agent is now selected with the value `aita` — a meaningful external name in line with the other options (`plai`, `gpt-5-mini`, `gpt-4o-mini`).

  * Use `aita` when setting one of these fields to the AI Translation Agent.
  * The old `quokka` value is still accepted for backward compatibility, but is no longer documented and may be removed in a future release.

  See the [Studio API reference](/en/api/studio/introduction).
</Update>

<Update label="July 8, 2026" tags={["Content Groups", "API", "New feature"]}>
  ## Content Groups API now available

  The [Content Groups API](/en/api/control-hub/introduction) is now documented in the Developer Hub.

  Use it to manage **content groups** — organization-scoped collections that link platform objects such as projects, style guides, style rules, and AI quality checks together for coordinated workflows.
</Update>

<Update label="July 3, 2026" tags={["Strings", "API", "New feature"]}>
  ## Strings API: job automations can target multiple projects

  Job automations previously accepted `project_ids` as an array but used only the first entry. You can now associate a job automation with **multiple projects** in a single call. Multi-project automations require the `advanced_job_automation` plan feature — accounts without it receive a `422` with `project_ids` in the error field.

  See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="July 2, 2026" tags={["Studio", "API", "Update"]}>
  ## Studio API: clarified subtitle updates — `words` is the source of truth

  The Update/Get Subtitle reference now spells out that a segment's `words` array (word-level text and timings) is authoritative for both subtitle rendering and dubbing text-to-speech. The `text` field is only a human-readable mirror and is ignored when rendering or synthesizing.

  * To change what a segment says (for example, shortening a dubbing line before a redub), edit its `words` — not just `text`.
  * Never submit a segment with an empty `words` array: it is silently dropped the next time the track is read, and produces no dubbing audio. This is the usual cause of a track that "comes back empty" after an update.
  * The endpoint is a bulk replace: always send the full segment list, then list changed ids in `segmentsToRedub` to regenerate their audio.

  See the [Studio API reference](/en/api/studio/introduction).
</Update>

<Update label="July 2, 2026" tags={["Quality Evaluator", "API", "Deprecation"]}>
  ## Quality Evaluator API: v1 CRUD and v2 endpoints deprecated

  All v1 AI Check CRUD endpoints (`GET/POST /v1/aiChecks`, `GET/PUT/DELETE /v1/aiChecks/{uid}`), v1 Quality Profile CRUD endpoints, `PUT /v2/aiChecks/{uid}`, and `POST /v2/evaluation` are now flagged as **deprecated** in the OpenAPI spec. Migrate to the v3 Content Group–based endpoints:

  * `POST /v3/evaluation` for evaluating segments.
  * `GET /v3/qualityProfiles/{contentGroupId}` for resolving a Quality Profile from a Content Group.

  The deprecated endpoints continue to work for now. See the [Quality Evaluator API reference](/en/api/quality-evaluator/introduction).
</Update>

<Update label="July 1, 2026" tags={["Strings", "API", "New feature"]}>
  ## Strings API: link and unlink keys with content strategies

  The Key Links endpoints now cover the full lifecycle of shared translations between a parent key and its children:

  * **Link child keys** — designate a parent and attach one or more children so their translations derive from the parent.
  * **List child keys** — retrieve the full link record for a parent, including all attached children.
  * **Unlink a single child** — detach one child; its translations inherit the parent's current content and are marked unverified for reviewer confirmation.
  * **Batch unlink** — detach several children in one request, or dissolve the entire group with `unlink_parent: true`.
  * **Content strategy on unlink** — choose `keep_content` (default; copies the parent's translations into each detached child) or `remove_content` (clears them).

  Key Links are available on main projects only. See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="July 1, 2026" tags={["Strings", "API", "Update"]}>
  ## Strings API: document list search is now a prefix match

  The `q` parameter on **List documents** now performs a case-insensitive **prefix** match on the document name instead of a substring match. For example, `q=invoice` returns documents whose names *start* with "invoice", not those that merely contain it. If you relied on the previous substring behavior, adjust your queries accordingly.

  The **Delete document**, **Get screenshot**, and **Delete screenshot** endpoints also received clearer descriptions and error contracts. See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="June 25, 2026" tags={["Strings", "API", "New feature"]}>
  ## Strings API: assign a Language AI profile per locale

  Locales now accept an optional `language_ai_profile` identifier when you create or update a locale. The selected profile drives Language AI behavior for that locale, and the assigned profile is returned on the locale resource.

  See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="June 25, 2026" tags={["Strings", "API", "Update"]}>
  ## Strings API: prefix-based locale downloads

  Locale download requests now accept two related options in the request body:

  * **`translation_key_prefix`** — strip the given prefix from key names in the exported file.
  * **`filter_by_prefix`** — when `true`, only export keys that match `translation_key_prefix`, and remove the prefix from the output.

  Use these to export a subset of keys with cleaner names. Note: stripping a prefix can produce duplicate key names if other keys collide once the prefix is removed.

  See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="June 23, 2026" tags={["Connectors", "API", "New feature"]}>
  ## Connectors API: full reference for all seven connectors

  The Connectors API reference now documents every supported connector end-to-end, not just Contentful. Available connectors:

  * **Files** — sync localizable files from arbitrary file sources.
  * **GitHub** — connect repositories to TMS projects.
  * **Braze** — pull content blocks and email templates for translation.
  * **Contentful** — sync entries and assets.
  * **Google Drive** — translate documents stored in Drive.
  * **Tridion Docs** — exchange content with Tridion Docs.
  * **Optimizely** — localize Optimizely content.

  Each connector exposes the same request/response contract, so you can build custom flows against a consistent interface. See the [Connectors API reference](/en/api/connectors/introduction).
</Update>

<Update label="June 23, 2026" tags={["Strings", "API", "New feature"]}>
  ## Strings API: review due dates on jobs

  Job responses now include a `review_due_date` field so you can see when a job's review stage is due. The field returns `null` when the project does not have the review workflow enabled.

  See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="June 23, 2026" tags={["Strings", "API", "Update"]}>
  ## Strings API: branch comparison response schema

  The branch comparison endpoint now returns a fully described response. For each resource type (translation keys, translations, locales, tags), the response lists changes made on the base branch, changes made on the feature branch, and any conflicts — making it easier to surface branch diffs and resolve merges programmatically.

  See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="June 19, 2026" tags={["Quality Evaluator", "API", "New feature"]}>
  ## Quality Evaluator API v3: Content Group–based evaluation

  Quality Evaluator now resolves AI Checks and Quality Profiles dynamically from Content Groups, so a single call applies the right checks for the target content:

  * **Evaluate against a Content Group** — `POST /v3/evaluation` evaluates segments using the AI Checks resolved from the supplied `contentGroupId`. When no checks are associated, segments are returned with an empty `results` array instead of an error.
  * **Resolve a Quality Profile** — `GET /v3/qualityProfiles/{contentGroupId}` returns the Quality Profile resolved for a Content Group.
  * **Restrict AI Checks to specific locales** — `PUT /v2/aiChecks/{uid}` accepts an optional `locales` field so a check can be limited to certain target locales. Omit the field to preserve existing restrictions, or send an empty array to clear them.

  The previous AI Check CRUD endpoints (`/v1/aiChecks*`), Quality Profile CRUD endpoints (`/v1/qualityProfiles*`), and `POST /v2/evaluation` are now deprecated. Migrate to the v3 Content Group–based endpoints. See the [Quality Evaluator API introduction](/en/api/quality-evaluator/introduction).
</Update>

<Update label="June 19, 2026" tags={["Strings", "API", "New feature"]}>
  ## Strings API: name your repo syncs

  Repo syncs now support an optional `name` field (up to 100 characters) so you can give each sync a custom display name. When the name is null or blank, the sync continues to display using its associated project name. Set `name` when creating or updating a repo sync to make repository connections easier to identify in lists and dashboards.

  See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="June 16, 2026" tags={["Studio", "API", "New feature"]}>
  ## Studio API: update projects and manage recording subtitles

  Three new endpoints expand what you can do with the Studio API:

  * **Update project settings** — `PATCH /v1/projects/{id}` partially updates AI model preferences, TTS provider, translation memory / MT profile assignment, and sharing visibility. Only the fields you send are changed.
  * **Get recording subtitles** — `GET /v1/projects/{projectId}/recordings/{recordingId}/subtitles` returns the segmented subtitle for a recording.
  * **Update recording subtitles** — `PUT /v1/projects/{projectId}/recordings/{recordingId}/subtitles` writes subtitle segments back to a recording.

  See the [Studio API reference](/en/api/studio/introduction).
</Update>

<Update label="June 15, 2026" tags={["TMS", "API", "New feature"]}>
  ## TMS API: link projects to content groups

  Three new TMS endpoints let you manage a project's content group association:

  * `GET /api2/v1/projects/{projectUid}/contentGroup` — get the content group linked to a project.
  * `POST /api2/v1/projects/{projectUid}/contentGroup` — link a project to a content group.
  * `DELETE /api2/v1/projects/{projectUid}/contentGroup` — unlink a project from its content group.

  See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="June 15, 2026" tags={["TMS", "Quality Evaluator", "Update"]}>
  ## TMS: quality evaluation moved under projects, plus segment warnings storage

  The endpoint that triggers AI quality evaluation has moved to a project-scoped path:

  * **New:** `POST /api2/v1/projects/{projectUid}/jobs/evaluateQuality`
  * **Replaces:** `POST /api2/v1/qualityProfiles/evaluate`

  A new `POST /api2/v1/qualityProfiles/segmentWarnings` endpoint also lets you store evaluation warnings for a job part. Update any integrations that called the previous endpoint. See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="June 11, 2026" tags={["Strings", "API", "Update"]}>
  ## Strings API: larger upload size for unmentioned-key reporting

  When you upload translations, the response field that counts keys not mentioned in the upload is now calculated for uploads up to **100,000 keys** (previously 10,000). Larger uploads still report `0`.

  See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="June 9, 2026" tags={["Platform", "SCIM", "API"]}>
  ## SCIM endpoints moved to the Platform API

  SCIM user provisioning is now part of the Phrase Platform API at `/scim/...` (for example, `GET /scim/Users`, `POST /scim/Users`, `GET /scim/ServiceProviderConfig`). The previous `/api2/v1/scim/...` paths under TMS have been removed.

  Point your SCIM identity provider at the Platform endpoints. See the [Platform API reference](/en/api/platform/introduction).
</Update>

<Update label="June 9, 2026" tags={["Strings", "API", "New feature"]}>
  ## Strings API: fall back to another locale for unverified translations

  Locale download endpoints accept a new optional query parameter, `fallback_for_unverified_translations`. When `true`, translations in a non-final state are replaced by the fallback locale's translation at export time:

  * In the **simple** workflow, "non-final" means `unverified`.
  * In the **review** workflow, it also includes `translated` (awaiting review).

  No stored translations are modified. Requires `fallback_locale_id` or `use_locale_fallback` to be set. See the [Strings API reference](/en/api/strings/introduction).
</Update>

<Update label="June 5, 2026" tags={["Strings", "API", "Update"]}>
  ## Strings API: Identify how jobs were created

  Job responses in the Strings API now include two new fields so you can see where a job came from:

  * **`automation_id`** — the ID of the automation that created the job, or `null` if it was created manually
  * **`job_template_id`** — the ID of the job template the job was created from, or `null` if no template was used

  See the [Strings API reference](/en/api/strings/introduction) for the updated schema.
</Update>

<Update label="May 26, 2026" tags={["MCP Server", "Strings", "New feature"]}>
  ## MCP Server v0.10.0: Strings Repo Sync

  The Phrase MCP Server `v0.10.0` adds Repo Sync tools for Strings, so you can manage repository synchronization between Strings projects and Git repositories directly from your MCP client.

  See the [MCP Server guide](/en/guides/mcp) for full details.
</Update>

<Update label="May 22, 2026" tags={["TMS", "New feature"]}>
  ## TMS: Quality estimation warnings and translation memory alignment

  Two new TMS API endpoints are available:

  * **Quality estimation warnings** — `POST /api2/v1/qualityProfiles/qeWarnings` returns AI-generated QE warnings for selected job parts, paginated by segment.
  * **Translation memory alignment** — `POST /api2/v2/transMemories/{transMemoryUid}/align` aligns supplied source and target files using the TM's source locale and returns an aligned XLSX file.

  See the [TMS API reference](/en/api/tms/latest/introduction) for details.
</Update>

<Update label="May 22, 2026" tags={["TMS", "Quality Evaluator", "Update"]}>
  ## Quality evaluation: lock and confirm passing segments

  The TMS endpoint that triggers AI quality evaluation accepts two new optional parameters:

  * `lockSegments` (default `true`) — locks segments that pass all AI checks.
  * `confirmSegments` (default `false`) — confirms segments that pass all AI checks.

  Use these to automate post-evaluation segment status changes. See the [TMS API reference](/en/api/tms/latest/introduction).
</Update>

<Update label="May 21, 2026" tags={["Style Guides", "New API"]}>
  ## Style Guides API

  The Style Guide API is now public. Manage organization-wide writing guidelines through the API: create and update Markdown style guides per language, version every revision, search and filter, and bulk-delete.

  See the [Style Guides API Reference](/en/api/style-guides/introduction) to get started.
</Update>

<Update label="May 15, 2026" tags={["MCP Server", "TMS", "New feature"]}>
  ## MCP Server v0.9.0: Analysis and Quotes for TMS

  The Phrase MCP Server `v0.9.0` now supports the TMS Analysis and Quotes APIs. New tools let you create and manage analyses and quotes directly from your MCP client.

  See the [MCP Server guide](/en/guides/mcp) for full details.
</Update>

<Update label="May 14, 2026" tags={["MCP Server", "Strings", "New feature"]}>
  ## MCP Server v0.8.0: Strings screenshots

  The Phrase MCP Server `v0.8.0` adds screenshot support for Strings with new `create_screenshot` and `create_screenshot_marker` tools, so you can attach visual context to keys directly from your MCP client.

  See the [MCP Server guide](/en/guides/mcp) for full details.
</Update>

<Update label="May 8, 2026" tags={["MCP Server", "New feature"]}>
  ## MCP Server v0.7.0: Google Drive connector, Quality Evaluator, and base64 uploads

  The Phrase MCP Server `v0.7.0` adds several new capabilities:

  * **Google Drive connector** — manage Google Drive connector resources from the MCP Server
  * **Quality Evaluator** — evaluate translation quality through new Quality Evaluator tools
  * **Base64 file uploads** — file upload tools now accept base64-encoded `file_content` as an alternative to `file_path`

  See the [MCP Server guide](/en/guides/mcp) for full details.
</Update>

<Update label="May 4, 2026" tags={["Quality Evaluator", "API"]}>
  ## Quality Evaluator API

  The new Quality Evaluator API enables automated, AI-powered assessment of translation quality. Define quality requirements in natural language, group them into reusable profiles, and evaluate translation segments at scale.

  * **AI Checks** — create custom checks from natural language quality requirements
  * **Quality Profiles** — group AI Checks into reusable profiles
  * **Analytics** — track evaluation metrics and AI unit consumption over time

  See the [Quality Evaluator API introduction](/en/api/quality-evaluator/introduction) to get started.
</Update>

<Update label="April 27, 2026" tags={["MCP Server", "TMS", "New feature"]}>
  ## MCP Server: Termbase and Translation Memory management

  The Phrase MCP Server now supports managing Termbases and Translation Memories in TMS. New tools are available for:

  * **Termbases** — list, get details, search, import, and export
  * **Translation Memories** — list, get details, search, import, and export

  These tools are available as part of the TMS product in the MCP Server. See the [MCP Server guide](/en/guides/mcp) for full details.
</Update>

<Update label="April 24, 2026" tags={["MCP Server", "Breaking change"]}>
  ## MCP Server package renamed

  The Phrase MCP Server npm package has been renamed and is now published under the `@phrase` organization.

  **Before:**

  ```json theme={null}
  "args": ["-y", "phrase-mcp-server"]
  ```

  **After:**

  ```json theme={null}
  "args": ["-y", "@phrase/phrase-mcp-server"]
  ```

  Update your MCP client configuration to use the new package name. The old `phrase-mcp-server` package is no longer maintained.

  See the [MCP Server quick start](/en/guides/mcp) for full configuration examples.
</Update>
