> ## Documentation Index
> Fetch the complete documentation index at: https://developers.phrase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Web Editor URL

> 
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_WORKFLOW_NOT_COMPLETED_STRICT` - Previous workflow step is not completed and project has strictWorkflowFinish set to true
  - `IN_DELIVERED_STATE` - Jobs in DELIVERED state
  - `IN_COMPLETED_STATE` - Jobs in COMPLETED state
  - `IN_REJECTED_STATE` - Jobs in REJECTED state

Possible error codes are:
  - `ASSIGNED_TO_OTHER_USER` - Job is accepted by other user
  - `NOT_UNIQUE_TARGET_LANG` - Requested jobs contains different target locales
  - `TOO_MANY_SEGMENTS` - Count of requested job's segments is higher than **40000**
  - `TOO_MANY_JOBS` - Count of requested jobs is higher than **290**
  - `COMPLETED_JOINED_WITH_OTHER` - Jobs in COMPLETED state cannot be joined with jobs in other states
  - `DELIVERED_JOINED_WITH_OTHER` - Jobs in DELIVERED state cannot be joined with jobs in other states
  - `REJECTED_JOINED_WITH_OTHER` - Jobs in REJECTED state cannot be joined with jobs in other states

Warning response example:
```
{
    "warnings": [
        {
            "message": "Not accepted by linguist",
            "args": {
                "jobs": [
                    "abcd1234"
                ]
            },
            "code": "NOT_ACCEPTED_BY_LINGUIST"
        },
        {
            "message": "Previous workflow step not completed",
            "args": {
                "jobs": [
                    "abcd1234"
                ]
            },
            "code": "PREVIOUS_WORKFLOW_NOT_COMPLETED"
        }
    ],
    "url": "/web/job/abcd1234-efgh5678/translate"
}
```

Error response example:
Status: `400 Bad Request`
```
{
    "errorCode": "NOT_UNIQUE_TARGET_LANG",
    "errorDescription": "Only files with identical target languages can be joined",
    "errorDetails": [
        {
            "code": "NOT_UNIQUE_TARGET_LANG",
            "args": {
                "targetLocales": [
                    "de",
                    "en"
                ]
            },
            "message": "Only files with identical target languages can be joined"
        },
        {
            "code": "TOO_MANY_SEGMENTS",
            "args": {
                "maxSegments": 40000,
                "segments": 400009
            },
            "message": "Up to 40000 segments can be opened in the CAT Web Editor, job has 400009 segments"
        }
    ]
}
```




## OpenAPI

````yaml /openapi/phrase-tms-latest.json post /api2/v2/projects/{projectUid}/jobs/webEditor
openapi: 3.0.0
info:
  description: |-
    Welcome to Phrase's TMS API documentation. 

     Please visit our [help center](https://support.phrase.com/hc/en-us/sections/5709662083612) for more information about the APIs. 

     If you have any questions, please contact [Support](https://support.phrase.com/hc/requests/new). 

     Please, include the `User-Agent` header with the name of your application or project. It might be a good idea to include some sort of contact information as well, so that we can get in touch if necessary. Examples of excellent `User-Agent` headers:
     > User-Agent: Example mobile app (example@phrase.com) <br/> User-Agent: ACME Inc Java 1.8 Client (http://acmeinc.com/contact)
  version: Latest
  title: Phrase TMS API
servers:
  - url: https://cloud.memsource.com/web
security:
  - ApiToken: []
  - OAuth2: []
tags:
  - name: Additional Workflow Step
  - name: Analysis
  - name: Async Request
  - name: Authentication
  - name: Automations
  - name: Bilingual File
  - name: Business Unit
  - name: Buyer
  - name: Client
  - name: Connector
  - name: Conversations
  - name: Cost Center
  - name: Custom Fields
  - name: Custom File Type
  - name: Domain
  - name: Due Date Scheme
  - name: Email Template
  - name: File
  - name: Glossary
  - name: Import settings
  - name: Job
  - name: Language AI
  - name: Language Assets
  - name: Language Quality Assessment
  - name: Machine Translation
  - name: Machine Translation Settings
  - name: Mapping
  - name: Net Rate Scheme
  - name: Notifications
  - name: Price List
  - name: Project
  - name: Project Reference File
  - name: Project Template
  - name: Provider
  - name: Quality Assurance
  - name: Quality Profile
  - name: Quote
  - name: SCIM
  - name: Segment
  - name: Segmentation Rules
  - name: Service
  - name: Spell Check
  - name: SubDomain
  - name: Supported Languages
  - name: Term Base
  - name: Translation
  - name: Translation Memory
  - name: User
  - name: Vendor
  - name: Webhook
  - name: Workflow Step
  - name: Workflow changes
  - name: XML Assistant
paths:
  /api2/v2/projects/{projectUid}/jobs/webEditor:
    post:
      tags:
        - Job
      summary: Get Web Editor URL
      description: |

        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_WORKFLOW_NOT_COMPLETED_STRICT` - Previous workflow step is not completed and project has strictWorkflowFinish set to true
          - `IN_DELIVERED_STATE` - Jobs in DELIVERED state
          - `IN_COMPLETED_STATE` - Jobs in COMPLETED state
          - `IN_REJECTED_STATE` - Jobs in REJECTED state

        Possible error codes are:
          - `ASSIGNED_TO_OTHER_USER` - Job is accepted by other user
          - `NOT_UNIQUE_TARGET_LANG` - Requested jobs contains different target locales
          - `TOO_MANY_SEGMENTS` - Count of requested job's segments is higher than **40000**
          - `TOO_MANY_JOBS` - Count of requested jobs is higher than **290**
          - `COMPLETED_JOINED_WITH_OTHER` - Jobs in COMPLETED state cannot be joined with jobs in other states
          - `DELIVERED_JOINED_WITH_OTHER` - Jobs in DELIVERED state cannot be joined with jobs in other states
          - `REJECTED_JOINED_WITH_OTHER` - Jobs in REJECTED state cannot be joined with jobs in other states

        Warning response example:
        ```
        {
            "warnings": [
                {
                    "message": "Not accepted by linguist",
                    "args": {
                        "jobs": [
                            "abcd1234"
                        ]
                    },
                    "code": "NOT_ACCEPTED_BY_LINGUIST"
                },
                {
                    "message": "Previous workflow step not completed",
                    "args": {
                        "jobs": [
                            "abcd1234"
                        ]
                    },
                    "code": "PREVIOUS_WORKFLOW_NOT_COMPLETED"
                }
            ],
            "url": "/web/job/abcd1234-efgh5678/translate"
        }
        ```

        Error response example:
        Status: `400 Bad Request`
        ```
        {
            "errorCode": "NOT_UNIQUE_TARGET_LANG",
            "errorDescription": "Only files with identical target languages can be joined",
            "errorDetails": [
                {
                    "code": "NOT_UNIQUE_TARGET_LANG",
                    "args": {
                        "targetLocales": [
                            "de",
                            "en"
                        ]
                    },
                    "message": "Only files with identical target languages can be joined"
                },
                {
                    "code": "TOO_MANY_SEGMENTS",
                    "args": {
                        "maxSegments": 40000,
                        "segments": 400009
                    },
                    "message": "Up to 40000 segments can be opened in the CAT Web Editor, job has 400009 segments"
                }
            ]
        }
        ```
      operationId: webEditorLinkV2
      parameters:
        - name: projectUid
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebEditorLinkDtoV2'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebEditorLinkDtoV2'
        '400':
          description: Bad request
        '401':
          description: Not authorized
        '403':
          description: Forbidden
        '404':
          description: Resource not found
        '405':
          description: Method not allowed
        '408':
          description: Timeout
        '410':
          description: Gone
        '415':
          description: Unsupported media type
        '429':
          description: Too many requests
        '500':
          description: Internal server error
        '501':
          description: Not implemented
