Why ContentAPI (Version 2)

Realignment of all connectors to ContentAPI (Version 2) so that they are compliant with the Lionbridge development guidelines and Certification process. All connectors will be subject to an ongoing program of enhancements, features, and bug fixes to improve the overall customer experience.

What’s in ContentAPI (Version 2)

New Rest API

  • A new Rest (Representational State Transfer) API that adheres to industry standards that allows development to build integrations in the programming language of their choice.

Consolidation of API integrations

  • A single common API to integrate with the Lionbridge technology stack, allowing for enhanced features and support experiences.

Security Improvements

  • Implementation of the latest security protocols to align with our Customers policies and requirements (TLS 1.2 support, HTTPs, OAuth 2.0, etc).

Performance and scalability

  • The new REST API is being built using the latest, industry standard protocols to allow for greater performance and scalability leading to better reliability.

File Management System (FMS)

Implementation of a new file management system within Lionbridge which allows for the transmission and consumption of larger payloads, including support assets (where applicable). Using:
  • The TUS client to interact with the file management system will allow for the resumption of uploads that have been interrupted or have failed.
  • A direct upload process is also supported if needed.

API Workflows

  • Support for both file and key-value-pair workflows to allow for greater flexibility in connector development.

Metadata

  • Allow for the implementation of standard and customized metadata fields to meet the requirements of our customers.

Error Management

  • Greater error handling and management with improved user experience should an error arise, along with an enriched notification experience.

Future plans:

  • Support for webhooks (listeners) to allow for quicker retrieval of completed jobs (end of Q3 2021).
  • Support quoting API to provide seamless quote review/approval experience from within connectors (end of Q3 2021).
  • Support soil restriction.

Note: Lionbridge Content API v1 will be retired by mid-2022. All connectors built using Content API v1 should be updated to use Content API v2 by then.

Changes from Content API v1

The following incompatible API changes are introduced to address deficiencies on Content API v1. All other API endpoints stay the same.

Access token

  • Content API v2 supports client credential flow to obtain access token from client id and secret. This replaces the POST "/outh2/token" endpoint in v1.

File transfer

  • File uploads are handled by Lionbridge File Management Service (FMS) following TUS protocol. References to fileId have been renamed to fmsFileId. Direct upload without using TUS client is also supported. For more details see File Transfer for Content API Clients.
  • Tag "File" and "SourceFile" have been renamed to "FileTransfer"
  • POST '/jobs/{jobId}/upload' removed. Replaced with POST '/jobs/{jobId}/sourcefiles'. Whereas the old method was used to POST a multipart formdata as binary, the new method is part of a 2-step process for transferring file to Lionbridge FMS, using the TUS protocol.
  • GET '/jobs/{jobId}/requests/{requestId}/retrievefile': requires user to follow 307 redirect (as it goes to FMS). Most HTTP client libraries do this automatically or can be enabled by a configuration setting. For example, cURL has a -L option.
  • GET '/jobs/{jobId}/sourcefiles/{fileId}/retrieve' is replaced with GET '/jobs/{jobId}/sourcefiles/{fmsFileId}'. It retrieves the source content of translation request as a file.

Job metadata, filtering and sorting

  • Added new attribute 'globalTrackingId' to "Job" schema. Global tracking id is a tracking id that is assigned to every translation job submitted to Lionbridge, it enables easy tracking of job progress as it goes through Lionbridge's production workflows.
  • Added

Status lifecycle and status update

  • Status lifecyle has been simplified. StatusCodeEnum is now separated into JobStatusCodeEnum and RequestStatusCodeEnum and some statuses are renamed or removed. For more detail see Status Lifecycle.
  • Job is now completed explicitly by an new API method: PUT '/jobs/{jobId}/complete'. It sets job status to COMPLETED and prevents further translations from being processed.
  • Completed job can be reopened so that more translation can be processed with a new API method: 'PUT /jobs/{jobId}/intranslation'. It sets job status back to IN_TRANSLATION and allows further translations from being imported again.
  • StatusUpdates are only provided for status transition to REVIEW_TRANSLATION, error conditions, and Provider-side cancellation. In v1, all state transitions result in updates.
  • GET '/jobs/{jobId}/statusupdates' is now deprecated. Please use GET '/statusupdates' to retrieve status updates.
  • GET '/statusupdates' and '/jobs/{jobId}/statusupdates' returns updates that are immutable.
  • Since updates are now immutable, PUT ‘/statusupdates/{updateId}/acknowledge' return value is now identical to its unacknowledged state.

