<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://uat.community.rws.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Language Weaver Wiki</title><link>https://uat.community.rws.com/developers-more/language-weaver/language-weaver-developers/w/language-weaver-wiki</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12 Non-Production</generator><item><title>Language Weaver Developer Quickstart</title><link>https://uat.community.rws.com/developers-more/language-weaver/language-weaver-developers/w/language-weaver-wiki/7229/language-weaver-developer-quickstart</link><pubDate>Thu, 05 Mar 2026 23:22:59 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:52126a83-e7d3-4d15-a8b7-167ffa9c3823</guid><dc:creator>Paul Filkin</dc:creator><description>Current Revision posted to Language Weaver Wiki by Paul Filkin on 3/5/2026 11:22:59 PM&lt;br /&gt;
&lt;p class="md-end-block md-heading md-focus"&gt;&lt;span class="md-plain"&gt;A practical guide for developers integrating with Language Weaver &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Cloud&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; and &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Edge&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; translation APIs.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;1. Key Differences: Cloud vs Edge&lt;/span&gt;&lt;/h2&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Aspect&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Language Weaver Cloud&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Language Weaver Edge&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Hosting&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;RWS-hosted SaaS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;On-premise / self-hosted&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Base URL&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;https://api.languageweaver.com/v4&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;https://{controller-host}:8001/api/v2&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Authentication&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Client ID + Client Secret &amp;rarr; Bearer token&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;API key (HTTP Basic) or username/password &amp;rarr; Bearer token&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Language codes&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;3-letter codes (e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;eng&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fra&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;3-letter codes (e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;eng&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fra&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Input encoding&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Base64&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Base64 + URL-encoded&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Rate limits&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Account-tier dependent&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Limited by server capacity&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both platforms share the same fundamental workflow: authenticate &amp;rarr; discover language pairs &amp;rarr; translate.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;2. Authentication&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;2.1 Language Weaver Cloud&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Cloud uses an OAuth-style client credentials flow. You obtain a temporary bearer token using your &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;client ID&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; and &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;client secret&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (found in the Language Weaver Cloud portal under Account Settings).&lt;/span&gt;&lt;/p&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Request:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/token&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;#39;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;clientId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;YOUR_CLIENT_ID&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;clientSecret&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;YOUR_CLIENT_SECRET&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  }&lt;span class="cm-string"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;accessToken&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;eyJhbGciOiJSUzI1NiIs...&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;tokenType&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Bearer&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;validityInSeconds&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;86400&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Use the token in subsequent requests:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer eyJhbGciOiJSUzI1NiIs...&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/languages&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Tip:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; Tokens are valid for 24 hours. Cache and reuse them rather than requesting a new token per call. Refresh before expiry.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;2.2 Language Weaver Edge&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Edge offers two authentication methods:&lt;/span&gt;&lt;/p&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Option A: API Key (HTTP Basic Auth)&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Admin users have a unique API key visible under &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;[Username] &amp;gt; My Account&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; in the Edge Web GUI. Pass it as the HTTP Basic username with an empty password:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-pairs&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Note:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; The trailing colon after the API key is required &amp;mdash; it tells curl the password is blank.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Option B: Username / Password &amp;rarr; Bearer Token&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;First, obtain a token:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/auth&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;username&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;jsmith@example.com&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;password&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;mypassword&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;This returns a JWT token valid for 30 days (configurable). Then use it:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer eyJhbGciOiJIUzI1NiIs...&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-pairs&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Option C: SAML (Edge only)&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;For SAML-enabled Edge instances, a three-step browser-assisted flow is available:&lt;/span&gt;&lt;/p&gt;
&lt;ol class="ol-list" start=""&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /api/v2/auth/saml/gen-secret&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; &amp;rarr; returns a temporary &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;SECRET&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Open &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /api/v2/auth/saml/init?secret=SECRET&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; in a browser for user login&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /api/v2/auth/saml/wait?secret=SECRET&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; &amp;rarr; returns the access token once login completes&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;2.3 Authentication Errors&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both platforms return &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;401 Unauthorized&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; when credentials are invalid, expired, or missing.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;3. Discovering Available Language Pairs&lt;/span&gt;&lt;/h2&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Before translating, query the available language pairs to find the correct &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;languagePairId&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;3.1 Cloud&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer YOUR_TOKEN&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/accounts/language-pairs&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;The response lists available language pairs with their identifiers, source/target languages, and capabilities.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;3.2 Edge&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-pairs&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response (abbreviated):&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languagePairs&amp;quot;&lt;/span&gt;: [&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languagePairId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;EngFra_Generic_SRV_TNMV_8_4_x_1&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;sourceLanguage&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;English&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;sourceLanguageId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;eng&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;targetLanguage&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;French&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;targetLanguageId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;fra&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;domain&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Generic&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;platform&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;SRV&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;technology&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;TNMV&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;version&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;8.4.1&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;linguisticOptions&amp;quot;&lt;/span&gt;: [&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Formality&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;values&amp;quot;&lt;/span&gt;: [&lt;span class="cm-string"&gt;&amp;quot;Informal&amp;quot;&lt;/span&gt;, &lt;span class="cm-string"&gt;&amp;quot;Formal&amp;quot;&lt;/span&gt;, &lt;span class="cm-string"&gt;&amp;quot;Polite&amp;quot;&lt;/span&gt;],&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;systemDefault&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Informal&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;  ]&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  ]&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Useful Filters (Edge)&lt;/span&gt;&lt;/h4&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Parameter&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;sourceLanguageId&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Filter by source language, e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;eng&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;targetLanguageId&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Filter by target language, e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fra&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;domain&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Filter by domain, e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Generic&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;mode&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;translation&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (default), &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;installed&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;licensed&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;installedAndLicensed&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;adaptable&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;chains&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;also&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (default &amp;mdash; includes chains), &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;only&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, or &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;excluded&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Example &amp;mdash; find all English-to-French pairs:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-pairs?sourceLanguageId=eng&amp;amp;targetLanguageId=fra&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Language Pair Chains (Edge)&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Edge supports chained translation (e.g. Spanish &amp;rarr; English &amp;rarr; French) when a direct pair isn&amp;#39;t available. Chains are identified by the &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; separator in their &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;languagePairId&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang=""&gt;&lt;span&gt;SpaEng_Generic_SRV_TNMV_8_4_x_2&amp;gt;&amp;gt;EngFra_Generic_SRV_TNMV_8_4_x_1&lt;/span&gt;&lt;/pre&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4. Translating Text&lt;/span&gt;&lt;/h2&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both platforms require input text to be &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Base64-encoded&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4.1 Cloud &amp;mdash; Synchronous Translation&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-comment"&gt;# Base64-encode your text&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;echo&lt;/span&gt; &lt;span class="cm-attribute"&gt;-n&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Hello, how are you?&amp;quot;&lt;/span&gt; | base64&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-comment"&gt;# =&amp;gt; SGVsbG8sIGhvdyBhcmUgeW91Pw==&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;​&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/mt/translations/async&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer YOUR_TOKEN&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;#39;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;input&amp;quot;&lt;/span&gt;: [&lt;span class="cm-string"&gt;&amp;quot;Hello, how are you?&amp;quot;&lt;/span&gt;],&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;sourceLanguageId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;eng&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;targetLanguageId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;fra&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;model&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;generic&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;inputFormat&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;plain&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  }&lt;span class="cm-string"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Note:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; Cloud also supports passing plain text strings directly in the &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;input&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; array for simple text translations, without Base64 encoding. Check the current Cloud API docs for the latest accepted formats.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4.2 Edge &amp;mdash; Quick (Synchronous) Translation&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Best for small, plain text inputs under 1 KB:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-def"&gt;INPUT&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-quote"&gt;$(echo -n &amp;quot;Hello, how are you?&amp;quot; | base64)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;​&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/quick&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;languagePairId&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;EngFra_Generic_SRV_TNMV_8_4_x_1&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;input&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cm-def"&gt;$INPUT&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languagePairId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;EngFra_Generic_SRV_TNMV_8_4_x_1&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;translation&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Qm9uam91ciwgY29tbWVudCBhbGxlei12b3VzID8=&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Decode the result: &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;echo &amp;quot;Qm9uam91ciwgY29tbWVudCBhbGxlei12b3VzID8=&amp;quot; | base64 -d&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Auto Language Detection in Translation&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;To automatically detect the source language, use &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;AutXxx&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; as the language pair ID, where &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Xxx&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; is the 3-letter target language code:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/quick&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;languagePairId&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;AutFra&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;input&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cm-def"&gt;$INPUT&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Note:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;AutXxx&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; cannot be used with language pair chains.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4.3 Edge &amp;mdash; Asynchronous Translation&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;For larger documents or when you need job tracking:&lt;/span&gt;&lt;/p&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Step 1 &amp;mdash; Submit the job:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;languagePairId&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;EngFra_Generic_SRV_TNMV_8_4_x_1&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;input&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cm-def"&gt;$INPUT&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;inputFormat&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;title&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;My translation job&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;translationId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;bf91b9b6-d3c2-4ff2-ad3b-c9be89bd67fd&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Step 2 &amp;mdash; Poll for status:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/bf91b9b6-d3c2-4ff2-ad3b-c9be89bd67fd&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Check the &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;state&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; and &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;substate&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; fields. The job is complete when &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;state&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; is &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;done&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; and &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;substate&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; is &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;succeeded&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Job states:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;State&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Substate&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Meaning&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;preparing&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;created&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;scheduled&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;dispatching&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Job is queued&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;inProgress&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;translating&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;preprocessing&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;postprocessing&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Job is running&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;done&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;succeeded&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Complete &amp;mdash; download results&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;done&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;failed&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Error &amp;mdash; check &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;errorMessage&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;done&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;canceled&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Cancelled by user&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Step 3 &amp;mdash; Download the result:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/bf91b9b6-d3c2-4ff2-ad3b-c9be89bd67fd/download&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Returns Base64-encoded output. Decode it to get your translated content.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4.4 Async Translation Options (Edge)&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;The async endpoint supports many optional parameters:&lt;/span&gt;&lt;/p&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Parameter&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;inputFormat&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;MIME type of input (see &amp;sect;6 below)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;outputFormat&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;MIME type of output; defaults to same as input&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Character encoding; defaults to &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;utf-8&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;dictionaryIds&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Comma-separated user dictionary IDs&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;linguisticOptions&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;E.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Formality:Formal&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;generateMetadata&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;true&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; to produce segment-level metadata&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;labels&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Comma-separated labels for categorisation&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pdfConverter&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Standard&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; or &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Abbyy&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; for PDF inputs&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;includeTextContent&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;true&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; to also produce a plain-text output&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;5. Language Detection&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;5.1 Cloud&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/mt/translations/language-detection&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer YOUR_TOKEN&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;#39;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;input&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Bonjour, comment allez-vous ?&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  }&lt;span class="cm-string"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;5.2 Edge&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Input must be Base64-encoded:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-def"&gt;INPUT&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-quote"&gt;$(echo -n &amp;quot;Bonjour, comment allez-vous ?&amp;quot; | base64)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;​&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-detections&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;input&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cm-def"&gt;$INPUT&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;inputFormat&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;encoding&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languages&amp;quot;&lt;/span&gt;: [&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;fra&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languageTag&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;fr&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;French&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;score&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;0.95&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  ],&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;scripts&amp;quot;&lt;/span&gt;: [&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Latn&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Latin&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;percent&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;85.2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  },&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Zyyy&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Common&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;percent&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;14.8&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  ]&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;The response returns up to 3 detected languages with confidence scores (0&amp;ndash;1), plus detected writing scripts with percentage breakdowns.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;6. Supported Input/Output Formats (Edge)&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Input Formats&lt;/span&gt;&lt;/h3&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Category&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;MIME Type&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Extensions&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Plain text&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/plain&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.txt&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;HTML&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/html&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.htm&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.html&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xhtml&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;XML&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/xml&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xml&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;XLIFF 1.x&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/x-xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;XLIFF 2.x&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;TMX&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/x-tmx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.tmx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;PDF&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/pdf&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.pdf&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Word (OOXML)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.openxmlformats-officedocument.wordprocessingml.document&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.docx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Excel (OOXML)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xlsx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;PowerPoint (OOXML)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.openxmlformats-officedocument.presentationml.presentation&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.pptx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Word (Legacy)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/msword&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.doc&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;RTF&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/rtf&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.rtf&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Images&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;image/jpeg&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;image/png&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;image/tiff&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;image/gif&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.jpg&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.png&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.tif&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.gif&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Email&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.ms-outlook&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;message/rfc822&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.msg&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.eml&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;OpenDocument&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.oasis.opendocument.text&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (etc.)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.odt&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.ods&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.odp&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Output Formats&lt;/span&gt;&lt;/h3&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;MIME Type&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;default&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; or empty&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Matches input format (with some exceptions for images/PDFs)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/plain&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Plain text&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/x-xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;XLIFF v1.2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;XLIFF v2.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/x-tmx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;TMX&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;7. Language Codes Reference&lt;/span&gt;&lt;/h2&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both Cloud and Edge use 3-letter codes. Common examples:&lt;/span&gt;&lt;/p&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Language&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Code&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;IETF Tag&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;English&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;eng&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;en&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;French&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fra&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fr&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;German&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ger&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;de&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Spanish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;spa&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;es&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Chinese (Simplified)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;chi&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;zh-Hans&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Chinese (Traditional)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;cht&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;zh-Hant&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Japanese&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;jpn&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ja&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Korean&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;kor&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ko&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Arabic&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ara&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ar&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Portuguese&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;por&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pt&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Portuguese (Brazil)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ptb&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pt-BR&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Russian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;rus&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ru&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Dutch&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;dut&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;nl&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Italian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ita&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;it&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Polish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pol&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pl&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Turkish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;tur&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;tr&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Swedish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;swe&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;sv&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Danish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;dan&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;da&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Norwegian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;nor&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;no&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Finnish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fin&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fi&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Czech&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;cze&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;cs&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Hungarian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;hun&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;hu&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Romanian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;rum&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ro&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Ukrainian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ukr&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;uk&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Hindi&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;hin&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;hi&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Thai&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;tha&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;th&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Vietnamese&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;vie&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;vi&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Indonesian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ind&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;id&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;For the full list of 100+ languages, see the &lt;/span&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw-edge/codes.html"&gt;&lt;span class="md-plain"&gt;Edge language codes reference&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; or query the Cloud API&amp;#39;s languages endpoint.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;8. Error Handling&lt;/span&gt;&lt;/h2&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both platforms use standard HTTP status codes:&lt;/span&gt;&lt;/p&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Code&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Meaning&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;200&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Success&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;400&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Bad request &amp;mdash; invalid or missing parameters&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;401&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Unauthorised &amp;mdash; invalid, expired, or missing credentials&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;403&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Forbidden &amp;mdash; insufficient privileges&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;404&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Not found &amp;mdash; endpoint doesn&amp;#39;t exist&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;500&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Internal server error&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Error Response Format (Edge)&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;error&amp;quot;&lt;/span&gt;: {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;400&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;message&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;user could not be added&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;details&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;the specified user already exists: jsmith@example.com&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;The &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;details&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; field is optional and provides additional context when available.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;9. Common Integration Patterns&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Pattern 1: Simple Text Translation&lt;/span&gt;&lt;/h3&gt;
&lt;ol class="ol-list" start=""&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Authenticate&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Base64-encode the source text&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Call the quick/synchronous translation endpoint&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Base64-decode the response&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Best for: chat integrations, real-time translation widgets, short text.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Pattern 2: Document Translation with Job Tracking&lt;/span&gt;&lt;/h3&gt;
&lt;ol class="ol-list" start=""&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Authenticate&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Base64-encode the document&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Submit an async translation job (&lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;POST /translations&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Poll status (&lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /translations/{id}&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;) until &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;state=done&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Download the result (&lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /translations/{id}/download&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Best for: file-based workflows, batch processing, large documents.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Pattern 3: Auto-Detect and Translate&lt;/span&gt;&lt;/h3&gt;
&lt;ol class="ol-list" start=""&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Authenticate&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Use the language detection endpoint to identify the source language&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Look up available language pairs for the detected source &amp;rarr; desired target&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Translate using the appropriate language pair&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Alternatively, use &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;AutXxx&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; as the language pair ID to combine detection and translation in a single call (Edge only).&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Pattern 4: Batch Operations (Edge)&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Use the bulk download endpoint to retrieve multiple completed translations at once:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/download-archive?translationIds=ID1,ID2,ID3&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Returns a zip file containing all requested translations. Total output size is limited to 1 GB.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;10. Tips and Gotchas&lt;/span&gt;&lt;/h2&gt;
&lt;ul class="ul-list" data-mark="-"&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Always Base64-encode&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; input text for Edge. Forgetting this is the most common integration mistake.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;URL-encode&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; parameters when using form data with curl (&lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;--data-urlencode&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Cache your auth tokens.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; Cloud tokens last 24 hours; Edge tokens last 30 days. Don&amp;#39;t authenticate on every request.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Check linguistic options.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; Some language pairs support formality settings (Formal, Informal, Polite). Query the language pairs endpoint to discover what&amp;#39;s available.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Edge timestamps&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; use the format &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;yyyy-MM-dd HH:mm:ss.SSS&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;2024-01-02 15:04:05.999999999Z&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Character encoding&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; defaults to UTF-8 on both platforms. Specify explicitly if your content uses a different encoding.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Language pair chains&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (Edge) enable translation between language pairs that don&amp;#39;t have a direct model, by routing through a pivot language (usually English).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Quality estimation&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; is available in async translation results on Edge, giving a breakdown of good/adequate/poor percentages.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Further Reading&lt;/span&gt;&lt;/h2&gt;
&lt;ul class="ul-list" data-mark="-"&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw-edge/index.html"&gt;&lt;span class="md-plain"&gt;Language Weaver Edge API Reference&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw/index.html"&gt;&lt;span class="md-plain"&gt;Language Weaver Cloud API Reference&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw-edge/codes.html"&gt;&lt;span class="md-plain"&gt;Language Codes (Full List)&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw-edge/encodings.html"&gt;&lt;span class="md-plain"&gt;Supported Encodings&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Quick Start</title><link>https://uat.community.rws.com/developers-more/language-weaver/language-weaver-developers/w/language-weaver-wiki/7229/language-weaver-developer-quickstart/revision/1</link><pubDate>Thu, 05 Mar 2026 23:22:02 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:52126a83-e7d3-4d15-a8b7-167ffa9c3823</guid><dc:creator>Paul Filkin</dc:creator><description>Revision 1 posted to Language Weaver Wiki by Paul Filkin on 3/5/2026 11:22:02 PM&lt;br /&gt;
&lt;h1 class="md-end-block md-heading md-focus"&gt;&lt;span class="md-plain md-expand"&gt;Language Weaver Developer Quickstart&lt;/span&gt;&lt;/h1&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;A practical guide for developers integrating with Language Weaver &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Cloud&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; and &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Edge&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; translation APIs.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;1. Key Differences: Cloud vs Edge&lt;/span&gt;&lt;/h2&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Aspect&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Language Weaver Cloud&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Language Weaver Edge&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Hosting&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;RWS-hosted SaaS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;On-premise / self-hosted&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Base URL&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;https://api.languageweaver.com/v4&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;https://{controller-host}:8001/api/v2&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Authentication&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Client ID + Client Secret &amp;rarr; Bearer token&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;API key (HTTP Basic) or username/password &amp;rarr; Bearer token&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Language codes&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;3-letter codes (e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;eng&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fra&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;3-letter codes (e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;eng&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fra&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Input encoding&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Base64&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Base64 + URL-encoded&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Rate limits&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Account-tier dependent&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Limited by server capacity&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both platforms share the same fundamental workflow: authenticate &amp;rarr; discover language pairs &amp;rarr; translate.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;2. Authentication&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;2.1 Language Weaver Cloud&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Cloud uses an OAuth-style client credentials flow. You obtain a temporary bearer token using your &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;client ID&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; and &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;client secret&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (found in the Language Weaver Cloud portal under Account Settings).&lt;/span&gt;&lt;/p&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Request:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/token&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;#39;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;clientId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;YOUR_CLIENT_ID&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;clientSecret&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;YOUR_CLIENT_SECRET&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  }&lt;span class="cm-string"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;accessToken&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;eyJhbGciOiJSUzI1NiIs...&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;tokenType&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Bearer&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;validityInSeconds&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;86400&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Use the token in subsequent requests:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer eyJhbGciOiJSUzI1NiIs...&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/languages&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Tip:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; Tokens are valid for 24 hours. Cache and reuse them rather than requesting a new token per call. Refresh before expiry.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;2.2 Language Weaver Edge&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Edge offers two authentication methods:&lt;/span&gt;&lt;/p&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Option A: API Key (HTTP Basic Auth)&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Admin users have a unique API key visible under &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;[Username] &amp;gt; My Account&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; in the Edge Web GUI. Pass it as the HTTP Basic username with an empty password:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-pairs&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Note:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; The trailing colon after the API key is required &amp;mdash; it tells curl the password is blank.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Option B: Username / Password &amp;rarr; Bearer Token&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;First, obtain a token:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/auth&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;username&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;jsmith@example.com&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;password&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;mypassword&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;This returns a JWT token valid for 30 days (configurable). Then use it:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer eyJhbGciOiJIUzI1NiIs...&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-pairs&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Option C: SAML (Edge only)&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;For SAML-enabled Edge instances, a three-step browser-assisted flow is available:&lt;/span&gt;&lt;/p&gt;
&lt;ol class="ol-list" start=""&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /api/v2/auth/saml/gen-secret&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; &amp;rarr; returns a temporary &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;SECRET&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Open &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /api/v2/auth/saml/init?secret=SECRET&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; in a browser for user login&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /api/v2/auth/saml/wait?secret=SECRET&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; &amp;rarr; returns the access token once login completes&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;2.3 Authentication Errors&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both platforms return &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;401 Unauthorized&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; when credentials are invalid, expired, or missing.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;3. Discovering Available Language Pairs&lt;/span&gt;&lt;/h2&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Before translating, query the available language pairs to find the correct &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;languagePairId&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;3.1 Cloud&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer YOUR_TOKEN&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/accounts/language-pairs&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;The response lists available language pairs with their identifiers, source/target languages, and capabilities.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;3.2 Edge&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-pairs&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response (abbreviated):&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languagePairs&amp;quot;&lt;/span&gt;: [&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languagePairId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;EngFra_Generic_SRV_TNMV_8_4_x_1&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;sourceLanguage&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;English&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;sourceLanguageId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;eng&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;targetLanguage&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;French&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;targetLanguageId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;fra&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;domain&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Generic&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;platform&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;SRV&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;technology&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;TNMV&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;version&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;8.4.1&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;linguisticOptions&amp;quot;&lt;/span&gt;: [&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Formality&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;values&amp;quot;&lt;/span&gt;: [&lt;span class="cm-string"&gt;&amp;quot;Informal&amp;quot;&lt;/span&gt;, &lt;span class="cm-string"&gt;&amp;quot;Formal&amp;quot;&lt;/span&gt;, &lt;span class="cm-string"&gt;&amp;quot;Polite&amp;quot;&lt;/span&gt;],&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;systemDefault&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Informal&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;  ]&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  ]&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Useful Filters (Edge)&lt;/span&gt;&lt;/h4&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Parameter&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;sourceLanguageId&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Filter by source language, e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;eng&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;targetLanguageId&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Filter by target language, e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fra&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;domain&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Filter by domain, e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Generic&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;mode&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;translation&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (default), &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;installed&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;licensed&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;installedAndLicensed&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;adaptable&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;chains&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;also&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (default &amp;mdash; includes chains), &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;only&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, or &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;excluded&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Example &amp;mdash; find all English-to-French pairs:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-pairs?sourceLanguageId=eng&amp;amp;targetLanguageId=fra&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Language Pair Chains (Edge)&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Edge supports chained translation (e.g. Spanish &amp;rarr; English &amp;rarr; French) when a direct pair isn&amp;#39;t available. Chains are identified by the &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; separator in their &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;languagePairId&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang=""&gt;&lt;span&gt;SpaEng_Generic_SRV_TNMV_8_4_x_2&amp;gt;&amp;gt;EngFra_Generic_SRV_TNMV_8_4_x_1&lt;/span&gt;&lt;/pre&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4. Translating Text&lt;/span&gt;&lt;/h2&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both platforms require input text to be &lt;/span&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Base64-encoded&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4.1 Cloud &amp;mdash; Synchronous Translation&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-comment"&gt;# Base64-encode your text&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;echo&lt;/span&gt; &lt;span class="cm-attribute"&gt;-n&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Hello, how are you?&amp;quot;&lt;/span&gt; | base64&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-comment"&gt;# =&amp;gt; SGVsbG8sIGhvdyBhcmUgeW91Pw==&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;​&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/mt/translations/async&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer YOUR_TOKEN&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;#39;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;input&amp;quot;&lt;/span&gt;: [&lt;span class="cm-string"&gt;&amp;quot;Hello, how are you?&amp;quot;&lt;/span&gt;],&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;sourceLanguageId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;eng&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;targetLanguageId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;fra&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;model&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;generic&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;inputFormat&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;plain&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  }&lt;span class="cm-string"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Note:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; Cloud also supports passing plain text strings directly in the &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;input&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; array for simple text translations, without Base64 encoding. Check the current Cloud API docs for the latest accepted formats.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4.2 Edge &amp;mdash; Quick (Synchronous) Translation&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Best for small, plain text inputs under 1 KB:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-def"&gt;INPUT&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-quote"&gt;$(echo -n &amp;quot;Hello, how are you?&amp;quot; | base64)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;​&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/quick&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;languagePairId&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;EngFra_Generic_SRV_TNMV_8_4_x_1&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;input&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cm-def"&gt;$INPUT&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languagePairId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;EngFra_Generic_SRV_TNMV_8_4_x_1&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;translation&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Qm9uam91ciwgY29tbWVudCBhbGxlei12b3VzID8=&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Decode the result: &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;echo &amp;quot;Qm9uam91ciwgY29tbWVudCBhbGxlei12b3VzID8=&amp;quot; | base64 -d&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Auto Language Detection in Translation&lt;/span&gt;&lt;/h4&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;To automatically detect the source language, use &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;AutXxx&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; as the language pair ID, where &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Xxx&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; is the 3-letter target language code:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/quick&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;languagePairId&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;AutFra&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;input&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cm-def"&gt;$INPUT&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Note:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;AutXxx&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; cannot be used with language pair chains.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4.3 Edge &amp;mdash; Asynchronous Translation&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;For larger documents or when you need job tracking:&lt;/span&gt;&lt;/p&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Step 1 &amp;mdash; Submit the job:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;languagePairId&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;EngFra_Generic_SRV_TNMV_8_4_x_1&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;input&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cm-def"&gt;$INPUT&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;inputFormat&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;title&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;My translation job&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;translationId&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;bf91b9b6-d3c2-4ff2-ad3b-c9be89bd67fd&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Step 2 &amp;mdash; Poll for status:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/bf91b9b6-d3c2-4ff2-ad3b-c9be89bd67fd&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Check the &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;state&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; and &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;substate&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; fields. The job is complete when &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;state&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; is &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;done&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; and &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;substate&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; is &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;succeeded&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Job states:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;State&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Substate&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Meaning&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;preparing&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;created&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;scheduled&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;dispatching&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Job is queued&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;inProgress&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;translating&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;preprocessing&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;postprocessing&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Job is running&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;done&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;succeeded&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Complete &amp;mdash; download results&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;done&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;failed&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Error &amp;mdash; check &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;errorMessage&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;done&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;canceled&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Cancelled by user&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Step 3 &amp;mdash; Download the result:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/bf91b9b6-d3c2-4ff2-ad3b-c9be89bd67fd/download&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Returns Base64-encoded output. Decode it to get your translated content.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;4.4 Async Translation Options (Edge)&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;The async endpoint supports many optional parameters:&lt;/span&gt;&lt;/p&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Parameter&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;inputFormat&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;MIME type of input (see &amp;sect;6 below)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;outputFormat&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;MIME type of output; defaults to same as input&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;encoding&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Character encoding; defaults to &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;utf-8&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;dictionaryIds&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Comma-separated user dictionary IDs&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;linguisticOptions&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;E.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Formality:Formal&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;generateMetadata&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;true&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; to produce segment-level metadata&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;labels&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Comma-separated labels for categorisation&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pdfConverter&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Standard&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; or &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;Abbyy&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; for PDF inputs&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;includeTextContent&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;true&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; to also produce a plain-text output&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;5. Language Detection&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;5.1 Cloud&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://api.languageweaver.com/v4/mt/translations/language-detection&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Authorization: Bearer YOUR_TOKEN&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-H&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;#39;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;input&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Bonjour, comment allez-vous ?&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  }&lt;span class="cm-string"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;5.2 Edge&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Input must be Base64-encoded:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-def"&gt;INPUT&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-quote"&gt;$(echo -n &amp;quot;Bonjour, comment allez-vous ?&amp;quot; | base64)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;​&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-X&lt;/span&gt; POST &lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/language-detections&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;-d&lt;/span&gt; &lt;span class="cm-def"&gt;input&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cm-def"&gt;$INPUT&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-attribute"&gt;--data-urlencode&lt;/span&gt; &lt;span class="cm-def"&gt;inputFormat&lt;/span&gt;&lt;span class="cm-operator"&gt;=&lt;/span&gt;&lt;span class="cm-string"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Response:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;encoding&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languages&amp;quot;&lt;/span&gt;: [&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;fra&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;languageTag&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;fr&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;French&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;score&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;0.95&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  ],&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;scripts&amp;quot;&lt;/span&gt;: [&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Latn&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Latin&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;percent&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;85.2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  },&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Zyyy&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;Common&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;percent&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;14.8&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  ]&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;The response returns up to 3 detected languages with confidence scores (0&amp;ndash;1), plus detected writing scripts with percentage breakdowns.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;6. Supported Input/Output Formats (Edge)&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Input Formats&lt;/span&gt;&lt;/h3&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Category&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;MIME Type&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Extensions&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Plain text&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/plain&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.txt&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;HTML&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/html&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.htm&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.html&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xhtml&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;XML&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/xml&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xml&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;XLIFF 1.x&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/x-xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;XLIFF 2.x&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;TMX&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/x-tmx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.tmx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;PDF&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/pdf&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.pdf&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Word (OOXML)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.openxmlformats-officedocument.wordprocessingml.document&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.docx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Excel (OOXML)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.xlsx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;PowerPoint (OOXML)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.openxmlformats-officedocument.presentationml.presentation&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.pptx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Word (Legacy)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/msword&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.doc&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;RTF&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/rtf&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.rtf&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Images&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;image/jpeg&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;image/png&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;image/tiff&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;image/gif&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.jpg&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.png&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.tif&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.gif&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Email&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.ms-outlook&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;message/rfc822&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.msg&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.eml&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;OpenDocument&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/vnd.oasis.opendocument.text&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (etc.)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.odt&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.ods&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;, &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;.odp&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Output Formats&lt;/span&gt;&lt;/h3&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;MIME Type&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;default&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; or empty&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Matches input format (with some exceptions for images/PDFs)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/plain&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Plain text&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/x-xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;XLIFF v1.2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;application/xliff&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;XLIFF v2.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;text/x-tmx&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;TMX&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;7. Language Codes Reference&lt;/span&gt;&lt;/h2&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both Cloud and Edge use 3-letter codes. Common examples:&lt;/span&gt;&lt;/p&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Language&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Code&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;IETF Tag&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;English&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;eng&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;en&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;French&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fra&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fr&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;German&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ger&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;de&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Spanish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;spa&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;es&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Chinese (Simplified)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;chi&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;zh-Hans&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Chinese (Traditional)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;cht&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;zh-Hant&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Japanese&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;jpn&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ja&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Korean&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;kor&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ko&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Arabic&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ara&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ar&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Portuguese&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;por&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pt&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Portuguese (Brazil)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ptb&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pt-BR&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Russian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;rus&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ru&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Dutch&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;dut&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;nl&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Italian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ita&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;it&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Polish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pol&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;pl&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Turkish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;tur&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;tr&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Swedish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;swe&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;sv&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Danish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;dan&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;da&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Norwegian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;nor&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;no&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Finnish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fin&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;fi&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Czech&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;cze&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;cs&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Hungarian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;hun&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;hu&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Romanian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;rum&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ro&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Ukrainian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ukr&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;uk&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Hindi&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;hin&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;hi&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Thai&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;tha&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;th&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Vietnamese&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;vie&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;vi&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Indonesian&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;ind&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;id&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;For the full list of 100+ languages, see the &lt;/span&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw-edge/codes.html"&gt;&lt;span class="md-plain"&gt;Edge language codes reference&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; or query the Cloud API&amp;#39;s languages endpoint.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;8. Error Handling&lt;/span&gt;&lt;/h2&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Both platforms use standard HTTP status codes:&lt;/span&gt;&lt;/p&gt;
&lt;figure class="md-table-fig table-figure"&gt;
&lt;table class="md-table"&gt;
&lt;thead&gt;
&lt;tr class="md-end-block"&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Code&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Meaning&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;200&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Success&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;400&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Bad request &amp;mdash; invalid or missing parameters&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;401&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Unauthorised &amp;mdash; invalid, expired, or missing credentials&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;403&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Forbidden &amp;mdash; insufficient privileges&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;404&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Not found &amp;mdash; endpoint doesn&amp;#39;t exist&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="md-end-block"&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;500&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class="td-span"&gt;&lt;span class="md-plain"&gt;Internal server error&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Error Response Format (Edge)&lt;/span&gt;&lt;/h3&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="json"&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;error&amp;quot;&lt;/span&gt;: {&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;: &lt;span class="cm-number"&gt;400&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;message&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;user could not be added&amp;quot;&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&lt;span class="cm-string cm-property"&gt;&amp;quot;details&amp;quot;&lt;/span&gt;: &lt;span class="cm-string"&gt;&amp;quot;the specified user already exists: jsmith@example.com&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;The &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;details&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; field is optional and provides additional context when available.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;9. Common Integration Patterns&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Pattern 1: Simple Text Translation&lt;/span&gt;&lt;/h3&gt;
&lt;ol class="ol-list" start=""&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Authenticate&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Base64-encode the source text&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Call the quick/synchronous translation endpoint&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Base64-decode the response&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Best for: chat integrations, real-time translation widgets, short text.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Pattern 2: Document Translation with Job Tracking&lt;/span&gt;&lt;/h3&gt;
&lt;ol class="ol-list" start=""&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Authenticate&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Base64-encode the document&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Submit an async translation job (&lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;POST /translations&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Poll status (&lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /translations/{id}&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;) until &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;state=done&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Download the result (&lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;GET /translations/{id}/download&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Best for: file-based workflows, batch processing, large documents.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Pattern 3: Auto-Detect and Translate&lt;/span&gt;&lt;/h3&gt;
&lt;ol class="ol-list" start=""&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Authenticate&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Use the language detection endpoint to identify the source language&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Look up available language pairs for the detected source &amp;rarr; desired target&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Translate using the appropriate language pair&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Alternatively, use &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;AutXxx&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; as the language pair ID to combine detection and translation in a single call (Edge only).&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Pattern 4: Batch Operations (Edge)&lt;/span&gt;&lt;/h3&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Use the bulk download endpoint to retrieve multiple completed translations at once:&lt;/span&gt;&lt;/p&gt;
&lt;pre class="md-fences md-end-block ty-contain-cm modeLoaded" lang="bash"&gt;&lt;span&gt;&lt;span class="cm-builtin"&gt;curl&lt;/span&gt; &lt;span class="cm-attribute"&gt;-u&lt;/span&gt; &lt;span class="cm-string"&gt;&amp;quot;YOUR_API_KEY:&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &amp;nbsp;&lt;span class="cm-string"&gt;&amp;quot;https://controller-host:8001/api/v2/translations/download-archive?translationIds=ID1,ID2,ID3&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-plain"&gt;Returns a zip file containing all requested translations. Total output size is limited to 1 GB.&lt;/span&gt;&lt;/p&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;10. Tips and Gotchas&lt;/span&gt;&lt;/h2&gt;
&lt;ul class="ul-list" data-mark="-"&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Always Base64-encode&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; input text for Edge. Forgetting this is the most common integration mistake.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;URL-encode&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; parameters when using form data with curl (&lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;--data-urlencode&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Cache your auth tokens.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; Cloud tokens last 24 hours; Edge tokens last 30 days. Don&amp;#39;t authenticate on every request.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Check linguistic options.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; Some language pairs support formality settings (Formal, Informal, Polite). Query the language pairs endpoint to discover what&amp;#39;s available.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Edge timestamps&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; use the format &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;yyyy-MM-dd HH:mm:ss.SSS&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (e.g. &lt;/span&gt;&lt;span class="md-pair-s"&gt;&lt;code&gt;2024-01-02 15:04:05.999999999Z&lt;/code&gt;&lt;/span&gt;&lt;span class="md-plain"&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Character encoding&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; defaults to UTF-8 on both platforms. Specify explicitly if your content uses a different encoding.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Language pair chains&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; (Edge) enable translation between language pairs that don&amp;#39;t have a direct model, by routing through a pivot language (usually English).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-pair-s "&gt;&lt;strong&gt;&lt;span class="md-plain"&gt;Quality estimation&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="md-plain"&gt; is available in async translation results on Edge, giving a breakdown of good/adequate/poor percentages.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class="md-end-block md-heading"&gt;&lt;span class="md-plain"&gt;Further Reading&lt;/span&gt;&lt;/h2&gt;
&lt;ul class="ul-list" data-mark="-"&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw-edge/index.html"&gt;&lt;span class="md-plain"&gt;Language Weaver Edge API Reference&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw/index.html"&gt;&lt;span class="md-plain"&gt;Language Weaver Cloud API Reference&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw-edge/codes.html"&gt;&lt;span class="md-plain"&gt;Language Codes (Full List)&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class="md-list-item"&gt;
&lt;p class="md-end-block md-p"&gt;&lt;span class="md-meta-i-c  md-link"&gt;&lt;a href="https://developers.languageweaver.com/api/lw-edge/encodings.html"&gt;&lt;span class="md-plain"&gt;Supported Encodings&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Language Weaver Wiki</title><link>https://uat.community.rws.com/developers-more/language-weaver/language-weaver-developers/w/language-weaver-wiki</link><pubDate>Thu, 05 Mar 2026 23:01:39 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:0fe6b936-519f-488b-b9b6-390fa60ea223</guid><dc:creator>Paul Filkin</dc:creator><description>Current Revision posted to Language Weaver Wiki by Paul Filkin on 3/5/2026 11:01:39 PM&lt;br /&gt;
&lt;p&gt;&lt;span data-markdown-start-index="50"&gt;This wiki provides essential information about the Language Weaver platform and how our integrations work with it. The goal is to empower your team with the technical and strategic knowledge needed to leverage our powerful translation technologies.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span data-markdown-start-index="299"&gt;You can expect to find information covering:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;span data-markdown-start-index="347"&gt;Deployment options for Language Weaver, including Cloud and on-premise (Edge) solutions.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span data-markdown-start-index="439"&gt;The core Neural Machine Translation (NMT) technology, security features, and scalability.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span data-markdown-start-index="532"&gt;Our API-first approach and available connectors.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span data-markdown-start-index="532"&gt;&lt;/span&gt;&lt;span data-markdown-start-index="644"&gt;Language pair types, including Generic, Adaptive, and Generative Language Pairs (GLPs).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span data-markdown-start-index="735"&gt;Customization options such as dictionaries, terminology controls, and OCR capabilities.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span data-markdown-start-index="826"&gt;Upcoming developments in Large Language Models (LLMs) and new platform features.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span data-markdown-start-index="907"&gt;Please explore the site navigation to find more detailed information on each of these topics.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Language Weaver Wiki</title><link>https://uat.community.rws.com/developers-more/language-weaver/language-weaver-developers/w/language-weaver-wiki/7228/defaultwikipage/revision/1</link><pubDate>Thu, 05 Mar 2026 23:00:15 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:0fe6b936-519f-488b-b9b6-390fa60ea223</guid><dc:creator>Paul Filkin</dc:creator><description>Revision 1 posted to Language Weaver Wiki by Paul Filkin on 3/5/2026 11:00:15 PM&lt;br /&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>