Smartling Estimates API

The Estimates API from Smartling — 6 operation(s) for estimates.

OpenAPI Specification

smartling-estimates-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  contact:
    email: support@smartling.com
  description: 'Before you begin using the Smartling APIs, we recommend going through our [Developer documentation](https://help.smartling.com/hc/en-us/categories/1260801686149).

    '
  termsOfService: https://www.smartling.com/legal
  title: Smartling REST API Reference Account & Projects Estimates API
  version: 2.0.0
  x-logo:
    url: smartling_logo.png
servers:
- url: https://api.smartling.com
tags:
- name: Estimates
paths:
  /estimates-api/v2/projects/{projectId}/jobs/{translationJobUid}/reports/fuzzy:
    get:
      summary: Get List of Job Fuzzy Estimate Reports
      description: List fuzzy estimate reports.
      tags:
      - Estimates
      operationId: getJobFuzzyEstimateReports
      parameters:
      - name: projectId
        description: A unique project identifier.
        in: path
        required: true
        schema:
          type: string
      - name: translationJobUid
        description: A unique translation job identifier.
        in: path
        required: true
        schema:
          type: string
      - name: reportStatus
        description: Status of report.
        in: query
        required: false
        schema:
          enum:
          - NOT_FOUND
          - PENDING
          - PROCESSING
          - COMPLETED
          - FAILED
          - TIMEOUT
          type: string
      - name: contentCoverage
        description: Specifies level of content coverage report should have.
        in: query
        required: false
        schema:
          enum:
          - FULL
          - PARTIAL
          type: string
      - name: creatorUserUids
        description: Array of report creator uids.
        in: query
        required: false
        schema:
          items:
            type: string
          type: array
      - name: translationJobSchemaContents
        description: if report was generated for the job,.
        in: query
        required: false
        schema:
          items:
            enum:
            - TRANSLATION
            - ALL_CONTENT
            - CLAIMING
            - UNAUTHORIZED
            type: string
          type: array
      - name: tags
        description: Search is done via or logic, i.e. if a report has any of the given tags, it will be returned.
        in: query
        required: false
        schema:
          items:
            type: string
          type: array
      - name: createdFrom
        description: Date filter for report.
        in: query
        required: false
        schema:
          type: string
      - name: createdTo
        description: Date filter for report.
        in: query
        required: false
        schema:
          type: string
      - name: limit
        description: Paging parameter. The number of reports to return.
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        description: Paging parameter. The index of the repor to start with.
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimateJobReportResponse'
              examples:
                response:
                  value:
                    response:
                      code: SUCCESS
                      data:
                        totalCount: 4
                        items:
                        - reportUid: f84491fc
                          schemaType: siteLocales
                          reportType: FUZZY
                          schema: '{"schema":"siteLocales","projectId":"fd7244365"}'
                          reportStatus: PROCESSING
                          totalStrings: 27828
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation: null
                          localeEstimates: null
                          tags: null
                          warnings:
                          - No rates specified for 'fr-FR' locale.
                          errors:
                          - 'Report generation failed. Rates of account defined in different currencies: USD, JPY. Only one should be used per account. Please fix this and re-run estimation.'
                        - reportUid: 0ec805d4
                          schemaType: job
                          reportType: COST
                          schema: '{"schema":"job","jobUid":"e2f3dcac30cc"}'
                          reportStatus: COMPLETED
                          totalStrings: 3200
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation:
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: EUR
                          localeEstimates: null
                          tags:
                          - bbbbb456566
                          warnings: null
                          errors: null
                        - reportUid: 702cdae5
                          schemaType: listView
                          schema: '{"schema":"listView","projectId":"fd7244365","localeList":["hy-AM"],"stringState":"IN_TRANSLATION","stringIds":["5086f27e4a123ac0e573b7d45240b674","9d67960622910cb2e6ab0525fb8ec747","816a4bf2e30577ea2cfcb2eec231e50e"],"workflowStepIds":["19565","120859","120860","19567","19571","19570","19569","57497","65867","57499","61329","67758","67760","109463","109465","136550","110388","136548","136549"]}'
                          reportStatus: COMPLETED
                          reportType: COST
                          totalStrings: 2
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation:
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: USD
                          localeEstimates: null
                          tags: null
                          warnings: null
                          errors: null
                        - reportUid: 8532918d
                          schemaType: unauthorized
                          schema: '{"schema":"unauthorized","projectId":"fd7244365","localeList":["hy-AM","zh-TW","nl-BE","pt-BR","ru-RU","uk-UA","cy-GB"],"stringState":"AWAITING_APPROVAL","stringIds":["975d88fd8c9290c8356364b91f88af02","33eb5a93062cb5981168533500668a49","a781299a67d7bd57511a14cffce40257","afdf1b5d0aa538184cd67372c0acc7c2","302d3f85228cd41d2267c7505dafb9e5"]}'
                          reportStatus: COMPLETED
                          reportType: COST
                          totalStrings: 700
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation:
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: USD
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: EUR
                          localeEstimates: null
                          tags:
                          - new label
                          warnings: null
                          errors: null
    post:
      summary: Generate Fuzzy Estimate Report for the Job
      description: Generate Fuzzy report for the Job.
      tags:
      - Estimates
      operationId: generateJobFuzzyEstimateReports
      parameters:
      - name: projectId
        description: A unique project identifier.
        in: path
        required: true
        schema:
          type: string
      - name: translationJobUid
        description: A unique translation job identifier.
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateJobFuzzyReportRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimateJobGenericReportResponse'
              examples:
                response:
                  value:
                    response:
                      code: SUCCESS
                      data:
                        reportUid: f84491fc
                        reportType: FUZZY
                        reportStatus: PENDING
  /estimates-api/v2/projects/{projectId}/jobs/{translationJobUid}/reports/cost:
    get:
      summary: Get List of Job Cost Estimate Reports
      description: List cost estimate reports.
      tags:
      - Estimates
      operationId: getJobCostEstimateReports
      parameters:
      - name: projectId
        description: A unique project identifier.
        in: path
        required: true
        schema:
          type: string
      - name: translationJobUid
        description: A unique translation job identifier.
        in: path
        required: true
        schema:
          type: string
      - name: reportStatus
        description: Status of report.
        in: query
        required: false
        schema:
          enum:
          - NOT_FOUND
          - PENDING
          - PROCESSING
          - COMPLETED
          - FAILED
          - TIMEOUT
          type: string
      - name: contentCoverage
        description: Specifies level of content coverage report should have.
        in: query
        required: false
        schema:
          enum:
          - FULL
          - PARTIAL
          type: string
      - name: creatorUserUids
        description: Array of report creator uids.
        in: query
        required: false
        schema:
          items:
            type: string
          type: array
      - name: translationJobSchemaContents
        description: if report was generated for the job,.
        in: query
        required: false
        schema:
          items:
            enum:
            - TRANSLATION
            - ALL_CONTENT
            - CLAIMING
            - UNAUTHORIZED
            type: string
          type: array
      - name: tags
        description: Search is done via or logic, i.e. if a report has any of the given tags, it will be returned.
        in: query
        required: false
        schema:
          items:
            type: string
          type: array
      - name: createdFrom
        description: Date filter for report.
        in: query
        required: false
        schema:
          type: string
      - name: createdTo
        description: Date filter for report.
        in: query
        required: false
        schema:
          type: string
      - name: limit
        description: Paging parameter. The number of reports to return.
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        description: Paging parameter. The index of the repor to start with.
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimateJobReportResponse'
              examples:
                response:
                  value:
                    response:
                      code: SUCCESS
                      data:
                        totalCount: 4
                        items:
                        - reportUid: f84491fc
                          schemaType: siteLocales
                          reportType: FUZZY
                          schema: '{"schema":"siteLocales","projectId":"fd7244365"}'
                          reportStatus: PROCESSING
                          totalStrings: 27828
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation: null
                          localeEstimates: null
                          tags: null
                          warnings:
                          - No rates specified for 'fr-FR' locale.
                          errors:
                          - 'Report generation failed. Rates of account defined in different currencies: USD, JPY. Only one should be used per account. Please fix this and re-run estimation.'
                        - reportUid: 0ec805d4
                          schemaType: job
                          reportType: COST
                          schema: '{"schema":"job","jobUid":"e2f3dcac30cc"}'
                          reportStatus: COMPLETED
                          totalStrings: 3200
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation:
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: EUR
                          localeEstimates: null
                          tags:
                          - bbbbb456566
                          warnings: null
                          errors: null
                        - reportUid: 702cdae5
                          schemaType: listView
                          schema: '{"schema":"listView","projectId":"fd7244365","localeList":["hy-AM"],"stringState":"IN_TRANSLATION","stringIds":["5086f27e4a123ac0e573b7d45240b674","9d67960622910cb2e6ab0525fb8ec747","816a4bf2e30577ea2cfcb2eec231e50e"],"workflowStepIds":["19565","120859","120860","19567","19571","19570","19569","57497","65867","57499","61329","67758","67760","109463","109465","136550","110388","136548","136549"]}'
                          reportStatus: COMPLETED
                          reportType: COST
                          totalStrings: 2
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation:
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: USD
                          localeEstimates: null
                          tags: null
                          warnings: null
                          errors: null
                        - reportUid: 8532918d
                          schemaType: unauthorized
                          schema: '{"schema":"unauthorized","projectId":"fd7244365","localeList":["hy-AM","zh-TW","nl-BE","pt-BR","ru-RU","uk-UA","cy-GB"],"stringState":"AWAITING_APPROVAL","stringIds":["975d88fd8c9290c8356364b91f88af02","33eb5a93062cb5981168533500668a49","a781299a67d7bd57511a14cffce40257","afdf1b5d0aa538184cd67372c0acc7c2","302d3f85228cd41d2267c7505dafb9e5"]}'
                          reportStatus: COMPLETED
                          reportType: COST
                          totalStrings: 700
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation:
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: USD
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: EUR
                          localeEstimates: null
                          tags:
                          - new label
                          warnings: null
                          errors: null
    post:
      summary: Generate Cost Estimate Report for the Job
      description: Generate Cost Estimate Report for the Job
      tags:
      - Estimates
      operationId: generateJobCostEstimateReports
      parameters:
      - name: projectId
        description: A unique project identifier.
        in: path
        required: true
        schema:
          type: string
      - name: translationJobUid
        description: A unique translation job identifier.
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateJobCostReportRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimateJobGenericReportResponse'
              examples:
                response:
                  value:
                    response:
                      code: SUCCESS
                      data:
                        reportUid: f84491fc
                        reportType: FUZZY
                        reportStatus: PENDING
  /estimates-api/v2/projects/{projectId}/reports/{reportUid}/status:
    get:
      summary: Get Estimate Report Status
      tags:
      - Estimates
      operationId: getJobEstimateReportStatus
      parameters:
      - name: projectId
        description: A unique project identifier.
        in: path
        required: true
        schema:
          type: string
      - name: reportUid
        description: A unique report identifier.
        in: path
        required: true
        schema:
          type: string
      - name: reportStatus
        description: Status of report.
        in: query
        required: false
        schema:
          enum:
          - NOT_FOUND
          - PENDING
          - PROCESSING
          - COMPLETED
          - FAILED
          - TIMEOUT
          type: string
      - name: reportType
        description: Report type.
        in: query
        required: false
        schema:
          enum:
          - FUZZY
          - COST
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimateJobReportStatusResponse'
              examples:
                response:
                  value:
                    response:
                      code: SUCCESS
                      data:
                        reportUid: f84491fc
                        reportStatus: PROCESSING
                        totalStrings: 27828
                        percentComplete: 18
                        reportType: FUZZY
                        createdDate: '2016-03-21T15:00:48Z'
  /estimates-api/v2/projects/{projectId}/reports/{reportUid}:
    get:
      summary: Get Estimate Report
      tags:
      - Estimates
      operationId: getJobEstimateReport
      parameters:
      - name: projectId
        description: A unique project identifier.
        in: path
        required: true
        schema:
          type: string
      - name: reportUid
        description: A unique report identifier.
        in: path
        required: true
        schema:
          type: string
      - name: reportStatus
        description: Status of report.
        in: query
        required: false
        schema:
          enum:
          - NOT_FOUND
          - PENDING
          - PROCESSING
          - COMPLETED
          - FAILED
          - TIMEOUT
          type: string
      - name: reportType
        description: Report type.
        in: query
        required: false
        schema:
          enum:
          - FUZZY
          - COST
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimateJobReportResponse'
              examples:
                response:
                  value:
                    response:
                      code: SUCCESS
                      data:
                        totalCount: 4
                        items:
                        - reportUid: f84491fc
                          schemaType: siteLocales
                          reportType: FUZZY
                          schema: '{"schema":"siteLocales","projectId":"fd7244365"}'
                          reportStatus: PROCESSING
                          totalStrings: 27828
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation: null
                          localeEstimates: null
                          tags: null
                          warnings:
                          - No rates specified for 'fr-FR' locale.
                          errors:
                          - 'Report generation failed. Rates of account defined in different currencies: USD, JPY. Only one should be used per account. Please fix this and re-run estimation.'
                        - reportUid: 0ec805d4
                          schemaType: job
                          reportType: COST
                          schema: '{"schema":"job","jobUid":"e2f3dcac30cc"}'
                          reportStatus: COMPLETED
                          totalStrings: 3200
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation:
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: EUR
                          localeEstimates: null
                          tags:
                          - bbbbb456566
                          warnings: null
                          errors: null
                        - reportUid: 702cdae5
                          schemaType: listView
                          schema: '{"schema":"listView","projectId":"fd7244365","localeList":["hy-AM"],"stringState":"IN_TRANSLATION","stringIds":["5086f27e4a123ac0e573b7d45240b674","9d67960622910cb2e6ab0525fb8ec747","816a4bf2e30577ea2cfcb2eec231e50e"],"workflowStepIds":["19565","120859","120860","19567","19571","19570","19569","57497","65867","57499","61329","67758","67760","109463","109465","136550","110388","136548","136549"]}'
                          reportStatus: COMPLETED
                          reportType: COST
                          totalStrings: 2
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation:
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: USD
                          localeEstimates: null
                          tags: null
                          warnings: null
                          errors: null
                        - reportUid: 8532918d
                          schemaType: unauthorized
                          schema: '{"schema":"unauthorized","projectId":"fd7244365","localeList":["hy-AM","zh-TW","nl-BE","pt-BR","ru-RU","uk-UA","cy-GB"],"stringState":"AWAITING_APPROVAL","stringIds":["975d88fd8c9290c8356364b91f88af02","33eb5a93062cb5981168533500668a49","a781299a67d7bd57511a14cffce40257","afdf1b5d0aa538184cd67372c0acc7c2","302d3f85228cd41d2267c7505dafb9e5"]}'
                          reportStatus: COMPLETED
                          reportType: COST
                          totalStrings: 700
                          projectId: fd7244365
                          creatorUserUid: 58870b8ee965
                          creatorUserRole: ROLE_ACCOUNT_OWNER
                          contentCoverage: FULL
                          creatorAgencyUid: ''
                          createdDate: '2016-03-21T15:00:48Z'
                          totalWordCount: 3634
                          totalWeightedWordCount: 3614
                          priceInformation:
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: USD
                          - priceMin: 999.35
                            priceMax: 1090.2
                            currencyCode: EUR
                          localeEstimates: null
                          tags:
                          - new label
                          warnings: null
                          errors: null
    delete:
      summary: Delete Estimation Report
      description: Delete estimate report.
      tags:
      - Estimates
      operationId: deleteJobEstimateReport
      parameters:
      - name: projectId
        description: A unique project identifier.
        in: path
        required: true
        schema:
          type: string
      - name: reportUid
        description: A unique report identifier.
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
              examples:
                response:
                  value:
                    response:
                      code: SUCCESS
                      data: null
  /estimates-api/v2/projects/{projectId}/reports/{reportUid}/tags:
    put:
      summary: Modify Tags of Estimation Report
      description: The new set of tags completely replaces the old ones.
      tags:
      - Estimates
      operationId: modifyJobEstimateReportTags
      parameters:
      - name: projectId
        description: A unique project identifier.
        in: path
        required: true
        schema:
          type: string
      - name: reportUid
        description: A unique report identifier.
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifyJobReportTagsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimateJobReportTagsResponse'
              examples:
                response:
                  value:
                    response:
                      code: SUCCESS
                      data:
                        tags:
                        - AdminJob
                        - NEWTAG1
                        - NEWTAG2
  /estimates-api/v2/projects/{projectUid}/reports/{reportUid}/download:
    get:
      summary: Export Estimation Report as CSV
      tags:
      - Estimates
      operationId: exportJobEstimationReport
      parameters:
      - name: projectUid
        description: A unique project identifier.
        in: path
        required: true
        schema:
          type: string
      - name: reportUid
        description: A unique report identifier.
        in: path
        required: true
        schema:
          type: string
      - name: format
        description: for now, only csv is supported.
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                type: string
components:
  schemas:
    EmptyResponse:
      type: object
      required:
      - response
      properties:
        response:
          allOf:
          - $ref: '#/components/schemas/SuccessResponse'
          - properties:
              data:
                description: Always null.
                type: object
            type: object
    EstimateJobGenericReport:
      type: object
      properties:
        reportUid:
          type: string
        reportType:
          type: string
        reportStatus:
          type: string
    EstimateJobReportResponse:
      properties:
        response:
          properties:
            code:
              description: Indicates whether the response was successful or what error has occured.
              enum:
              - GENERAL_ERROR
              - MAINTENANCE_MODE_ERROR
              type: string
            data:
              items:
                $ref: '#/components/schemas/EstimateJobReport'
              type: array
          required:
          - code
          - data
          type: object
      required:
      - response
      type: object
    EstimateJobReportStatus:
      type: object
      properties:
        reportUid:
          type: string
        reportType:
          type: string
        reportStatus:
          type: string
        totalStrings:
          type: integer
        percentComplete:
          type: integer
        createdDate:
          type: string
          format: YYYY-MM-DDThh:mm:ssZ
    CreateJobFuzzyReportRequest:
      description: The payload to use when generating a job fuzzy report.
      properties:
        contentType:
          enum:
          - TRANSLATION
          - ALL_CONTENT
          - CLAIMING
          - UNAUTHORIZED
          type: string
          default: ALL_CONTENT
        tags:
          example:
          - tag1
          - 

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/smartling/refs/heads/main/openapi/smartling-estimates-api-openapi.yml