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

# Changelog

> The latest features and improvements in the DeepL API, plus what's coming next

<Update label="In active development">
  * Support for uploading, modifying, and deleting [translation memories](/docs/learning-how-tos/examples-and-guides/how-to-use-translation-memories) via API
  * Usage reporting by language pair
</Update>

<Update label="June 2026">
  ## June 24 - API Key Permissions General Availability

  * [API key permissions](/docs/getting-started/managing-api-keys#api-key-permissions) are now generally available. Scope a developer API key to specific endpoints so it can perform only the operations you allow.
  * Available on the API Pro, API Developer, API Growth, and API Enterprise plans.
  * Assign scopes when [creating or editing a key](https://www.deepl.com/your-account/keys). A scoped key returns `403 Forbidden` on any endpoint its scopes don't cover.

  ## June 23 - Multiple Glossaries per Translation Request

  * [`POST /v2/translate`](/api-reference/translate/request-translation) and [`POST /v2/document`](/api-reference/document/upload-and-translate-a-document) now accept a `glossary_ids` parameter, allowing you to apply up to 5 glossaries to a single translation request.
  * Useful when terminology is split across multiple glossaries (for example, a shared brand glossary plus a project-specific glossary) that you want applied together without merging them.
  * `glossary_ids` requires `source_lang` and is mutually exclusive with the existing `glossary_id` parameter. Every listed glossary must contain a dictionary for the requested language pair.
  * See the [text translation](/api-reference/translate#request-body-descriptions) and [document translation](/api-reference/document#request-body-descriptions) overview pages for parameter details.

  ## June 17 - `latency_optimized` Now Supported for All Features

  * The `latency_optimized` model type is now fully compatible with all Translate API features, including:
    * [Tag handling v2](/docs/xml-and-html-handling/tag-handling-v2) (`tag_handling_version=v2`)
    * [Style rules](/api-reference/style-rules) (`style_id`)
    * [Custom instructions](/docs/best-practices/custom-instructions) (`custom_instructions`)
    * [Translation memories](/docs/learning-how-tos/examples-and-guides/how-to-use-translation-memories) (`translation_memory_id`)
    * All language pairs, including languages previously restricted to `quality_optimized`
  * Previously, combining `model_type=latency_optimized` with these features would return an error. These restrictions have been removed.

  ## June 15 - API Key Permissions (Private Beta)

  * Developer API keys can now be scoped to specific endpoints, so a key can be limited to, for example, translating text or reading glossaries. See [API key permissions](/docs/getting-started/managing-api-keys#api-key-permissions).
  * Assign one or more scopes when [creating or editing a key](https://www.deepl.com/your-account/keys). A scoped key returns `403 Forbidden` on any endpoint its scopes don't cover.
  * Currently in private beta for select customers. To request access, contact your customer success manager or [DeepL support](https://support.deepl.com/hc/en-us/requests/new).
  * Not yet supported for the Voice API; Voice scopes will follow in a future update.

  ## June 8 - Style Rules and Translation Memories for Document Translation

  * [`POST /v2/document`](/api-reference/document/upload-and-translate-a-document) now accepts `style_id`, `translation_memory_id`, and `translation_memory_threshold`, bringing document translation in line with the parameters already available on text translation.
  * `style_id` applies a configured [style rule list](/api-reference/style-rules) to the document translation.
  * `translation_memory_id` and `translation_memory_threshold` work as on text translation: pass a translation memory ID to apply stored translations, and set a threshold (0-100) to control how closely source text must match a stored segment. See the [translation memories guide](/docs/learning-how-tos/examples-and-guides/how-to-use-translation-memories).

  ## June 5 - Voice API Spoken Terms on External-Provider Languages

  * Spoken terms are now supported on languages whose transcription is provided by external service partners, in addition to languages transcribed by DeepL. The feature remains in beta on all supported languages.
  * External-provider languages are marked `"external": true` in the [`GET /v3/languages?resource=voice`](/api-reference/languages/retrieve-supported-languages-by-resource) response. Call with `include=beta&include=external` to see the full list.
  * See [Voice API Customization](/api-reference/voice#customization) for usage details.

  ## June 3 - Docs MCP Server

  * DeepL's developer documentation now exposes an MCP server at `https://developers.deepl.com/mcp`.
  * This enables AI tools to search the docs directly and get source-grounded answers about the DeepL API, with no API key required.
  * See the [Docs MCP Server](/docs/getting-started/docs-mcp-server) page for setup instructions.

  ## June 1 - API Status Page

  * Launched the [DeepL API Status Page](https://api-status.deepl.com), a dedicated dashboard for monitoring the operational status and availability of the DeepL API.
  * View real-time status and 90-day availability for all API services across all supported regions.
  * Supports both Pro and Free API tiers.
  * Available in 19 languages.
</Update>

<Update label="May 2026">
  ## May 27 - Custom Reporting Tags in deepl-rb

  * The Ruby client library [`deepl-rb`](https://github.com/DeepLcom/deepl-rb) v3.8.0 now accepts an `additional_headers` argument on `translate` calls, so you can send `X-DeepL-Reporting-Tag` for usage reporting.
  * See [Sending Custom Reporting Tags with Client Libraries](/docs/learning-how-tos/cookbook/sending-custom-reporting-tags-from-client-libraries) for the updated Ruby snippet.

  ## May 26 - API Usage Logger Cookbook

  * Added a new cookbook, [API Usage Logger](/docs/learning-how-tos/cookbook/api-usage-logger), showing how to capture per-request DeepL API usage data (billed characters, language pairs, reporting tags, API keys, errors) and explore it through a local Streamlit dashboard.
  * Source code on GitHub: [`DeepLcom/deepl-api-usage-logger`](https://github.com/DeepLcom/deepl-api-usage-logger).

  ## May 20 - Custom Tag Usage Analytics

  * Added [`GET /v2/admin/analytics/custom-tags`](/api-reference/admin-api/organization-usage-analytics) to the Admin API, allowing admins to retrieve usage statistics broken down by custom tags.
  * Supports `aggregate_by=period` (default) to aggregate usage over the full date range, or `aggregate_by=day` for daily breakdowns.
  * Results are paginated; use the `next_page` integer from the response as the `page` parameter in subsequent requests.

  ## May 19 - Voice API Spoken Terms

  * New optional `spoken_terms_id` parameter on [`POST /v3/voice/realtime`](/api-reference/voice/request-session) to improve transcription of frequently used terms like company-specific terminology, acronyms, product names, and team member names.
  * Spoken terms are currently in beta, supported for 18 source languages. Manage them in [DeepL Home](https://www.deepl.com/en/voice/spoken-terms); API management will follow in a future update.
  * The new `spoken_terms` feature and the existing `translated_speech` feature are now exposed as beta in [`GET /v3/languages?resource=voice`](/api-reference/languages/retrieve-supported-languages-by-resource), so clients can discover language support programmatically.
  * Not yet supported for transcription provided by external service partners (languages marked with ⎋). See [Voice API Customization](/api-reference/voice#customization) for details.

  ## May 18 - v3/languages General Availability

  * [`GET /v3/languages`](/api-reference/languages/retrieve-supported-languages-by-resource) and [`GET /v3/languages/resources`](/api-reference/languages/retrieve-resources) are now generally available.
  * **`/v2/languages` and `/v2/glossary-language-pairs` are now deprecated.** Migrate to `/v3/languages`. See the [migration guide](/api-reference/languages/migrate-from-v2-languages) for details.
</Update>

<Update label="April 2026">
  ## April 30 - German (Swiss) and French (Canadian) Beta

  * `de-CH` (German, Swiss) and `fr-CA` (French, Canadian) have moved to beta.
  * During the beta phase, characters translated into these languages are not billed and do not count against your character threshold. Prior to April 30, these languages were generally available and billed normally.
  * See [supported languages](../getting-started/supported-languages) for the complete language list.

  ## April 17 - New Language Variants: German (Swiss) and French (Canadian)

  * Added support for two new target language variants: `de-CH` (German, Swiss) and `fr-CA` (French, Canadian) for text translation. These variants are now generally available.
  * Use these language codes as `target_lang` values to produce translations tailored to Swiss German and Canadian French.
  * Document translation support for these variants will follow in a future release.
  * See [supported languages](../getting-started/supported-languages) for the complete language list.

  ## April 15 - Voice API General Availability

  * The [Voice API](/api-reference/voice) is now available to all DeepL customers with a paid API subscription. This API provides real-time speech transcription and translation and can be used with existing DeepL API keys.

  ## April 9 - Translation Memory API

  * Added support for [translation memories](/docs/learning-how-tos/examples-and-guides/how-to-use-translation-memories) in the DeepL API. Translation memories store previously translated segments so the same source text produces consistent output across projects .
  * New `translation_memory_id` and `translation_memory_threshold` parameters on the [text translation endpoint](/api-reference/translate/request-translation) — pass a translation memory ID to apply stored translations, and set a threshold (0-100) to control how closely source text must match a stored segment.
  * New [`GET /v3/translation_memories`](/api-reference/translation-memory/list-translation-memories) endpoint to retrieve translation memories associated with your account.
  * Support for uploading, modifying, and deleting translation memories via the API will follow.

  ## April 2 - Voice API Language Expansion

  * Added 6 new languages to the [Voice API](/api-reference/voice) for transcription: Bengali (`bn`), Croatian (`hr`), Dutch (`nl`), Irish (`ga`), Maltese (`mt`), and Tagalog (`tl`). Five of these are provided by external service partners; Dutch is provided by DeepL.
  * All supported voice languages can now be used as source languages for transcription. Previously, source language selection was restricted to a subset of the supported languages.
</Update>

<Update label="March 2026">
  ## March 31 - Write API Improvements

  * Improved overall quality of the models used in [DeepL API for Write](/api-reference/improve-text/)
  * Expanded Write `target_lang` support to Japanese (`JA`), Korean (`KO`) and simplified Chinese (`ZH` or `zh-Hans`)
  * Expanded Write support for `writing_style` and `tone` to Spanish (`ES`), Italian (`IT`), French (`FR`), Portuguese (`pt-PT`) and Brazilian Portuguese (`pt-BR`)
  * Allow sending Write texts in multiple source languages in the same request when no `target_lang` is set

  ## March 26 - Expanded Style Rules API

  * Added 5 new endpoints for style rule list operations: `POST /v3/style_rules`, `GET /v3/style_rules/{style_id}`, `PATCH /v3/style_rules/{style_id}`, `DELETE /v3/style_rules/{style_id}`, and `PUT /v3/style_rules/{style_id}/configured_rules`.
  * Added 4 new endpoints for managing custom instructions within style rule lists: `POST /v3/style_rules/{style_id}/custom_instructions`, `GET /v3/style_rules/{style_id}/custom_instructions/{instruction_id}`, `PUT /v3/style_rules/{style_id}/custom_instructions/{instruction_id}`, and `DELETE /v3/style_rules/{style_id}/custom_instructions/{instruction_id}`.
  * See the full API reference [here](/api-reference/style-rules).

  ## March 24 - Write API Character Count Fix

  * Fixed an issue where some [DeepL API for Write](/api-reference/improve-text/) requests under-counted usage.
  * All characters in Write requests are now correctly counted for billing and reporting purposes.
</Update>

<Update label="February 2026">
  ## February 18 - Additional Languages in `v2/languages`

  * New languages added to the [v2/languages endpoint](/api-reference/languages), bringing totals to **101 source languages** and **106 target languages**.
  * These languages were already supported for translation; this change improves automatic discoverability for API clients.
  * Note: 12 supported languages using three-letter base codes (e.g. ACE, CEB, CKB) are not yet included in `v2/languages` for backwards compatibility, but will be available in the upcoming `v3/languages` endpoint.
</Update>

<Update label="January 2026">
  ## January 27 - Voice Usage Limits on Developer Keys

  * Added `speech_to_text_milliseconds` to the `/v2/admin/developer-keys/limits` endpoint and the `ApiKey` response schema, so admins can set and read per-key voice usage limits alongside character limits.
  * See the [Admin API reference](/api-reference/admin-api) for usage.

  ## January 20 - Legacy Auth Deprecation

  Query parameter and request body authentication methods are now [deprecated](/docs/resources/breaking-changes-change-notices/november-2025-deprecation-of-legacy-auth-methods).

  * **API Free users**: All requests using legacy auth now return `403 Forbidden`.
  * **API Pro users**: Brownout period active with intermittent `403` responses. Full deprecation in early February 2026.

  Use the `DeepL-Auth-Key` header instead.

  ## January 19 - Voice API Speech-to-Speech (Closed Beta)

  * New speech-to-speech capability in the [Voice API](/api-reference/voice): synthesize translated audio (TTS output) alongside transcription and text translation in the same WebSocket session.
  * New request parameters on [`POST /v3/voice/realtime`](/api-reference/voice/request-session): `target_media_languages` (target languages for synthesized speech), `target_media_content_type` (audio format), and `target_media_voice` (voice selection).
  * Translated speech is in closed beta and not included in standard API subscriptions.

  ## January 8 - 81 New Languages in GA

  * Promoted all 81 beta languages to standard language support. These languages are now part of the main source and target language lists.
  * These languages are compatible with all `model_type` values including `latency_optimized`.
  * The `enable_beta_languages` parameter is maintained for backward compatibility but has no effect.

  See [here](../getting-started/supported-languages) for the complete language list.
</Update>

<Update label="December 2025">
  ## December 11 - Voice Usage in `/v2/usage` and Analytics

  * `/v2/usage` now returns `speech_to_text_milliseconds_count` and `speech_to_text_milliseconds_limit` for API Pro users, so customers using the Voice API can monitor consumption against their plan.
  * Each product usage item now includes `billing_unit`, `api_key_unit_count`, and `account_unit_count`, making per-product reporting consistent across characters and voice milliseconds.
  * The same `speech_to_text_milliseconds` field was added to usage reports and analytics components used by the [Admin API analytics endpoint](/api-reference/admin-api/get-usage-analytics).
</Update>

<Update label="November 2025">
  ## November 10 - Voice API Initial Release

  * Initial release of the Voice API: `/v1/voice/realtime` (REST) and `/v1/voice/realtime/connect` (WebSocket) for real-time speech transcription and translation. The Voice API is generally available as of [April 15, 2026](#april-15---voice-api-general-availability).
  * Published a new AsyncAPI specification (`voice.asyncapi.yaml` / `voice.asyncapi.json`) documenting the WebSocket streaming protocol. See the [Voice API reference](/api-reference/voice).

  ## November 6 - HE, TH, and VI in `/v2/languages`

  * Hebrew (`HE`), Thai (`TH`), and Vietnamese (`VI`) now appear in the [`/v2/languages`](/api-reference/languages) response, since they support document translation in addition to text translation.
</Update>

<Update label="2025">
  ## Q4 2025

  * Added API reference for the Voice API
  * Add contextual menu in the to make it easier to copy any API documentation page as context for AI tools
  * Add support for style rules in the API to programmatically get your created style rules and translate with them.
  * Overhauled the tag-handling algorithm that backs translation of XML and HTML in the DeepL API. To enable it and benefit from all the improvements, set the `tag_handling_version` parameter to `v2` in the text translation API. See [here](../xml-and-html-handling/tag-handling-v2) for more information.
  * Added new usage analytics endpoint in the Admin API, including key-level reporting. See [here](/api-reference/admin-api/get-usage-analytics) for more details
  * Enabled support for multiple admins in an API subscription
  * Added support for 75 new languages, initially through the `enable_beta_languages` parameter, for text and document translation. Beta languages are not billed during the beta phase and do not yet support glossaries or formality. See [here](../getting-started/supported-languages) for more information
  * Added HE, TH and VI to the languages endpoint, since they are now also available in document translation
  * Added 6 additional beta languages, for text and document translation. See the previous note about 75 new languages.
  * Added a new parameter to the text translation API to allow custom instructions, making it possible to customize the translation behavior (e.g. \["Use a friendly, diplomatic tone"])
  * Added support for JPEG and PNG images in [document translation](/api-reference/document), currently in Beta.

  ## Q3 2025

  * Creation of an admin API, making it possible to manage API keys programmatically. See [here](/api-reference/admin-api) for more information
  * Added support for new language: ES-419 (Latin American Spanish). For this release, this language will be available for the API in next-gen models only. See [here](../getting-started/supported-languages) for more information.
  * Refreshed our API documentation and added new try-it explorers to support interacting with our APIs. See [here](/api-reference) to try it out!

  ## Q2 2025

  * Added support for new language: TH (Thai). For this release, this language will only support text translation. See [here](../getting-started/supported-languages) for more information.
  * Added support for new languages: HE (Hebrew) and VI (Vietnamese). For this release, these languages will be available for Pro v2 API in next-gen models only. See [here](../getting-started/supported-languages) for more information.
  * Added improvements to API glossaries, including the ability to edit glossaries and create multilingual glossaries. Learn more [here](/api-reference/multilingual-glossaries/).
  * Added new events to audit logs for Pro API customers (API key management, cost control and usage limit changes)
  * Improvements to the `/usage` endpoint for Pro API customers ([API reference](/api-reference/usage-and-quota/))
  * Improvements to key-level usage reporting, making it possible to pull reports with a custom date range and to group data by calendar day. Learn more [here](../getting-started/managing-api-keys#get-api-key-level-usage).

  ## Q1 2025

  * Added support for API key-level usage limits, making it possible to set a character limit at the API key-level. Learn more [here](../getting-started/managing-api-keys#set-api-key-level-usage-limits).
  * DeepL API for Write is generally available to Pro API customers, making it possible to improve texts in (at the time of release) 6 different languages. Learn more and get started [here](/api-reference/improve-text/).
</Update>

<Update label="2024">
  ## Q4 2024

  * Added the `model_type` parameter, allowing users to translate text with DeepL's "next-gen" translation models. More information can be found [here](/api-reference/translate#about-the-model_type-parameter).

  ## Q3 2024

  * Added the `show_billed_characters` parameter for text translation, allowing users to optionally include the number of billed characters in the API response. [Learn more here](/api-reference/translate#request-body-descriptions).
  * Added support for a new language for text translation: ZH-HANT (Traditional Chinese). As of this initial release, document translation is not supported for Traditional Chinese. More information is available [here](/docs/getting-started/supported-languages).
  * An official Ruby client library, evolved from a community-written library by Daniel Herzog. You can download it [here](https://rubygems.org/gems/deepl-rb) or find the source code on our [GitHub page](https://github.com/DeepLcom/deepl-rb).
  * Added Romanian (`RO`) as a supported [glossary](/api-reference/multilingual-glossaries) language.

  ## Q2 2024

  * Added support for DOCX and PPTX document minification to the PHP client library, making it possible for users to translate documents that exceed DeepL's file size limit due to embedded media. [Learn more here](https://github.com/DeepLcom/deepl-php?tab=readme-ov-file#document-minification).
  * Added support for API key-level usage reporting. More information is available in the [multiple API keys guide](https://developers.deepl.com/multiple-api-keys#download-a-report-with-key-level-usage).
  * Launched DeepL Pro in [165 new markets](https://www.deepl.com/en/blog/deepl-pro-expands-165-new-markets), bringing the total number of markets where DeepL Pro is available to 228. This means users with billing addresses in these markets can create DeepL Pro API and Free API subscriptions.
  * Added support for new glossary languages: DA (Danish), NB (Norwegian Bokmål), and Swedish (SV).
  * Moved the `context` parameter from [alpha](/docs/getting-started/alpha-and-beta-features) status to general availability. More information about the context parameter is available in the "Request body descriptions" table [here](/api-reference/translate).
  * Added support for SRT (`srt`) files in [document translation](/api-reference/document).

  ## Q1 2024

  * Added support for multiple API keys in a single account for Pro API and Free API users. More information is available in the [multiple API keys guide](https://developers.deepl.com/multiple-api-keys).
  * Added support for a new language for text translation: AR (Arabic). As of this initial release, document translation is not supported for Arabic. More information is available [here](/docs/getting-started/supported-languages).
  * Added support for Korean (KO) as a [glossary](/api-reference/multilingual-glossaries) language, increasing the number of supported glossary language pairs from 55 to 66.
</Update>

<Update label="2023">
  ## Q4 2023

  * Added support for Microsoft Excel (`xlsx`) files in [document translation](/api-reference/document).
  * Released the `context` parameter as an [alpha feature](/docs/getting-started/alpha-and-beta-features) for text translation (see [Request Body Descriptions table](/api-reference/translate#request-body-descriptions) for more information).

  ## Q3 2023

  * Launched DeepL Pro in South Korea ([blog post here](https://www.deepl.com/en/blog/deepl-pro-available-in-south-korea)). This means users with billing addresses in South Korea can [create DeepL Pro API and Free API subscriptions](https://www.deepl.com/ko/pro#developer).
  * Added support for Portuguese (PT), Russian (RU), and Chinese (ZH) as [glossary](/api-reference/multilingual-glossaries) languages, increasing the number of supported glossary language pairs from 28 to 55.
  * Added support for JSON-encoded requests for all remaining endpoints (*note that document upload for document translation still requires*`multipart/form-data`).

  ## Q2 2023

  * Added support for user-provided http clients in [PHP client library](https://github.com/DeepLcom/deepl-php).
  * Released an official [DeepL API Postman collection](https://www.postman.com/deepl-api/workspace/deepl-api-developers/overview).
  * Added formality support for Japanese (JA) in [text](/api-reference/translate) and [document](/api-reference/document) translation.
  * Released in-house PDF translation; removed requirement to send data to the US when translating PDF documents ([blog post](https://www.deepl.com/en/blog/deepl-launches-in-house-pdf-translation-for-improved-security-and-efficiency)).

  ## Q1 2023

  * Released an official [DeepL Custom Connector](https://support.deepl.com/hc/en-us/articles/8644041855516-DeepL-API-custom-connector-for-Microsoft-Power-Automate) for Microsoft Power Automate.
  * Added support for glossaries in any combination of two languages from the following list: EN (English), DE (German), FR (French), IT (Italian), PL (Polish), NL (Dutch), ES (Spanish, JA (Japanese). This represents an increase from 8 to 28 supported glossary language pairs.
  * Added XLIFF as a [document translation](/api-reference/document) format (*note that only documents from version 2.0 are supported, and there is no support for the legacy 1.2 format*).
  * Added support for new languages for text and document translation: KO (Korean) and NB (Norwegian Bokmål). [Blog post here](https://www.deepl.com/en/blog/welcome-korean-and-norwegian).
</Update>

<Update label="2022">
  ## Q4 2022

  * Moved [HTML handling](/docs/xml-and-html-handling/html) out of beta after fixing the most commonly reported user issues.
  * Released an official [Java client library](https://github.com/DeepLcom/deepl-java).
  * Added support for JSON-encoded requests for [text translation](/api-reference/translate), [usage](/api-reference/usage-and-quota), and [languages](/api-reference/languages) endpoints.

  ## Q3 2022

  * Released an official [PHP client library](https://github.com/DeepLcom/deepl-php).
  * Added support for a new language for [text](/api-reference/translate) and [document](/api-reference/document) translation: UK (Ukrainian). [Blog post here](https://www.deepl.com/en/blog/deepl-learns-ukrainian).

  ## Before Q3 2022

  * Released an official DeepL API [OpenAPI spec](https://github.com/DeepLcom/openapi).
  * Released an official [NodeJS client library](https://github.com/DeepLcom/deepl-node).
  * Released an official [.NET client library](https://github.com/DeepLcom/deepl-dotnet).
  * Released an official [Python client library](https://github.com/DeepLcom/deepl-python).
  * Added support for [glossaries](/api-reference/multilingual-glossaries) in the DeepL API.
  * Released an open-source sample project for [translating with DeepL in Google Sheets](https://github.com/DeepLcom/google-sheets-example).
  * Added the `prefer_less` and `prefer_more` formality options on [text translation](/api-reference/translate), giving more graceful fallback than the strict `more` and `less` values for languages without full formality support.
  * Added CSV as an entries format for creating [glossaries](/api-reference/multilingual-glossaries), alongside the existing tab-separated format.
  * Removed the previous limit of 50 `text` parameters per [text translation](/api-reference/translate) request.
  * ...and much more :)
</Update>