Job archival

  • Removed the the parameter 'includeArchived' from API GET '/jobs'. The method returns active (unarchived) jobs only.
  • Added new API GET '/jobs/archived' to return archived jobs.
  • Requests of an archived job cannot be accessed until the job is unarchived.

Others

  • Paging is supported for all collection responses. The paging information is now embedded in the response instead of being part of the response header.
  • Added new query parameters "id" in 'GET /jobs/{jobId}/requests' to specify which requests to retrieve.
  • Removed API PUT '/jobs/{jobId}/requests' for querying specified requests. Use 'GET /jobs/{jobId}/requests' with id parameters instead.

 

What's New in the Lionbridge Content API v2?

New changes introduced on 10/17/2023

New changes introduced on 10/10/2022

  • Added permission validation on provider creation
  • Added invocation endpoint
  • Extended filename length to 250 For POST /jobs/{jobId}/sourcefiles
  • Fixed: don't allow user to patch a submitted job
  • Fixed: webhook payload could be stuck on IN_PROGRESS
  • Fixed: allow DELETE permission when site id is not null

New changes introduced on 01/09/2022

  • Added Listeners for status update callbacks
  • Added status code filter on GET requests
  • Extended job auto-archival policy to 6 months
  • Added Quota endpoint
  • Fixed: deny POST request when target language is null

New changes introduced on 8/16/2021

  • Fixed: intermittent issue when sending job with large (500+) number of file requests, status is stuck at SENDING.
  • Fixed: Approving a request not yet in REVIEW_TRANSLATION returns a NPE. This now returns an error object with readable error message.
  • Fixed: providerReference is not set on key-value pair requests.
  • Intermittent errors from FMS now returns specific error code instead of a 500 server error
  • Specify 1Mb limit for creating SourceContent in user documentation

  • Error.field is deprecated

New changes introduced on 6/29/2021

  • Added TranslationMemory API endpoints
  • GET '/jobs' and GET '/jobs/archived' supports filter and orderBy parameters
  • Job model has a new field: labels. It can be used as a filter parameter on GET '/jobs'.
  • New Job fields activityDate and estArchivalDate added, for auto-archival.
  • Added optional "aggregateRequests" attribute to job to retrieve breakdown of request statuses.
  • No StatusUpdates were created on CANCELLED requests. This has been fixed.
  • Added rate limiting to API. Returns HTTP status code 429 when exceeded.
  • ExtendedMetadata as freeform JSON object is now supported for Job, Request, and SupportAsset model.
  • The Provider field ExtendedMetadataSchema is now supported. It is a Json schema intended to validate a job's ExtendedMetadata format, should a provider requires it.
  • PUT '/jobs/{jobId}' has been deprecated, replaced by PATCH '/jobs/{jobId}'
  • Noted PUT '/jobs/{jobId}/archive' and PUT '/jobs/{jobId}/unarchive' are asynchronous
  • Added activityDate and estimatedArchivalDate to Job model, for future Job auto-archival feature
  • New API category "TranslationContent" has been added, allowing inline string content to be used as translation source.
  • POST '/jobs/{jobId}/requests/addfile' has been deprecated, replaced by POST '/jobs/{jobId}/requests/add'. The new method allows adding both file and inline string content.
  • PUT '/jobs/{jobId}/requests/updatefilecontent' has been deprecated, replaced by PATCH '/jobs/{jobId}/requests' and PATCH '/jobs/{jobId}/requests/{requestId}'. The new methods can be used for both file and inline string content.
  • GET '/jobs' filter and orderBy with date fields were not working; they have been fixed
  • Added fileName field to Request model, for file-based Requests

New changes introduced on 3/15/2021

  • Response of POST /jobs/{jobId}/sourcefiles now contains a "fmsPostMultipartUrl" attribute, which supports direct upload without using TUS client. See File Transfer page for details.

New changes introduced on 2/8/2021

  • Content API production environment is now ready. Your connector can start production work as soon as it passes the certification process.
  • GET '/jobs/{jobId}/statusupdates' is now deprecated. Please use GET '/statusupdates' to retrieve status updates.

New changes introduced on 1/27/2021

  • Content API now supports client credential flow to obtain access token from client id and secret. It replaces the temporary token provisioned to early clients for accessing Content API v2.
  • Added new attribute 'globalTrackingId' to 'Job' schema. Global tracking id is a tracking id that is assigned to every translation job submitted to Lionbridge, it enables easy tracking of job progress as it goes through Lionbridge's production workflows.

New changes introduced on 1/18/2021

  • Removed the the parameter 'includeArchived' from API GET '/jobs'. The method returns active (unarchived) jobs only.
  • Added new API GET '/jobs/archived' to return archived jobs.
  • Requests of an archived job cannot be accessed until the job is unarchived.