components:
  schemas:
    CreateWebEditorLinkDtoV2:
      type: object
      required:
        - jobs
      properties:
        jobs:
          type: array
          description: Maximum supported number of jobs is 260
          items:
            $ref: '#/components/schemas/UidReference'
          maxItems: 2147483647
          minItems: 1
    WebEditorLinkDtoV2:
      type: object
      properties:
        url:
          type: string
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetailDtoV2'
    UidReference:
      type: object
      required:
        - uid
      properties:
        uid:
          type: string
    ErrorDetailDtoV2:
      type: object
      properties:
        args:
          type: object
          description: Related arguments, e.g. number => "hello world"
          additionalProperties:
            type: object
        code:
          type: string
          description: Code, e.g. NOT_FOUND.
        message:
          type: string
          description: Optional human-readable message.
  securitySchemes:
    ApiToken:
      description: >-
        Get a token from `auth/login` [endpoint](#operation/login) and then pass
        it in the `Authorization` HTTP header in every subsequent API call. For
        more information visit our [help
        center](https://support.phrase.com/hc/en-us/articles/5709662181404-API-Authentication-TMS-#token-0-0).
      type: apiKey
      name: Authorization
      in: header
    OAuth2:
      description: >-
        A standard OAuth 2.0 authorization code flow. For more information visit
        our [help
        center](https://support.phrase.com/hc/en-us/articles/5709662181404-API-Authentication-TMS-#oauth-2-0-0-1).
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://cloud.memsource.com/web/oauth/authorize
          tokenUrl: https://cloud.memsource.com/web/oauth/token
          scopes: {}

````