.png)
Azure Translator Integration Guide
Connect enterprise applications to Azure Translator REST APIs for text translation, language detection, transliteration, dictionary lookup, and asynchronous document translation.
Azure Translator integration options at a glance
Azure Translator provides REST APIs for synchronous text translation, language detection, transliteration, dictionary lookup, and asynchronous Document Translation. Document jobs process files in Azure Blob Storage source and target containers, with status retrieved through polling rather than a confirmed general-purpose webhook. Authentication can use subscription keys or Microsoft Entra ID bearer tokens, depending on resource configuration. Martini can consume these APIs from workflows, store credentials as environment secrets, validate language and request limits, map responses into enterprise applications, and expose a controlled REST API façade for consistent translation services across internal systems.
Common Azure Translator integration patterns
Common Azure Translator data objects used in integrations
Authentication and security considerations
Authentication options
Azure Translator supports subscription-key authentication and Microsoft Entra ID bearer-token authentication. Regional resource configurations may also require the Azure region header.
Credential protection
- Store subscription keys, client secrets, tokens, endpoints, and regional settings in Martini environment secrets or configuration.
- Use Microsoft Entra ID, managed identities, or service principals where appropriate for resource access.
- Do not embed credentials in workflows, request payloads, or logs.
Data governance
Translation content may contain confidential or personal information. Restrict access to Translator resources and Blob Storage, review regional processing requirements, and limit logging of source and translated text.
Operational considerations for Azure Translator integrations
Quotas and request sizing
Azure Translator applies quotas and request limits based on the resource and pricing tier. Handle HTTP 429 responses, use bounded backoff, limit concurrency, and split large content while preserving ordering and correlation identifiers.
Asynchronous processing
Document Translation requires operation and document status polling. Store job identifiers, poll at controlled intervals, stop after a configured timeout, and route successful and failed documents independently.
Idempotency and schema changes
- Use source identifiers, document versions, content hashes, or source URIs to prevent duplicate jobs.
- Keep the Translator API version in configuration and validate response shapes.
- Monitor changes to supported languages, request properties, quotas, and error formats.
Testing and monitoring
Test supported language pairs, encoding, markup preservation, request limits, authentication, storage access, throttling, and document failures. Monitor character consumption, latency, retries, job completion, and normalized error outcomes.
Why use Martini instead of scripts or point-to-point integrations?
Orchestrate more than an API call
Scripts can call Azure Translator, but Martini provides a maintainable workflow for validation, authentication, mapping, business rules, polling, retries, and target-system updates.
Centralize enterprise policy
Martini can expose a controlled translation API that standardizes language-pair rules, request limits, authorization, correlation IDs, error responses, and usage logging across internal applications.
Support synchronous and batch flows
The same integration platform can handle short text through REST calls and documents through Blob Storage-based asynchronous jobs, while preserving reusable workflow logic and environment-specific configuration.
Improve operational reliability
- Apply bounded retries and backoff for transient failures and throttling.
- Track asynchronous operation identifiers and document versions.
- Separate authentication, validation, storage, quota, and document-level failures.
- Deploy reusable integration assets without creating multiple point-to-point implementations.