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

> Replaces the whole quote. Any field left out of the request is reset: omitting provider unassigns the provider, omitting netRateScheme removes the net rate scheme and omitting name clears the name. The exceptions are pricing and additionalSteps: when omitted or empty, the existing values are kept. The project (project.uid), analyse and priceList are required. Either WorkflowSettings or Units must be sent for billingUnit "Hour".



## OpenAPI

````yaml /openapi/phrase-tms-latest.json put /api2/v3/quotes/{quoteUid}
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: Metabase
  - 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: Segment
  - name: Segmentation Rules
  - name: Service
  - name: Setup
  - name: Spell Check
  - name: SubDomain
  - name: Supported Languages
  - name: Term Base
  - name: Translation
  - name: Translation Memory
  - name: User
  - name: User Profile
  - name: Vendor
  - name: Webhook
  - name: Workflow Step
  - name: Workflow changes
  - name: XML Assistant
paths:
  /api2/v3/quotes/{quoteUid}:
    put:
      tags:
        - Quote
      summary: Edit quote
      description: >-
        Replaces the whole quote. Any field left out of the request is reset:
        omitting provider unassigns the provider, omitting netRateScheme removes
        the net rate scheme and omitting name clears the name. The exceptions
        are pricing and additionalSteps: when omitted or empty, the existing
        values are kept. The project (project.uid), analyse and priceList are
        required. Either WorkflowSettings or Units must be sent for billingUnit
        "Hour".
      operationId: editQuote
      parameters:
        - name: quoteUid
          in: path
          description: UID of the quote
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEditQuoteV3DtoV3'
        description: Updated quote data
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteV3DtoV3'
        '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:
    CreateEditQuoteV3DtoV3:
      type: object
      required:
        - analyse
        - priceList
        - project
      properties:
        additionalSteps:
          type: array
          description: >-
            Additional workflow steps. When editing, omitting it or sending an
            empty list keeps the existing steps.
          items:
            $ref: '#/components/schemas/CreateEditQuoteAdditionalStepV3DtoV3'
        analyse:
          $ref: '#/components/schemas/IdReference'
        name:
          type: string
          description: Name of the quote. When editing, omitting it clears the name.
          minLength: 0
          maxLength: 255
        netRateScheme:
          $ref: '#/components/schemas/IdReference'
        priceList:
          $ref: '#/components/schemas/IdReference'
        pricing:
          type: array
          description: >-
            Price overrides per part and workflow step. When editing, omitting
            it or sending an empty list keeps the existing prices.
          items:
            $ref: '#/components/schemas/CreateEditQuotePricingV3DtoV3'
        project:
          $ref: '#/components/schemas/UidReference'
        provider:
          $ref: '#/components/schemas/ProviderReferenceV1'
        units:
          type: array
          description: >-
            Units per workflow step. Either workflowSettings or units must be
            sent for billing unit Hour.
          items:
            $ref: '#/components/schemas/QuoteUnitsDtoV2'
        workflowSettings:
          type: array
          description: >-
            Workflow steps included in the quote. Either workflowSettings or
            units must be sent for billing unit Hour.
          uniqueItems: true
          items:
            $ref: '#/components/schemas/QuoteWorkflowSettingDtoV2'
    QuoteV3DtoV3:
      type: object
      properties:
        analyse:
          $ref: '#/components/schemas/AnalyseReferenceV1'
        billingUnit:
          type: string
          enum:
            - Character
            - Word
            - Page
            - Hour
        createdBy:
          $ref: '#/components/schemas/UserReferenceV1'
        currency:
          type: string
        customerEmail:
          type: string
        dateCreated:
          type: string
          format: date-time
        editable:
          type: boolean
        id:
          type: integer
          format: int64
        name:
          type: string
        netRateScheme:
          $ref: '#/components/schemas/NetRateSchemeReferenceV1'
        outdated:
          type: boolean
        partData:
          type: array
          items:
            $ref: '#/components/schemas/QuotePartDataV3DtoV3'
        priceList:
          $ref: '#/components/schemas/PriceListReferenceV1'
        provider:
          $ref: '#/components/schemas/ProviderReferenceV1'
        quoteType:
          type: string
          enum:
            - BUYER
            - PROVIDER
        status:
          type: string
          enum:
            - APPROVED
            - DECLINED
            - DRAFT
            - FOR_APPROVAL
            - NEW
        totalPrice:
          type: number
          format: double
        uid:
          type: string
        workflowStepList:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStepReferenceV1'
    CreateEditQuoteAdditionalStepV3DtoV3:
      type: object
      required:
        - name
      properties:
        name:
          type: string
        pricing:
          type: array
          items:
            $ref: '#/components/schemas/CreateEditQuoteAdditionalStepPricingV3DtoV3'
    IdReference:
      type: object
      required:
        - id
      properties:
        id:
          type: string
    CreateEditQuotePricingV3DtoV3:
      type: object
      properties:
        minimumPrice:
          type: number
          format: double
          minimum: 0
        targetLang:
          type: string
        workflowPricing:
          type: array
          items:
            $ref: '#/components/schemas/CreateEditQuoteWorkflowPricingV3DtoV3'
    UidReference:
      type: object
      required:
        - uid
      properties:
        uid:
          type: string
          example: 3HYnHHLkTPJfMxBCDbPXFe
          description: Unique identifier of the referenced object
      description: Reference to an object by its unique identifier
    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
    QuoteUnitsDtoV2:
      type: object
      required:
        - analyseLanguagePart
      properties:
        analyseLanguagePart:
          $ref: '#/components/schemas/IdReference'
        value:
          type: number
          format: double
          description: Number of hours for this analyse language part
          minimum: 0
    QuoteWorkflowSettingDtoV2:
      type: object
      required:
        - workflowStep
      properties:
        units:
          type: array
          description: Per-analyze-language-part hour values for the Hour billing unit
          items:
            $ref: '#/components/schemas/QuoteUnitsDtoV2'
          maxItems: 100
          minItems: 0
        workflowStep:
          $ref: '#/components/schemas/IdReference'
    AnalyseReferenceV1:
      type: object
      properties:
        analyseLanguageParts:
          type: array
          items:
            $ref: '#/components/schemas/AnalyseLanguagePartReferenceV1'
        createdBy:
          $ref: '#/components/schemas/UserReferenceV1'
        dateCreated:
          type: string
          format: date-time
        id:
          type: string
        importStatus:
          $ref: '#/components/schemas/ImportStatusDtoV1'
        innerId:
          type: string
        name:
          type: string
        netRateScheme:
          $ref: '#/components/schemas/NetRateSchemeReferenceV1'
        outdated:
          type: boolean
        provider:
          $ref: '#/components/schemas/ProviderReferenceV1'
        pureWarnings:
          type: array
          items:
            type: string
        type:
          type: string
          enum:
            - PreAnalyse
            - PostAnalyse
            - PreAnalyseTarget
            - Compare
            - PreAnalyseProvider
            - ContinuousPostAnalyse
            - ContinuousPreAnalyse
        uid:
          type: string
    UserReferenceV1:
      type: object
      properties:
        email:
          type: string
          description: Email address of the user
        firstName:
          type: string
          description: First name of the user
        id:
          type: string
          description: Unique numeric identifier of the user
        lastName:
          type: string
          description: Last name of the user
        role:
          type: string
          description: Role of the user in the organization
          enum:
            - SYS_ADMIN
            - SYS_ADMIN_READ
            - ADMIN
            - PROJECT_MANAGER
            - LINGUIST
            - GUEST
            - SUBMITTER
            - PORTAL_MEMBER
            - BOT
        uid:
          type: string
          description: Unique string identifier of the user
        userName:
          type: string
          description: Username of the user
    NetRateSchemeReferenceV1:
      type: object
      properties:
        createdBy:
          $ref: '#/components/schemas/UserReferenceV1'
        dateCreated:
          type: string
          format: date-time
          description: Date and time the scheme was created
        id:
          type: string
          description: Internal numeric identifier, encoded as a string
        isDefault:
          type: boolean
          description: >-
            Whether this scheme is the organization default applied when none is
            specified
        name:
          type: string
          description: Name of the net rate scheme
        uid:
          type: string
          description: Unique identifier used in API paths
    QuotePartDataV3DtoV3:
      type: object
      properties:
        additionalWorkflowStepData:
          type: array
          items:
            $ref: '#/components/schemas/QuoteAdditionalWorkflowStepDataV3DtoV3'
        minimumPrice:
          type: number
          format: double
        netUnits:
          type: number
          format: double
        priceAllWf:
          type: number
          format: double
        quoteJobRowData:
          type: array
          items:
            $ref: '#/components/schemas/QuoteJobRowDataV3DtoV3'
        quotePartUid:
          type: string
        sourceLang:
          type: string
        targetLang:
          type: string
        unitPrice:
          type: number
          format: double
        units:
          type: number
          format: double
        unitsAllAdditionalWf:
          type: number
          format: double
        unitsAllWf:
          type: number
          format: double
    PriceListReferenceV1:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        uid:
          type: string
    WorkflowStepReferenceV1:
      type: object
      properties:
        id:
          type: string
        lqaEnabled:
          type: boolean
        name:
          type: string
        order:
          type: integer
          format: int32
        uid:
          type: string
    CreateEditQuoteAdditionalStepPricingV3DtoV3:
      type: object
      properties:
        hours:
          type: number
          format: double
          minimum: 0
        price:
          type: number
          format: double
          minimum: 0
        targetLang:
          type: string
    CreateEditQuoteWorkflowPricingV3DtoV3:
      type: object
      required:
        - workflowStep
      properties:
        price:
          type: number
          format: double
          minimum: 0
        units:
          type: number
          format: double
          minimum: 0
        workflowStep:
          $ref: '#/components/schemas/IdReference'
    AnalyseLanguagePartReferenceV1:
      type: object
      properties:
        id:
          type: string
        jobs:
          type: array
          description: Max of 100 jobs returned, use "List jobs of analyses" to get all
          items:
            $ref: '#/components/schemas/AnalyseJobReferenceV1'
        sourceLang:
          type: string
        targetLang:
          type: string
    ImportStatusDtoV1:
      type: object
      properties:
        errorMessage:
          type: string
        status:
          type: string
          enum:
            - RUNNING
            - ERROR
            - OK
    QuoteAdditionalWorkflowStepDataV3DtoV3:
      type: object
      properties:
        hours:
          type: number
          format: double
        id:
          type: string
        name:
          type: string
        targetLang:
          type: string
        unitPrice:
          type: number
          format: double
    QuoteJobRowDataV3DtoV3:
      type: object
      properties:
        jobUid:
          type: string
        netUnits:
          type: number
          format: double
        title:
          type: string
        total:
          type: number
          format: double
        units:
          type: number
          format: double
        workflowStepData:
          type: array
          items:
            $ref: '#/components/schemas/QuoteJobRowWorkflowStepDataV3DtoV3'
    AnalyseJobReferenceV1:
      type: object
      properties:
        filename:
          type: string
          description: Job file name
        innerId:
          type: string
          description: Sequential number of the job within the project
        jobUid:
          type: string
          description: Unique identifier of the source job
        uid:
          type: string
          description: Unique identifier of the analysed job used in API paths
    QuoteJobRowWorkflowStepDataV3DtoV3:
      type: object
      properties:
        netUnits:
          type: number
          format: double
        price:
          type: number
          format: double
        wfStepUid:
          type: string
  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: {}

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.