Smartcat Project API

The Project API from Smartcat — 32 operation(s) for project.

OpenAPI Specification

smartcat-project-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Smartcat Account Project API
  version: v1
servers:
- url: /
tags:
- name: Project
paths:
  /api/integration/v1/document:
    post:
      tags:
      - Project
      summary: Add a document to the project
      description: "This method uses special structure for multipart/form-data content\r\nPlease read this article in order to create a proper request\r\nhttps://developers.smartcat.com/api-guides/#multipart-requests"
      parameters:
      - name: projectId
        in: query
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      - name: disassembleAlgorithmName
        in: query
        description: Optional algorithm of file disassembly
        schema:
          type: string
      - name: externalId
        in: query
        description: External identifier assigned by the client upon the document creation
        schema:
          type: string
      - name: metaInfo
        in: query
        description: Additional user information about the document
        schema:
          type: string
      - name: targetLanguages
        in: query
        description: Comma-separated target languages of all documents. Optional parameter. Can be modified per document in the request body. By default, lists the project target languages.
        schema:
          type: string
      - name: presetDisassembleAlgorithm
        in: query
        description: Optional preset for the file disassembly algorithm
        schema:
          type: string
      - name: enableOcr
        in: query
        description: Optional parameter for disabling OCR (the default is true)
        schema:
          type: boolean
          default: true
      requestBody:
        description: Document file upload model
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                value:
                  type: array
                  items:
                    $ref: '#/components/schemas/CreateDocumentPropertyModel'
                files:
                  type: array
                  items:
                    type: string
                    format: binary
            examples:
              MultilingualExcelDisassembleSettingsModel:
                summary: Value property for Multilingual Excel Disassemble Settings Model
                value:
                  externalId: null
                  metaInfo: null
                  disassembleAlgorithmName: null
                  presetDisassembleAlgorithm: null
                  disassembleSettings:
                    startingRow: 1
                    columns:
                      context: C
                      comments:
                      - E
                      lengthLimit: D
                      language:
                        en: A
                        ru: B
                  bilingualFileImportSetings: null
                  targetLanguages: null
                  enablePlaceholders: null
                  enableOcr: null
        required: true
      responses:
        '200':
          description: Request has been successfully completed
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DocumentModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DocumentModel'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DocumentModel'
        '400':
          description: The specified file is empty
        '403':
          description: The project is not associated with the account or the specified account is personal
        '404':
          description: The provided project ID does not exist
        '409':
          description: The document name is not unique
  /api/integration/v1/project/{projectId}:
    get:
      tags:
      - Project
      summary: Receive the project model
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Request has been successfully completed
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProjectModel'
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectModel'
            text/json:
              schema:
                $ref: '#/components/schemas/ProjectModel'
        '400':
          description: The specified project ID's format is incorrect
        '403':
          description: The project is not associated with the account
        '404':
          description: The provided project ID does not exist
    put:
      tags:
      - Project
      summary: Update a project by ID
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: Project changes model
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ProjectChangesModel'
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectChangesModel'
          text/json:
            schema:
              $ref: '#/components/schemas/ProjectChangesModel'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ProjectChangesModel'
        required: true
      responses:
        '204':
          description: The project has been successfully updated
        '400':
          description: The provided project model is empty
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: The project is not associated with the account or an attempt is made to modify the vendor when the work on the project has already started
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: The provided project ID does not exist
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '409':
          description: The new name will not be unique in the project
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      tags:
      - Project
      summary: Delete the project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: The project has been successfully deleted
        '400':
          description: The specified project ID's format is incorrect
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: The project is not associated with the account
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/integration/v2/project/list:
    get:
      tags:
      - Project
      summary: Fetch the list of account projects
      parameters:
      - name: createdByUserId
        in: query
        description: ID of the user who created the project
        schema:
          type: string
          format: uuid
      - name: assignedToUserId
        in: query
        description: User ID for filtering by assignment
        schema:
          type: string
          format: uuid
      - name: projectName
        in: query
        description: Partial project name
        schema:
          type: string
      - name: externalTag
        in: query
        description: Partial external tag of the project
        schema:
          type: string
      - name: clientIds
        in: query
        description: Comma-separated client ID
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: offset
        in: query
        description: Number of skipped items
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Maximum returned items (not more than 100)
        schema:
          type: integer
          format: int32
          default: 100
      responses:
        '200':
          description: Request completed successfully
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectModel'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectModel'
        '400':
          description: Incorrect parameter format
        '403':
          description: Some of the provided clients do not exist in the account
  /api/integration/v1/project/list:
    get:
      tags:
      - Project
      summary: Fetch the list of account projects
      parameters:
      - name: createdByUserId
        in: query
        description: ID of the user who created the project
        schema:
          type: string
          format: uuid
      - name: assignedToUserId
        in: query
        description: User ID for filtering by assignment
        schema:
          type: string
          format: uuid
      - name: projectName
        in: query
        description: Partial project name
        schema:
          type: string
      - name: externalTag
        in: query
        description: Partial external tag of the project
        schema:
          type: string
      - name: projectType
        in: query
        description: Type of the project
        schema:
          $ref: '#/components/schemas/ProjectTypeFilter'
      - name: clientIds
        in: query
        description: Comma-separated client IDs
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: includeDocuments
        in: query
        description: Include project documents in response
        schema:
          type: boolean
          default: true
      - name: includeQuotes
        in: query
        description: Include project related quotes in response
        schema:
          type: boolean
          default: true
      - name: includeCustomFields
        in: query
        description: Include project related custom fields in response
        schema:
          type: boolean
          default: true
      - name: includeClients
        in: query
        description: Include project clients in response
        schema:
          type: boolean
          default: true
      - name: offset
        in: query
        description: Number of skipped items
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Maximum returned items (not more than 100)
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Request completed successfully
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectModel'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectModel'
        '400':
          description: Incorrect parameter format
        '403':
          description: Some of the provided clients do not exist in the account
  /api/integration/v1/project/{projectId}/statistics:
    get:
      tags:
      - Project
      summary: "(This method is obsolete and has been replaced with /api/integration/v2/project/{projectId}/statistics)\r\nFetch project statistics"
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      - name: onlyExactMatches
        in: query
        description: Specifies whether returning 100% and higher matches will suffice
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Request has been successfully completed
          content:
            text/plain:
              schema:
                type: object
                additionalProperties:
                  $ref: '#/components/schemas/ProjectStatisticsObsoleteModel'
            application/json:
              schema:
                type: object
                additionalProperties:
                  $ref: '#/components/schemas/ProjectStatisticsObsoleteModel'
            text/json:
              schema:
                type: object
                additionalProperties:
                  $ref: '#/components/schemas/ProjectStatisticsObsoleteModel'
        '403':
          description: The project is not associated with the account
        '404':
          description: The provided project ID does not exist
  /api/integration/v2/project/{projectId}/statistics:
    get:
      tags:
      - Project
      summary: Fetch project statistics
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      - name: onlyExactMatches
        in: query
        description: Specifies whether returning 100% and higher matches will suffice (the default is false)
        schema:
          type: boolean
          default: false
      responses:
        '403':
          description: The project is not associated with the account
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '422':
          description: One or multiple project documents could not be disassembled
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '200':
          description: Request has been successfully completed
        '202':
          description: Statistics creation is in progress
        '404':
          description: The provided project ID does not exist
  /api/integration/v1/project/{projectId}/fuzzyRepetitions:
    put:
      tags:
      - Project
      summary: Enable or disable calculating fuzzy repetitions in the project statistics
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: withFuzzyMatches
        in: query
        schema:
          type: boolean
      responses:
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/integration/v1/project/{projectId}/completedWorkStatistics:
    get:
      tags:
      - Project
      summary: Receive statistics for the completed parts of the project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Request has been successfully completed
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExecutiveStatisticsModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExecutiveStatisticsModel'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExecutiveStatisticsModel'
        '403':
          description: The project is not associated with the account
        '404':
          description: The provided project ID does not exist
  /api/integration/v1/project/{projectId}/translationmemories:
    get:
      tags:
      - Project
      summary: Receive a list of the TMs plugged into the project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: TM IDs collection is empty
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectTranslationMemoryModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectTranslationMemoryModel'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectTranslationMemoryModel'
        '404':
          description: The project with the specified ID was not found
    post:
      tags:
      - Project
      summary: "Recreate the set of TMs plugged into the project.\r\nThe set of TMs is identical for all target languages of the project."
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      - name: onlyExactSourceLanguageMatch
        in: query
        description: Specifies whether exact matches in the source language are required (the default is false)
        schema:
          type: boolean
          default: false
      - name: onlyExactTargetLanguageMatch
        in: query
        description: Specifies whether exact matches in the target language are required (the default is false)
        schema:
          type: boolean
          default: false
      requestBody:
        description: Collection of TMs
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TranslationMemoryForProjectModel'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TranslationMemoryForProjectModel'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TranslationMemoryForProjectModel'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TranslationMemoryForProjectModel'
        required: true
      responses:
        '200':
          description: Request has been successfully completed
        '400':
          description: "Returns if:\n\r\n- The provided model with TM IDs to be added to the project is empty\r\n- More than one TM has been provided\r\n- The match threshold in the TM is smaller than the allowed minimum (50)\r\n- A TM appears in the settings multiple times\r\n- The Write TM does not include all the project's target languages\r\n- The project's source language does not match any source language in the provided TM\r\n- None of the project's target languages appears among the target languages in the provided Read TM"
  /api/integration/v1/project/{projectId}/glossaries:
    get:
      tags:
      - Project
      summary: Fetch the list of glossaries plugged into the project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Request has been successfully completed
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GlossaryModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GlossaryModel'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GlossaryModel'
        '403':
          description: The project is associated with another account
        '404':
          description: Project not found
    put:
      tags:
      - Project
      summary: Set a collection of glossaries plugged into the project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: Array of glossary IDs
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                type: string
                format: uuid
          application/json:
            schema:
              type: array
              items:
                type: string
                format: uuid
          text/json:
            schema:
              type: array
              items:
                type: string
                format: uuid
          application/*+json:
            schema:
              type: array
              items:
                type: string
                format: uuid
        required: true
      responses:
        '204':
          description: Request has been successfully completed
        '400':
          description: A provided glossary does not match any language pair in the project
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: The project is associated with another account
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: The provided IDs do not match any project or glossary
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/integration/v1/project/{projectId}/glossaries/default:
    get:
      tags:
      - Project
      summary: Fetch default glossary for the project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      - name: fallbackToAccount
        in: query
        description: By default, if a project does not have a default glossary, a 404 error will be returned. Set this flag to true to attempt to get a default glossary from the entire account.
        schema:
          type: boolean
      responses:
        '200':
          description: Request has been successfully completed
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GlossaryModel'
            application/json:
              schema:
                $ref: '#/components/schemas/GlossaryModel'
            text/json:
              schema:
                $ref: '#/components/schemas/GlossaryModel'
        '403':
          description: The project is associated with another account
        '404':
          description: Project or default glossary is not found
  /api/integration/v1/project/{projectId}/mt:
    get:
      tags:
      - Project
      summary: Fetch the project's MT configuration
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Returns if the operation has been successfully completed
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectMTEngineModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectMTEngineModel'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectMTEngineModel'
        '403':
          description: The project is associated with another account
        '404':
          description: Project not found
    post:
      tags:
      - Project
      summary: Set an MT configuration in the project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: Required MT settings
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProjectMTEngineModel'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProjectMTEngineModel'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProjectMTEngineModel'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProjectMTEngineModel'
        required: true
      responses:
        '204':
          description: Returns if the operation has been successfully completed
        '400':
          description: Incorrect parameters
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: The project is associated with another account
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Project not found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/integration/v1/project/{projectId}/mt/available:
    get:
      tags:
      - Project
      summary: Fetch all the MT engines and profiles that can be used in the specified project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Returns if the operation has been successfully completed
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectMTEngineSupportedLanguagesModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectMTEngineSupportedLanguagesModel'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectMTEngineSupportedLanguagesModel'
        '403':
          description: The project is associated with another account
        '404':
          description: Project not found
  /api/integration/v1/project/{projectId}/pretranslation-rules:
    get:
      tags:
      - Project
      summary: Fetch the project pre-processing rules
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PretranslateRuleModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PretranslateRuleModel'
            text/json:
              schema:
                type: array
                items:
        

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