> ## 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.

# Edit job

> 
This API call facilitates job editing using a PUT method.

Unlike [Patch job](../job/patch-job), this call employs a PUT method, necessitating the inclusion of all
parameters in the request. Omitting any parameter will reset its value to the default. For instance, if only the status
field is included, the due date and provider fields will be emptied, even if they had previous values.

It's recommended to either use a call like [Get job](../job/get-job) or [List jobs](../job/list-jobs) to
gather the unchanged information or consider using the [Patch job](../job/patch-job) operation.

This call supports editing the status, due date, and providers. When modifying providers, it's crucial to submit both
the provider's ID and its type (either VENDOR or USER).

To mark a job as completed (finished), set the status field to COMPLETED. Consider using
[Edit job status](../job/edit-job-status) instead, since it does not require resending the due date and providers.

Assigning a provider through this call does NOT send a notification email to the assigned provider. To notify
providers of their assignment, call [Notify assigned users](../job/notify-assigned-users) with the emailTemplate.id of
the template to send.

The response will offer a subset of information from [Get job](../job/get-job).




## OpenAPI

````yaml /openapi/phrase-tms-v1.json put /api2/v1/projects/{projectUid}/jobs/{jobUid}
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: '1'
  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 Template
  - name: Provider
  - name: Quality Assurance
  - name: Quality Profile
  - name: Quote
  - name: Reference File
  - 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: XML Assistant
paths:
  /api2/v1/projects/{projectUid}/jobs/{jobUid}:
    put:
      tags:
        - Job
      summary: Edit job
      description: >

        This API call facilitates job editing using a PUT method.


        Unlike [Patch job](../job/patch-job), this call employs a PUT method,
        necessitating the inclusion of all

        parameters in the request. Omitting any parameter will reset its value
        to the default. For instance, if only the status

        field is included, the due date and provider fields will be emptied,
        even if they had previous values.


        It's recommended to either use a call like [Get job](../job/get-job) or
        [List jobs](../job/list-jobs) to

        gather the unchanged information or consider using the [Patch
        job](../job/patch-job) operation.


        This call supports editing the status, due date, and providers. When
        modifying providers, it's crucial to submit both

        the provider's ID and its type (either VENDOR or USER).


        To mark a job as completed (finished), set the status field to
        COMPLETED. Consider using

        [Edit job status](../job/edit-job-status) instead, since it does not
        require resending the due date and providers.


        Assigning a provider through this call does NOT send a notification
        email to the assigned provider. To notify

        providers of their assignment, call [Notify assigned
        users](../job/notify-assigned-users) with the emailTemplate.id of

        the template to send.


        The response will offer a subset of information from [Get
        job](../job/get-job).
      operationId: editPart
      parameters:
        - name: projectUid
          in: path
          description: Project UID
          required: true
          schema:
            type: string
        - name: jobUid
          in: path
          description: Job UID
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobPartUpdateSingleDtoV1'
        description: Full set of job fields to apply
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobPartExtendedDtoV1'
        '400':
          description: Bad Request
        '401':
          description: Not authorized
        '403':
          description: Forbidden
        '404':
          description: 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:
    JobPartUpdateSingleDtoV1:
      type: object
      required:
        - status
      properties:
        dateDue:
          type: string
          format: date-time
        providers:
          type: array
          items:
            $ref: '#/components/schemas/ProviderReferenceV1'
        status:
          type: string
          enum:
            - NEW
            - ACCEPTED
            - DECLINED
            - REJECTED
            - DELIVERED
            - EMAILED
            - COMPLETED
            - CANCELLED
    JobPartExtendedDtoV1:
      type: object
      properties:
        beginIndex:
          type: integer
          format: int32
          description: Index of the first segment of this part within the original job
        continuous:
          type: boolean
          description: When true, this is a continuous job
        continuousJobInfo:
          $ref: '#/components/schemas/ContinuousJobInfoDtoV1'
        dateCreated:
          type: string
          format: date-time
          description: Date and time the job was created
        dateDue:
          type: string
          format: date-time
          description: Due date of the job; null if not set
        endIndex:
          type: integer
          format: int32
          description: Index of the last segment of this part within the original job
        filename:
          type: string
          description: Original filename of the job
        importStatus:
          $ref: '#/components/schemas/ImportStatusDtoV1'
        imported:
          type: boolean
          description: When true, the file has been imported successfully
        innerId:
          type: string
          description: >-
            InnerId is a sequential number of a job in a project. Jobs created
            from the same file share the same innerId across workflow steps.
        isParentJobSplit:
          type: boolean
          description: Whether the job originates from a split
        jobReference:
          $ref: '#/components/schemas/JobReferenceV1'
        lastWorkflowLevel:
          type: integer
          format: int32
          description: Highest workflow step level in the project
        originalFileDirectory:
          type: string
          description: Directory path of the original source file
        project:
          $ref: '#/components/schemas/A_reference_to_a_project'
        providers:
          type: array
          description: >-
            Providers assigned to the job; empty for callers without linguist
            visibility
          items:
            $ref: '#/components/schemas/ProviderReferenceV1'
        serverTaskId:
          type: string
          description: Identifier of the server-side import task
        sourceLang:
          type: string
          description: Source language code
        status:
          type: string
          description: Current status of the job
          enum:
            - NEW
            - ACCEPTED
            - DECLINED
            - REJECTED
            - DELIVERED
            - EMAILED
            - COMPLETED
            - CANCELLED
        targetLang:
          type: string
          description: Target language code
        uid:
          type: string
          description: Unique identifier used in API paths
        updateSourceDate:
          type: string
          format: date-time
          description: Date and time the source was last updated; null if never updated
        updateTargetDate:
          type: string
          format: date-time
          description: Date and time the target was last updated; null if never updated
        wordsCount:
          type: integer
          format: int32
          description: Number of words in the job
        workUnit:
          $ref: '#/components/schemas/ObjectReference'
        workflowLevel:
          type: integer
          format: int32
          description: Workflow step level of this job (1-based)
        workflowStep:
          $ref: '#/components/schemas/ProjectWorkflowStepReferenceV1'
    ProviderReferenceV1:
      type: object
      required:
        - type
      discriminator:
        propertyName: type
      properties:
        id:
          type: string
        type:
          type: string
        uid:
          type: string
          description: UID of the provider
          readOnly: true
    ContinuousJobInfoDtoV1:
      type: object
      properties:
        dateUpdated:
          type: string
          format: date-time
    ImportStatusDtoV1:
      type: object
      properties:
        errorMessage:
          type: string
        status:
          type: string
          enum:
            - RUNNING
            - ERROR
            - OK
    JobReferenceV1:
      type: object
      properties:
        filename:
          type: string
        uid:
          type: string
    A_reference_to_a_project:
      type: object
      properties:
        name:
          type: string
          description: Name of the project
        uid:
          type: string
          description: Unique identifier used in API paths
    ObjectReference:
      type: object
    ProjectWorkflowStepReferenceV1:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        order:
          type: integer
          format: int32
        workflowLevel:
          type: integer
          format: int32
  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: {}

````