All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.22.1 - 2026-08-18
- In preparation for source language detection with glossaries, text
translation no longer rejects a glossary with no
sourceLanguageCodebefore sending the request. Whether the request succeeds is determined by the API. Document translation still requires a source language with a glossary. TextTranslateOptions.GlossaryIdsandDocumentTranslateOptions.GlossaryIdsare now settable, so they can be assigned in an object initializer instead of only appended to.
1.22.0 - 2026-08-11
- Added support for using multiple glossaries in text and document translation
via the
GlossaryIdsproperty (up to 5 glossary IDs) inTextTranslateOptionsandDocumentTranslateOptions. - Added support for style rules in document translation via the
StyleIdproperty inDocumentTranslateOptions. - Added support for translation memories in document translation via the
TranslationMemoryIdandTranslationMemoryThresholdproperties inDocumentTranslateOptions. - Added support for the translation memory management endpoints in the
DeepLClientclass:GetTranslationMemoryAsync(),ListTranslationMemorySegmentsAsync(),DeleteTranslationMemoryAsync(),CreateTranslationMemoryImportAsync(),UploadTranslationMemoryFileAsync(),CreateTranslationMemoryExportAsync(),GetTranslationMemoryJobAsync(),WaitUntilTranslationMemoryJobDoneAsync(),DownloadTranslationMemoryExportAsync(),ImportTranslationMemoryFromFilepathAsync()andExportTranslationMemoryToFilepathAsync(), along with theTranslationMemorySegments,TranslationMemorySegment,TranslationMemoryTargetSegment,TranslationMemoryImport,TranslationMemoryExport,TranslationMemoryJobandTranslationMemoryJobResultmodel classes. Please refer to the README for usage instructions. - Added the
CreationTimeandUpdatedTimeproperties toTranslationMemoryInfo.
- Requests to the pre-signed storage URLs used for translation memory import and export now
carry a separate, minimal header set rather than the DeepL API headers with
Authorizationfiltered out. Headers supplied viaDeepLClientOptions.Headersare no longer sent to those URLs either — only theUser-Agentand the per-requestContent-Type. Proxy settings are unaffected.
- Fixed incorrect example texts in test suite for several languages (Danish, Indonesian, Japanese, Portuguese, and Russian).
1.21.0 - 2026-04-09
- Added support for translation memories in text translation via
TranslationMemoryIdandTranslationMemoryThresholdproperties inTextTranslateOptions. - Added
ListTranslationMemoriesAsync()method to theDeepLClientclass for listing available translation memories.
- Fixed
gitlab releaseCI job by explicitly setting therelease-cliimage to avoid issues with a missing$HOMEenvironment variable from the global image.
1.20.0 - 2026-03-26
- Added new language constants from January 2026 API release of 81 new languages.
- Added
ApiPostJsonAsync(),ApiPutJsonAsync(), andApiPatchJsonAsync()methods toDeepLHttpClient, enabling JSON-encoded API calls. - Added support for style rules CRUD endpoints in the
DeepLClientclass:CreateStyleRuleAsync(),GetStyleRuleAsync(),UpdateStyleRuleNameAsync(),UpdateStyleRuleConfiguredRulesAsync(), andDeleteStyleRuleAsync(). - Added support for style rule custom instruction CRUD endpoints in the
DeepLClientclass:CreateStyleRuleCustomInstructionAsync(),GetStyleRuleCustomInstructionAsync(),UpdateStyleRuleCustomInstructionAsync(), andDeleteStyleRuleCustomInstructionAsync(). Please refer to the README for usage instructions.
- Updated formality tests to accept either formal or informal output when using default formality, since the default formality is automatic.
- Updated
TestTranslateWithModelType()to expect themodel_type_usedto be non-null if themodel_typeis specified in the request - Updated
TestMixedDirectionText()to add a missing</p>tag - Improved
NotFoundExceptionerror message by removing the misleading "check ServerUrl" suggestion.
- Fixed relative URI resolution so that a
ServerUrlwith a path prefix (e.g. a reverse-proxy base path likehttps://proxy.example.com/deepl/) is correctly preserved when constructing API request URLs. Previously, API paths starting with/were treated as absolute paths by RFC 3986 URI resolution, causing the base path to be silently discarded.
1.19.0 - 2025-12-10
- Added
TagHandlingVersionparameter toTextTranslateOptionsto specify which version of the tag handling algorithm to use. Options arev1andv2.
1.18.0 - 2025-12-03
- Added
CustomInstructionsproperty toTextTranslateOptionsto customize translation behavior with up to 10 instructions (max 300 characters each). Only supported for target languages:de,en,es,fr,it,ja,ko,zhand their variants. Note: using theCustomInstructionsparameter will usequality_optimizedmodel type as the default. Requests combiningCustomInstructionsand theLatencyOptimizedmodel type will be rejected.
1.17.0 - 2025-11-12
- Added support for style rules in text translation via the
StyleIdproperty inTextTranslateOptions. - Added
GetAllStyleRulesAsync()method toDeepLClientto retrieve all available style rules with optional pagination and detailed configuration. - Added new model classes:
StyleRuleInfo,ConfiguredRules, andCustomInstructionto support style rules functionality.
1.16.0 - 2025-11-04
- Added
ExtraBodyParametersoption to text and document translation methods to pass arbitrary parameters in the request body. This can be used to access beta features or override built-in parameters (such astarget_lang,source_lang, etc.).
1.15.0 - 2025-04-25
- Added support for the /v3 Multilingual Glossary APIs in the client library while providing backwards compatability for the previous /v2 Glossary endpoints. Please refer to the README or upgrading_to_multilingual_glossaries.md for usage instructions.
1.14.0 - 2025-02-25
1.13.0 - 2025-01-28
- Added support for the Write API in the client library, the implementation
can be found in the
DeepLClientclass. Please refer to the README for usage instructions.
- The main functionality of the library is now also exposed via the
DeepLClientclass. Please change your code to use this over theTranslatorclass whenever convenient.
- Fixed code example for getting glossary entries in the README
- #58 thanks to KurtBildeSDU
1.12.0 - 2025-01-09
- Added document minification as a feature before document translation, to allow translation of large docx or pptx files. For more info check the README.
1.11.0 - 2024-11-15
- Added
ModelTypeoption for text translation to use models with higher translation quality (available for some language pairs), or better latency. Options are:ModelType.QualityOptimized ('quality_optimized'),ModelType.QualityOptimized ('latency_optimized'), andModelType.QualityOptimized ('prefer_quality_optimized')
- Added the
ModelTypeUsedfield to text translation response, that indicates the translation model used when theModelTypeoption is specified.
1.10.0 - 2024-09-17
- Added
BilledCharactersto the translate text response.
1.9.0 - 2024-03-15
-
New language available: Arabic (MSA) (
'ar'). Add language code constants and tests.Note: older library versions also support the new language, this update only adds new code constants.
- Change document upload to use the path
/v2/documentinstead of/v2/document/(no trailing/). Both paths will continue to work in the v2 version of the API, but/v2/documentis the intended one. - Made
DeepLExceptionand subclasses,UsageandJsonFieldsStructconstructors public, to allow for easier mocking of theITranslatorinterface.- #40 thanks to PascalVorwerkSaixon
1.8.0 - 2023-11-03
- Add optional
Contextparameter for text translation, that specifies additional context to influence translations, that is not translated itself.
- Improvements to readme examples.
1.7.1 - 2023-04-17
- Changed document translation to poll the server every 5 seconds. This should greatly reduce observed document translation processing time.
1.7.0 - 2023-03-22
- Script to check our source code for license headers and a step for them in the CI.
- Added platform and node version information to the user-agent string that is sent with API calls, along with an opt-out.
- Added method for applications that use this library to identify themselves in API requests they make.
1.6.0 - 2023-01-26
-
New languages available: Korean (
'ko') and Norwegian (bokmål) ('nb'). Add language code constants and tests.Note: older library versions also support the new languages, this update only adds new code constants.
1.5.1 - 2023-01-25
- Fix CI build for netcoreapp3.1.
- Fix
FormalityoptionsPreferLessandPreferMorefor document translation.
1.5.0 - 2022-09-30
- Add new
Formalityoptions:PreferLessandPreferMore.
- Requests resulting in
503 Service Unavailableerrors are now retried. Attempting to download a document before translation is completed will now wait and retry (up to 5 times by default), rather than throwing an exception.
1.4.0 - 2022-09-09
-
New language available: Ukrainian (
'uk'). Add language code constant and tests.Note: older library versions also support new languages, this update only adds new code constant.
1.3.0 - 2022-08-02
- Add
Translator.createGlossaryFromCsvAsync()allowing glossaries downloaded from website to be easily uploaded to API.
- Strong name DeepL.net assembly.
1.2.1 - 2022-06-29
- Update contributing guidelines, we can now accept Pull Requests.
- Fix bug in OutlineDetection option for text translation.
1.2.0 - 2022-05-18
-
New languages available: Indonesian (
'id') and Turkish ('tr'). Add language code constants and tests.Note: older library versions also support the new languages, this update only adds new code constants.
-
Added
ITranslatorinterface implemented byTranslatorclass, to achieve a better mock-ability in conjunction with common mocking frameworks.
- Improve package icon, tags and project URLs.
- Test fix: tests should still succeed after new languages are added.
1.1.0 - 2022-04-13
- Add
ErrorMessageproperty toDocumentStatusthat contains a short description of document translation error, if available.
1.0.5 - 2022-04-12
- Add support for
TextTranslateOptions.TagHandling = "html". No code changes were needed, only comments and tests were changed. - Add test for proxy support.
- Fix some tests that intermittently failed.
1.0.4 - 2022-01-27
- Fix issue in .NET versions earlier than 5.0, when creating large glossaries or translating texts larger than 64 KiB.
1.0.3 - 2022-01-19
- Add contribution guidelines -- currently we are unable to accept Pull Requests.
- Improve README tests section.
1.0.2 - 2022-01-03
- Include additional information with error status codes.
1.0.1 - 2021-12-07
- Use default HTTP version in requests rather than always using HTTP/2.
1.0.0 - 2021-11-18
- Add missing properties in package, e.g. icon.
- Introduce GlossaryEntries class to encapsulate glossary entries.
- SplitSentences enum renamed to SentenceSplittingMode.
- Exceptions thrown by some functions were changed to use standard exceptions.
- Improvements to tests, README and documentation.
0.1.0 - 2021-11-05
Initial release.