Default
LILT
API integration
Ship Default features without building the integration. Full LILT API access via Proxy and 70+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Talk to usUse Cases
Why integrate with LILT
Common scenarios for SaaS companies building LILT integrations for their customers.
Embed AI Localization in Marketing Platforms
Let your users localize email templates, landing pages, and campaigns into multiple languages without leaving your platform. LILT's contextual AI applies their brand voice and terminology automatically.
Automate Knowledge Base Translation in Helpdesks
Trigger translation jobs whenever your users publish a new support article, then sync the verified localized versions back via webhooks. Eliminates manual handoffs to localization vendors.
Add Native Multilingual Content Generation to CMS Tools
Use LILT Create to generate net-new content directly in target languages from prompts and preferences, rather than translating from a source. Lets your CMS users author region-specific content in one step.
Localize Course Materials in LMS Platforms
Upload subtitle files, quiz strings, and course metadata to LILT and deliver multilingual training to global learners. Course creators get parallel-language delivery without managing separate localization workflows.
Real-time Translation for Support and Chat
Translate agent replies and customer messages on the fly using your users' Translation Memory for brand-consistent phrasing. Enables global support teams to work in their native language.
What You Can Build
Ship these features with Truto + LILT
Concrete product features your team can ship faster by leveraging Truto’s LILT integration instead of building from scratch.
One-click File Translation Jobs
Upload XLIFF, HTML, or SRT files and kick off multi-language translation jobs in a single flow, with status tracked through job webhooks.
Webhook-driven Translation Delivery
Subscribe to LILT job delivery events so your platform automatically pulls down completed translations and updates user content without polling.
In-app Translation Memory Editor
Let users search, add, and remove segments from their LILT memories directly inside your UI so brand terminology stays current.
LILT Create Content Studio
Expose LILT Create preferences and content generation so users can produce on-brand multilingual articles, product descriptions, or marketing copy from structured prompts.
Large Asset Multipart Uploads
Handle large video transcripts or document bundles using LILT's S3 multipart upload flow, with chunked upload and completion managed end-to-end.
Project & Job Lifecycle Dashboard
Show your users a live view of their LILT projects, jobs, activities, and downloadable deliveries with archive, reactivate, and delete controls built in.
SuperAI
LILT AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
delete_a_lilt_create_content_by_id
Delete a piece of Lilt Create content by id. Returns an empty 204 response on success.
list_all_lilt_create_content
List all content generated by Lilt Create. Returns a collection of content items; each item includes id and language.
get_single_lilt_create_content_by_id
Get a single piece of Lilt Create content by id. Returns: id, language.
update_a_lilt_create_content_by_id
Update a piece of Lilt Create content by id. Returns: id, language.
create_a_lilt_create_content
Create a new piece of Lilt Create content. Returns: id, language.
create_a_lilt_create
Generate new Lilt Create content from a specified template and language parameters. Returns the generated content object including id and template-specific attributes. Accepts language, template, templateParams (contentLength, summary, sections), and preferences.
get_single_lilt_create_content_by_id
Get a Lilt Create content item by id. Returns: id.
get_single_lilt_create_preference_by_id
Get the stored Lilt Create preferences. Returns: tone, styleguide.
update_a_lilt_create_preference_by_id
Update the stored Lilt Create preferences. Returns the updated preferences including tone and styleguide.
create_a_lilt_create_terms_and_condition
Sign the Lilt Create terms and conditions, which must be accepted before using Lilt Create features. Returns an empty 204 response on success. Required: signedAgreement.
get_single_lilt_document_by_id
Download a Lilt document as a binary file in XLIFF 1.2 format (default) or its original uploaded format. Returns a binary file stream — not a JSON object; write the response body directly to disk. Set is_xliff=false to retrieve the file in its original format instead of XLIFF 1.2. This call will fail if an export or pre-translation operation is currently in progress. Required: id.
create_a_lilt_document
Upload a file to Lilt to create a new Document in any supported format. Returns the created document object including id, name, project_id, and status. File names must contain only US-ASCII characters; URI-encode or transliterate names with non-ASCII characters before sending. Required: name, project_id.
list_all_lilt_domains
List Domains in lilt associated with the Organization's API key. Returns each Domain record including its models, filterConfigs, and domainMetadata arrays representing the models, filter configurations, and domain-specific options configured for each domain.
create_a_lilt_file_label
Add a label to a file in Lilt. Returns the updated file object including id, name, labels, detected_lang, file_hash, category, created_at, and updated_at. Required: id (file ID) and name (label name).
delete_a_lilt_file_label_by_id
Remove a label from a file in Lilt. Returns the updated file object including id, name, labels, detected_lang, file_hash, category, created_at, and updated_at.
delete_a_lilt_file_by_id
Delete a Lilt file by id. Returns an empty 204 response on success. Required: id.
get_single_lilt_file_by_id
Get a Lilt file by id, including asynchronous language detection results. Returns: id, name, detected_lang, detected_lang_confidence. Required: id.
create_a_lilt_file
Upload a file to Lilt in any supported format. Language detection runs asynchronously; poll GET /v2/files to monitor results. Returns: id, name, detected_lang, detected_lang_confidence. Required: name.
list_all_lilt_files
List files in Lilt, including language detection results for each file. Returns: id, name, detected_lang, detected_lang_confidence.
update_a_lilt_job_by_id
Update a lilt job by id. Returns: id, name, due, srcLang, srcLocale, jobInstructions, languagePairs, enablePostProcessing, status. Required: id.
create_a_lilt_job
Create a new lilt job as a collection of projects targeting multiple language pairs. Returns: id, name, due, srcLang, srcLocale, languagePairs, enablePostProcessing, customProperties, status. Required: name.
delete_a_lilt_job_by_id
Delete a lilt job by id, permanently removing all associated projects, documents, and translation memory segments. Returns an empty 204 response on success. Required: id.
get_single_lilt_job_by_id
Get a single lilt job by id. Returns: id, name, due, srcLang, srcLocale, jobInstructions, languagePairs, enablePostProcessing, customProperties, status. Required: id.
list_all_lilt_jobs
List all lilt jobs. Returns: id, name, due, srcLang, srcLocale, languagePairs, enablePostProcessing, customProperties, status. Optionally filter by isArchived.
list_all_lilt_languages
List all supported languages in lilt. Returns a collection of language objects representing the languages available for use in translation projects. No parameters required.
create_a_lilt_memory
Create a new Lilt Memory — a private container for source/target sentence pairs for a specific language pair, used to train the MT system, populate TM, and update the lexicon. Returns: id, name, srclang, trglang. Required: name, srclang, trglang.
delete_a_lilt_memory_by_id
Delete a Lilt Memory by id. Returns an empty 204 response on success. Required: id.
list_all_lilt_memories
List all Lilt Memories accessible to your account. Returns id, name, srclang, and trglang for each Memory in the collection.
get_single_lilt_memory_by_id
Retrieve a specific Lilt Memory by id. Returns: id, name, srclang, trglang. Required: id. If you receive a 401 error, verify the Memory has been shared with your account.
update_a_lilt_memory_by_id
Update the name of a Lilt Memory. Returns: id, name, srclang, trglang. Required: id, name.
lilt_memories_search
Query a Lilt Memory for translation segments matching a source string. Returns: source, target, score, metadata. Segments scoring below 75 are automatically discarded. Required: id, query.
delete_a_lilt_memory_segment_by_id
Delete a segment from a lilt memory. Returns an empty 204 response on success. Required: id, segment_id.
create_a_lilt_project
Create a new lilt project — a collection of Documents associated with exactly one Memory. Projects appear in the lilt dashboard. Returns: id, srclang, trglang. Required: memory_id.
delete_a_lilt_project_by_id
Delete a lilt project by id. Returns an empty 204 response on success. Required: id.
list_all_lilt_projects
List lilt projects including their associated documents. Optionally filter by one or more project ids (comma-separated), source language, or target language. Returns: id, srclang, trglang.
create_a_lilt_segment
Create a Segment in Lilt and add it to a Memory or Document. A Segment is a source/target pair used to train the machine translation system and populate the translation memory. Returns: id, source, target. Required: source. Max source length is 5,000 characters.
delete_a_lilt_segment_by_id
Delete a Segment from memory in Lilt by id. Note: this does not delete the segment from a document. Returns an empty 204 response on success. Required: id.
get_single_lilt_segment_by_id
Retrieve a single Segment in Lilt by id. Returns: id, source, target. Required: id.
update_a_lilt_segment_by_id
Update a Segment in Lilt. Returns: id, source, target. Required: id.
list_all_lilt_segments
List Segments in Lilt. Returns: id, source, target per segment.
get_single_lilt_translated_file_by_id
Download a translated file from lilt by its id. Returns the raw translated file content as a binary stream rather than a structured JSON payload. Required: id.
create_a_lilt_translation
Translate a source string in lilt, returning an array of translation candidates. TM fuzzy matches are ranked first, followed by machine translation results. Returns: target (translated text), score (model confidence), and align (word alignments). Required: source. Maximum source length is 5,000 characters.
delete_a_lilt_upload_by_id
Cancel a multipart S3 upload in Lilt by id, aborting the operation and cleaning up any uploaded parts. Returns an empty 204 response on success. Required: id.
create_a_lilt_upload
Request S3 upload parameters in Lilt to initiate a file upload, supplying the filename and content type. Returns: uploadId, key. Required: filename, type.
list_all_lilt_uploads
List all pending uploads in Lilt for the current user and organization, optionally filtered by upload IDs or statuses. Returns: id, status, filename, type.
get_single_lilt_upload_by_id
Get a specific upload record in Lilt by id. Returns: id, status, filename, type. Required: id.
create_a_lilt_webhook_configuration
Create a new webhook configuration for your Lilt organization. Returns: id, url, events. Required: url.
delete_a_lilt_webhook_configuration_by_id
Delete a specific Lilt webhook configuration by id. Returns an empty 204 response on success. Required: id.
list_all_lilt_webhook_configurations
List all webhook configurations available to your Lilt organization. Returns: id, url, events.
get_single_lilt_webhook_configuration_by_id
Get a specific Lilt webhook configuration by id. Deleted configurations are not returned. Returns: id, url, events. Required: id.
update_a_lilt_webhook_configuration_by_id
Update a specific Lilt webhook configuration by id. Only fields provided in the request body are modified. Returns: id, url, events. Required: id.
list_all_lilt_workflow_templates
List all workflow templates available to the team in lilt. Returns each template's id, which can be passed to subsequent requests such as creating a new Job with a specific Workflow.
list_all_lilt_activities
List lilt audit logs for your organization. Returns: timestamp, userName, userId, teamId, type, requestResult, correlationId, and additional action-type-specific fields (resourceType, action, urlSlug, loginType, etc.). Required: organizationId, userId.
get_single_lilt_create_content_regeneration_by_id
Get content regenerations for a specific lilt Create content item. Returns: id. Required: content_id.
get_single_lilt_file_download_by_id
Download a file from lilt via the /v2/files/download endpoint. Returns the raw file content as a binary stream whose format depends on the content-type of the file being downloaded.
list_all_lilt_file_translations
List file translation requests in lilt. Returns: id, attributes (translation-specific fields whose shape depends on the source file and translation configuration). No required parameters.
create_a_lilt_file_translation
Create a file translation request in lilt using a previously uploaded file. A File ID must be obtained from the lilt file upload process before submitting. Returns: id, attributes (translation-specific fields).
create_a_lilt_job_archive
Archive a job in lilt by submitting a request to the archive endpoint for the specified job. Returns an empty 204 response on success. Required: job_id.
create_a_lilt_job_unarchive
Unarchive a job in Lilt, restoring it from an archived state. Returns the unarchived job object including its id, name, and due date. Required: job_id.
create_a_lilt_job_delivery
Deliver a Lilt job, marking it as delivered and triggering the JOB_DELIVER webhook event. Returns an empty 204 response on success. Required: job_id.
create_a_lilt_job_reactivation
Reactivate a closed or archived lilt job. Required: job_id. Returns an empty 204 response on success.
get_single_lilt_job_export_by_id
Download the exported translation file for a lilt job. Returns the raw file content as an opaque binary download whose format and content type depend on the job's source file type (e.g. XLIFF, DOCX). Required: job_id.
get_single_lilt_job_download_by_id
Download the translated output files for a lilt job. Returns a binary file download containing the job's translated content — the response is a file stream rather than a JSON object. Required: job_id.
create_a_lilt_job_stat
Retrieve TM leverage statistics for a lilt job. Returns new, exact, and fuzzy match statistics representing translation memory coverage across the job's segments. Required: job_id.
create_a_lilt_memory_import
Import a translation memory or termbase file into a specific LILT memory. Supports TMX, SDLTM, SDLXLIFF (with optional custom filters), XLIFF, TMQ, CSV, and TBX formats. Returns an empty 204 response on success. Required: name, memory_id.
create_a_lilt_memory_termbase_export
Export termbase entries for a lilt memory to a CSV file, initiating a background process. Poll `GET /2/memories` and check that `is_processing` equals 0 before downloading the result via `POST /2/memories/termbase/download`. Returns an empty 204 response on success. Required: id.
get_single_lilt_memory_termbase_download_by_id
Download the termbase export for a lilt memory as a CSV file. Returns a CSV file download; you must first call the termbase export endpoint (`/v2/memories/termbase/export`) to initiate the background export process before downloading. Required: id.
get_single_lilt_segment_tag_by_id
Get segment tags in Lilt. Returns: id. No required parameters. Note: per-endpoint source documentation was not found; consult the Lilt API reference for the full response shape.
create_a_lilt_segment_review_unlock
Unaccept and unlock segments in lilt by setting their "Review Done" status to false. Confirmed segments remain confirmed. Returns an empty 204 response on success. Required: segmentIds.
get_single_lilt_upload_s_3_param_by_id
Get S3 upload parameters for a single file upload in Lilt. Returns: url, headers — a presigned S3 URL and the additional headers needed to PUT the file directly to S3.
create_a_lilt_upload_s_3_param
Initiate a single file upload in Lilt and retrieve the S3 presigned upload parameters. Returns: url, headers — a presigned S3 URL and supplemental headers to use when PUTting the file directly to S3. Required: filename, type.
create_a_lilt_upload_multipart
Initiate a multipart upload in lilt for a large file, returning the identifiers needed to upload individual parts and complete the upload. Returns: uploadId, key. Required: filename, type.
get_single_lilt_upload_multipart_part_by_id
Get a presigned S3 URL for uploading a specific part in a Lilt multipart upload workflow. Returns: url (presigned S3 URL to PUT the chunk to). Required: upload_id, part_number, s3Key.
create_a_lilt_upload_multipart_completion
Complete a multipart upload in Lilt by assembling all previously uploaded parts into the final file on S3. Required: upload_id (the multipart upload identifier), parts (array of objects each containing ETag and PartNumber for every uploaded part), and s3Key (the S3 path for the file). Returns an empty 204 response on success.
delete_a_lilt_upload_multipart_cancellation_by_id
Cancel and abort an in-progress multipart upload in Lilt, cleaning up any parts that were already uploaded to S3. Returns an empty 204 response on success. Required: id, key.
Why Truto
Why use Truto’s MCP server for LILT
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with LILT in under an hour. No boilerplate, no maintenance burden.
Link your customer’s LILT account
Use Truto’s frontend SDK to connect your customer’s LILT account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call LILT
Truto’s Proxy API is a 1-to-1 mapping of the LILT API. You call us, we call LILT, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate LILT’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about LILT on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work when my users connect their LILT accounts?
Truto handles LILT credential collection, secure storage, and token management for each of your end users. Your application calls Truto with a tenant identifier and we attach the correct LILT credentials per request.
Can I avoid polling for translation job status?
Yes. Use create_a_lilt_webhook_configuration to subscribe to job lifecycle events like JOB_DELIVER, and Truto will normalize delivery so your platform reacts to completed translations in near real time.
Does the integration support large file uploads?
Yes. In addition to standard create_a_lilt_file uploads, the multipart suite (create_a_lilt_upload_multipart, get_single_lilt_upload_multipart_part_by_id, create_a_lilt_upload_multipart_completion) lets you chunk large assets through S3-backed uploads with cancellation support.
Can my users update their Translation Memory from inside my product?
Yes. The memory endpoints (list_all_lilt_memories, lilt_memories_search, create_a_lilt_memory, create_a_lilt_segment, delete_a_lilt_memory_segment_by_id) let you build UI for managing memories, segments, and termbases without sending users back to LILT.
Does this support multilingual content generation, not just translation?
Yes. The LILT Create endpoints (create_a_lilt_create, create_a_lilt_create_content, get_single_lilt_create_preference_by_id, update_a_lilt_create_preference_by_id) let you generate net-new content in a target language using user-defined tone and style preferences.
What file formats and language metadata are exposed?
You can list supported languages and domains via list_all_lilt_languages and list_all_lilt_domains, retrieve XLIFF documents via get_single_lilt_document_by_id, and download translated assets via get_single_lilt_translated_file_by_id and get_single_lilt_job_download_by_id.
Can I manage the full job lifecycle programmatically?
Yes. Beyond create, read, update, and delete on jobs, you can call create_a_lilt_job_archive, create_a_lilt_job_unarchive, create_a_lilt_job_delivery, create_a_lilt_job_reactivation, and create_a_lilt_job_stat to drive end-to-end workflow automation.
From the Blog
LILT integration guides
Deep dives, architecture guides, and practical tutorials for building LILT integrations.
LILT
Get LILT integrated into your app
Our team understands what it takes to make a LILT integration successful. A short, crisp 30 minute call with folks who understand the problem.