<?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 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><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><comments>https://uat.community.rws.com/developers-more/language-weaver/language-weaver-developers/w/language-weaver-wiki/7229/language-weaver-developer-quickstart#comments</comments><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><comments>https://uat.community.rws.com/developers-more/language-weaver/language-weaver-developers/w/language-weaver-wiki/7229/language-weaver-developer-quickstart#comments</comments><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></channel></rss>