# Phrase Developer Hub: English API Reference TMS V2

## V2

###  

- [Introduction](https://developers.phrase.com/en/api/tms/v2/introduction.md)

### Overview

- [Authentication](https://developers.phrase.com/en/api/tms/v2/authentication.md)
- [Handle TMS API rate limits](https://developers.phrase.com/en/api/tms/v2/handling-api-rate-limits.md)
- [Handling Concurrent API Rate Limits](https://developers.phrase.com/en/api/tms/v2/handling-concurrent-api-limits.md)

### API Documentation

#### Analysis

- [Create analysis](https://developers.phrase.com/en/api/tms/v2/analysis/create-analysis.md): Returns created analyses - batching analyses by number of segments (api.segment.count.approximation, default 100000), in case request contains more segments than maximum (api.segment.max.count, default 300000), returns 400 bad request.
- [Edit analyses (batch)](https://developers.phrase.com/en/api/tms/v2/analysis/edit-analyses-batch.md): If no netRateScheme is provided in request, then netRateScheme associated with provider will be used if it exists, otherwise it will remain the same as it was.
- [Get analysis](https://developers.phrase.com/en/api/tms/v2/analysis/get-analysis.md): Deprecated. Use v3 'Get analysis' (GET /api2/v3/analyses/{analyseUid}) instead.
- [Edit analysis](https://developers.phrase.com/en/api/tms/v2/analysis/edit-analysis.md): If no netRateScheme is provided in request, then netRateScheme associated with provider will be used if it exists, otherwise it will remain the same as it was.
- [List analyses](https://developers.phrase.com/en/api/tms/v2/analysis/list-analyses.md)

#### Bilingual File

- [Upload bilingual file](https://developers.phrase.com/en/api/tms/v2/bilingual-file/upload-bilingual-file.md): Uploads one or more bilingual files for a job and returns the updated job parts together with their project. Send the files as a multipart/form-data request using the `file` form field. ZIP archives are automatically expanded into the bilingual files they contain. A maximum of 50 files may be upload…

#### Connector

- [Upload file (async)](https://developers.phrase.com/en/api/tms/v2/connector/upload-file-async.md): Upload a file to a subfolder of the selected connector. The upload is processed asynchronously; the response contains the id of the created async task, whose status can be tracked via [Get Connector async task states](../connector/get-connector-async-task-states).
- [Download file (async)](https://developers.phrase.com/en/api/tms/v2/connector/download-file-async.md): Create an asynchronous request to download a file from a (sub)folder of the selected connector.  After a callback with successful response is received, prepared file can be downloaded by [Download prepared file](../connector/download-prepared-file)  or [Create job from connector asynchronous downloa…
- [Download prepared file](https://developers.phrase.com/en/api/tms/v2/connector/download-prepared-file.md): Download the file by referencing successfully finished async download request [Connector - Download file (async)](../connector/download-file-async).

#### Conversations

- [Create LQA conversation](https://developers.phrase.com/en/api/tms/v2/conversations/create-lqa-conversation.md): Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.
- [Update LQA conversation](https://developers.phrase.com/en/api/tms/v2/conversations/update-lqa-conversation.md): Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.
- [Add LQA comment](https://developers.phrase.com/en/api/tms/v2/conversations/add-lqa-comment.md): Returns a result wrapper containing the new comment id and the updated conversation. Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' pr…
- [Edit LQA comment](https://developers.phrase.com/en/api/tms/v2/conversations/edit-lqa-comment.md): Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.

#### Job

- [Get status changes for jobs](https://developers.phrase.com/en/api/tms/v2/job/get-status-changes-for-jobs.md)
- [List jobs](https://developers.phrase.com/en/api/tms/v2/job/list-jobs.md): API call to return a paginated list of [jobs](https://support.phrase.com/hc/en-us/articles/5709686763420-Jobs-TMS-) in the given project.
- [Pseudo-translate job](https://developers.phrase.com/en/api/tms/v2/job/pseudo-translate-job.md)
- [Delete specific translations](https://developers.phrase.com/en/api/tms/v2/job/delete-specific-translations.md)
- [Get Web Editor URL](https://developers.phrase.com/en/api/tms/v2/job/get-web-editor-url.md): Possible warning codes are:   - `NOT_ACCEPTED_BY_LINGUIST` - Job is not accepted by linguist   - `NOT_ASSIGNED_TO_LINGUIST` - Job is not assigned to linguist   - `PDF` - One of requested jobs is PDF   - `PREVIOUS_WORKFLOW_NOT_COMPLETED` - Previous workflow step is not completed   - `PREVIOUS_WORKFLO…
- [Download target file based on async request](https://developers.phrase.com/en/api/tms/v2/job/download-target-file-based-on-async-request.md): This call will return target file with translation. This means even for other jobs that were created via 'split jobs' etc.
- [Download target file (async)](https://developers.phrase.com/en/api/tms/v2/job/download-target-file-async.md): This call initiates an asynchronous request to generate and download the target file containing translations. This request covers jobs created via actions like 'split jobs', ensuring accessibility even for such cases.
- [Search job's translation memories](https://developers.phrase.com/en/api/tms/v2/job/search-jobs-translation-memories.md): Searches translation memories assigned to the job for the given workflowLevel (0 = all levels). Deprecated -- use searchByJob3 (/api2/v3/projects/{projectUid}/jobs/{jobUid}/transMemories/search).
- [Wildcard search job's translation memories](https://developers.phrase.com/en/api/tms/v2/job/wildcard-search-jobs-translation-memories.md): Wildcard-searches translation memories assigned to the job for the given workflowLevel (omit to search all levels). Deprecated -- use wildCardSearchByJob3 (/api2/v3/projects/{projectUid}/jobs/{jobUid}/transMemories/wildCardSearch).

#### Language AI

- [List of Language AI profiles](https://developers.phrase.com/en/api/tms/v2/language-ai/list-of-language-ai-profiles.md): Returns a paginated list of Language AI (MT) profiles for the authenticated organization. The response item shape is identical to GET/POST/PUT of a single profile.
- [Add Language AI profile](https://developers.phrase.com/en/api/tms/v2/language-ai/add-language-ai-profile.md): Creates a new profile from the organization default, or clones an existing profile when `cloneFromUid` is provided. Cloning a locked profile is rejected.
- [List of Language AI engine categories](https://developers.phrase.com/en/api/tms/v2/language-ai/list-of-language-ai-engine-categories.md): Per-org catalogue of available MT engine types, grouped by category. An empty PREDEFINED/PREDEFINED_CUSTOMIZABLE (native, fully managed) category means the organization is not entitled to native engines, not that engines are missing/deleted.
- [Get Language AI profile](https://developers.phrase.com/en/api/tms/v2/language-ai/get-language-ai-profile.md): Returns the exact same object shape as a LIST item; the top-level `uid` is always the profile uid.
- [Modify Language AI profile](https://developers.phrase.com/en/api/tms/v2/language-ai/modify-language-ai-profile.md): Renames the profile. Rejected on a locked profile.
- [Delete Language AI profile](https://developers.phrase.com/en/api/tms/v2/language-ai/delete-language-ai-profile.md): Rejected on a locked profile.
- [Get engine statuses of Language AI profile](https://developers.phrase.com/en/api/tms/v2/language-ai/get-engine-statuses-of-language-ai-profile.md): Makes real-time calls to each MT engine backend to retrieve live status. Each entry includes the engine name.
- [Enable or disable an engine of Language AI profile](https://developers.phrase.com/en/api/tms/v2/language-ai/enable-or-disable-an-engine-of-language-ai-profile.md): Sets the enabled state of a single MT engine attached to the profile. The call is idempotent. Engine UIDs are returned in the `engines` array of the profile. Enabling an engine type that is not allowed for the organization fails with 400.
- [Get glossaries attached to the profile](https://developers.phrase.com/en/api/tms/v2/language-ai/get-glossaries-attached-to-the-profile.md): Requires the glossary feature to be enabled on the organization.
- [Attach Glossary to Language AI profile](https://developers.phrase.com/en/api/tms/v2/language-ai/attach-glossary-to-language-ai-profile.md): Requires the glossary feature to be enabled on the organization.
- [Remove Glossary from Language AI profile](https://developers.phrase.com/en/api/tms/v2/language-ai/remove-glossary-from-language-ai-profile.md): Requires the glossary feature to be enabled on the organization.

#### Net Rate Scheme

- [Create net rate scheme](https://developers.phrase.com/en/api/tms/v2/net-rate-scheme/create-net-rate-scheme.md)
- [Get net rate scheme](https://developers.phrase.com/en/api/tms/v2/net-rate-scheme/get-net-rate-scheme.md)
- [Edit net rate scheme](https://developers.phrase.com/en/api/tms/v2/net-rate-scheme/edit-net-rate-scheme.md)

#### Project

- [Create project](https://developers.phrase.com/en/api/tms/v2/project/create-project.md): Deprecated. Use POST /api2/v2/projects/applyTemplate/{templateUid} instead.
- [Create project from template (async)](https://developers.phrase.com/en/api/tms/v2/project/create-project-from-template-async.md): Note: unlike creating a project from a template via the UI, this API call does not automatically assign providers configured in the template's workflow steps. Call assignProviders separately to apply them.
- [Create project from template](https://developers.phrase.com/en/api/tms/v2/project/create-project-from-template.md): Note: unlike creating a project from a template via the UI, this API call does not automatically assign providers configured in the template's workflow steps. Call assignProviders separately to apply them.
- [Edit project](https://developers.phrase.com/en/api/tms/v2/project/edit-project.md): Deprecated. Use PATCH /api2/v1/projects/{projectUid} instead.
- [Get access and security settings](https://developers.phrase.com/en/api/tms/v2/project/get-access-and-security-settings.md): If the project has been archived, this call returns `404 Not Found` instead of the settings, the same as for a non-existent project. Restore it first via `PATCH /api2/v1/projects/{projectUid}/restore` to make it accessible again.
- [Edit access and security settings](https://developers.phrase.com/en/api/tms/v2/project/edit-access-and-security-settings.md): If the project has been archived, this call returns `404 Not Found` instead of editing the settings, the same as for a non-existent project. Restore it first via `PATCH /api2/v1/projects/{projectUid}/restore` to make it accessible again.
- [List analyses by project](https://developers.phrase.com/en/api/tms/v2/project/list-analyses-by-project.md): Deprecated. Use GET /api2/v3/analyses with projectUid filter instead.
- [Get Pre-translate settings](https://developers.phrase.com/en/api/tms/v2/project/get-pre-translate-settings.md): Deprecated. Use GET /api2/v4/projects/{projectUid}/preTranslateSettings instead.
- [Update Pre-translate settings](https://developers.phrase.com/en/api/tms/v2/project/update-pre-translate-settings.md): Deprecated. Use PUT /api2/v4/projects/{projectUid}/preTranslateSettings instead.
- [Get suggested providers](https://developers.phrase.com/en/api/tms/v2/project/get-suggested-providers.md)
- [Edit quality assurance settings](https://developers.phrase.com/en/api/tms/v2/project/edit-quality-assurance-settings.md): Only checks listed in the request are updated; omitted checks keep their current settings.
- [Get translation memories](https://developers.phrase.com/en/api/tms/v2/project/get-translation-memories.md): Deprecated. Use GET /api2/v3/projects/{projectUid}/transMemories instead.
- [Edit translation memories](https://developers.phrase.com/en/api/tms/v2/project/edit-translation-memories.md): Deprecated. Use PUT /api2/v3/projects/{projectUid}/transMemories instead.
- [Get workflow steps](https://developers.phrase.com/en/api/tms/v2/project/get-workflow-steps.md)

#### Project Template

- [Edit project template](https://developers.phrase.com/en/api/tms/v2/project-template/edit-project-template.md): Replaces all editable fields of the project template in a single call.
- [Get Pre-translate settings](https://developers.phrase.com/en/api/tms/v2/project-template/get-pre-translate-settings.md): Deprecated. Use GET /api2/v4/projectTemplates/{projectTemplateUid}/preTranslateSettings instead.
- [Update Pre-translate settings](https://developers.phrase.com/en/api/tms/v2/project-template/update-pre-translate-settings.md): Deprecated. Use PUT /api2/v4/projectTemplates/{projectTemplateUid}/preTranslateSettings instead.
- [Get translation memories](https://developers.phrase.com/en/api/tms/v2/project-template/get-translation-memories.md): Deprecated. Use GET /api2/v3/projectTemplates/{projectTemplateUid}/transMemories instead.
- [Edit translation memories](https://developers.phrase.com/en/api/tms/v2/project-template/edit-translation-memories.md): If user wants to edit “All target languages” or “All workflow steps”, but there are already varied TM settings for individual languages or steps, then the user risks to overwrite these individual choices. A dataPerContext entry that is not included in the request is left completely untouched — only…

#### Provider

- [Get suggested providers for multiple jobs](https://developers.phrase.com/en/api/tms/v2/provider/get-suggested-providers-for-multiple-jobs.md): Returns the providers most relevant to a selection of jobs in `relevant`, ranked by relevance aggregated across all selected jobs based on the jobs' languages, workflow steps and history. An optional `limit` caps the response to the top-N most relevant providers; if omitted, all are returned.
- [Get suggested providers](https://developers.phrase.com/en/api/tms/v2/provider/get-suggested-providers.md)

#### Quality Assurance

- [Get list of LQA profile authors](https://developers.phrase.com/en/api/tms/v2/quality-assurance/get-list-of-lqa-profile-authors.md): Requires LQA to be enabled for the organization. Requires internal role.
- [Add ignored warnings](https://developers.phrase.com/en/api/tms/v2/quality-assurance/add-ignored-warnings.md)
- [Delete ignored warnings](https://developers.phrase.com/en/api/tms/v2/quality-assurance/delete-ignored-warnings.md)
- [Run quality assurance (batch)](https://developers.phrase.com/en/api/tms/v2/quality-assurance/run-quality-assurance-batch.md): Deprecated. Use POST /api2/v4/projects/{projectUid}/jobs/qualityAssurances/run instead.<p>&nbsp;<p>Call "Get QA settings" endpoint to get the list of enabled QA checks
- [Run quality assurance on selected segments](https://developers.phrase.com/en/api/tms/v2/quality-assurance/run-quality-assurance-on-selected-segments.md): Deprecated. Use POST /api2/v4/projects/{projectUid}/jobs/qualityAssurances/segments/run instead.<p>&nbsp;<p>Source and target language of jobs have to match
- [Get QA settings](https://developers.phrase.com/en/api/tms/v2/quality-assurance/get-qa-settings.md): Deprecated. Use GET /api2/v4/projects/{projectUid}/jobs/qualityAssurances/settings instead.<p>&nbsp;<p>Returns enabled quality assurance checks and settings.
- [Run quality assurance](https://developers.phrase.com/en/api/tms/v2/quality-assurance/run-quality-assurance.md): Deprecated. Use POST /api2/v4/projects/{projectUid}/jobs/{jobUid}/qualityAssurances/run instead.<p>&nbsp;<p>Call "Get QA settings" endpoint to get the list of enabled QA checks
- [Get QA settings for job](https://developers.phrase.com/en/api/tms/v2/quality-assurance/get-qa-settings-for-job.md): Deprecated. Use GET /api2/v4/projects/{projectUid}/jobs/{jobUid}/qualityAssurances/settings instead.<p>&nbsp;<p>Returns enabled quality assurance checks and settings for job.

#### Quote

- [Create quote](https://developers.phrase.com/en/api/tms/v2/quote/create-quote.md): For billingUnit "Hour", provide either workflowSettings or units, but not both. Additional workflow steps listed in additionalSteps are added to the quote by name.

#### Reference File

- [Create project reference files](https://developers.phrase.com/en/api/tms/v2/reference-file/create-project-reference-files.md): The `json` request part allows sending additional data as JSON, such as a text note that will be used for all the given reference files. In case no `file` parts are sent, only 1 reference is created with the given note. Either at least one file must be sent or the note must be specified. Example:

#### Term Base

- [Search job's term bases](https://developers.phrase.com/en/api/tms/v2/term-base/search-jobs-term-bases.md): Search all read term bases assigned to the job
- [Search terms in text](https://developers.phrase.com/en/api/tms/v2/term-base/search-terms-in-text.md): Search in text in all read term bases assigned to the job
- [Upload term base](https://developers.phrase.com/en/api/tms/v2/term-base/upload-term-base.md): Terms can be imported from XLS/XLSX and TBX file formats into a term base. See <a target="_blank" href="https://support.phrase.com/hc/en-us/articles/5709733372188">Phrase Help Center</a>

#### Translation

- [Pre-translate job](https://developers.phrase.com/en/api/tms/v2/translation/pre-translate-job.md)

#### Translation Memory

- [List translation memories](https://developers.phrase.com/en/api/tms/v2/translation-memory/list-translation-memories.md)
- [Align translation memory](https://developers.phrase.com/en/api/tms/v2/translation-memory/align-translation-memory.md): Aligns files for a translation memory using its source locale. Submit either a                      sourceFile + targetFile pair, or a single archiveFile containing paired source and                      target files (mutually exclusive). Returns the aligned XLSX as an octet-stream, or…
- [Export translation memory](https://developers.phrase.com/en/api/tms/v2/translation-memory/export-translation-memory.md): Use [this API](../translation-memory/download-export) to download result. Requires Admin, Project Manager, or Guest role; not available to Linguist or Submitter roles. Linguist-role callers should use [List translation memory segments](../translation-memory/list-translation-memory-segments) instead.
- [Import translation memory](https://developers.phrase.com/en/api/tms/v2/translation-memory/import-translation-memory.md): Accepts TMX (.tmx), XLIFF (.xlf, .xliff), MXLIFF (.mxlf, .mxliff), and Excel (.xls, .xlsx). Format is detected from the filename extension. This call is **asynchronous**, use [this API](../async-request/get-asynchronous-request) to check the result. Requires the "Import into TMs created by other use…
- [List translation memory segments](https://developers.phrase.com/en/api/tms/v2/translation-memory/list-translation-memory-segments.md): Synchronous, paginated JSON listing of translation memory segments. A blank or "*" query lists all segments. Available to Admin, Project Manager, Guest, and Linguist roles. Each segment's `tagMetadata` holds the actual content behind its inline tags (e.g. locked/non-translatable sub-text, original e…
- [Delete all segments](https://developers.phrase.com/en/api/tms/v2/translation-memory/delete-all-segments.md): This call is **asynchronous**, use [this API](../async-request/get-asynchronous-request)                     to check the result. This operation is permanent - deleted segments cannot be recovered.
- [Bulk delete segments](https://developers.phrase.com/en/api/tms/v2/translation-memory/bulk-delete-segments.md): When `lang` is omitted, both the source and all translations are removed for each segment.                     When `lang` is provided, only that translation is removed.                     This operation is permanent - deleted segments cannot be recovered.

#### User

- [Create user](https://developers.phrase.com/en/api/tms/v2/user/create-user.md)
- [Get user](https://developers.phrase.com/en/api/tms/v2/user/get-user.md)
- [Edit user](https://developers.phrase.com/en/api/tms/v2/user/edit-user.md)

#### Webhook

- [Lists webhooks](https://developers.phrase.com/en/api/tms/v2/webhook/lists-webhooks.md)
- [Create webhook](https://developers.phrase.com/en/api/tms/v2/webhook/create-webhook.md)
- [Get webhook body previews](https://developers.phrase.com/en/api/tms/v2/webhook/get-webhook-body-previews.md)
- [Get webhook](https://developers.phrase.com/en/api/tms/v2/webhook/get-webhook.md)
- [Edit webhook](https://developers.phrase.com/en/api/tms/v2/webhook/edit-webhook.md)
- [Delete webhook](https://developers.phrase.com/en/api/tms/v2/webhook/delete-webhook.md)
- [Send test webhook](https://developers.phrase.com/en/api/tms/v2/webhook/send-test-webhook.md): Returns 400 if the webhook does not include the specified event.

#### Workflow changes

- [Download workflow changes report](https://developers.phrase.com/en/api/tms/v2/workflow-changes/download-workflow-changes-report.md): Returns an HTML report of translation differences between workflow steps for the specified jobs. All jobs must belong to the same project. The project must have at least two workflow steps configured. Required role: Administrator or Project Manager.

## OpenAPI Specs

- [phrase-tms-v2](/openapi/phrase-tms-v2.json)
