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

# Create a Job

> Create a Job. A Job is a collection of Projects.
A Job will contain multiple projects, based on the language pair.
A Project is associated with exactly one Memory.

Jobs appear in the Jobs dashboard of the web app.

Example CURL command:

```bash
curl -X POST 'https://api.lilt.com/v2/jobs?key=API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "name": "test job",
  "fileIds": [5009, 5010, 5011],
  "due": "2022-05-05T10:56:44.985Z",
  "srcLang": "en",
  "srcLocale": "US",
  "jobInstructions": "Please maintain consistent terminology and use formal tone.",
  "customProperties": {
    "purchaseOrder": "PO-12345",
    "department": "Marketing",
    "priority": "high"
  },
  "enablePostProcessing": true,
  "languagePairs": [
      {
        "memoryId": 3121,
        "trgLang": "de",
        "instructions": "Use formal German (Sie form)"
      },
      {
        "memoryId": 2508,
        "trgLang": "fr",
        "instructions": "Use informal French (tu form)"
      },
      { "memoryId": 3037, "trgLang": "zh" }
    ]
}'
```





## OpenAPI

````yaml /api-reference/openapi-bundled.yaml post /v2/jobs
openapi: 3.0.3
info:
  title: LILT API
  description: >
    LILT API Support: https://lilt.atlassian.net/servicedesk/customer/portals


    The LILT API enables programmatic access to the full-range of LILT backend
    services including:
      * Training of and translating with interactive, adaptive machine translation
      * Large-scale translation memory
      * The Lexicon (a large-scale termbase)
      * Programmatic control of the LILT CAT environment
      * Translation memory synchronization


    Requests and responses are in JSON format. The REST API only responds to
    HTTPS / SSL requests.


    The base url for this REST API is `https://api.lilt.com/`.


    ## Authentication


    Requests are authenticated via API key, which requires the Business plan.


    Requests are authenticated using [HTTP Basic
    Auth](https://en.wikipedia.org/wiki/Basic_access_authentication). Add your
    API key as both the `username` and `password`.


    For development, you may also pass the API key via the `key` query
    parameter. This is less secure than HTTP Basic Auth, and is not recommended
    for production use.


    ## Quotas


    Our services have a general quota of 4000 requests per minute. Should you
    hit the maximum requests per minute, you will need to wait 60 seconds before
    you can send another request.
  version: v3.0.3
  license:
    name: LILT Platform Terms and Conditions
    url: https://lilt.com/lilt-platform-terms-and-conditions
servers:
  - url: https://api.lilt.com
security:
  - BasicAuth: []
  - ApiKeyAuth: []
paths:
  /v2/jobs:
    post:
      tags:
        - Jobs
      summary: Create a Job
      description: |+
        Create a Job. A Job is a collection of Projects.
        A Job will contain multiple projects, based on the language pair.
        A Project is associated with exactly one Memory.

        Jobs appear in the Jobs dashboard of the web app.

        Example CURL command:

        ```bash
        curl -X POST 'https://api.lilt.com/v2/jobs?key=API_KEY' \
        --header 'Content-Type: application/json' \
        --data-raw '{
          "name": "test job",
          "fileIds": [5009, 5010, 5011],
          "due": "2022-05-05T10:56:44.985Z",
          "srcLang": "en",
          "srcLocale": "US",
          "jobInstructions": "Please maintain consistent terminology and use formal tone.",
          "customProperties": {
            "purchaseOrder": "PO-12345",
            "department": "Marketing",
            "priority": "high"
          },
          "enablePostProcessing": true,
          "languagePairs": [
              {
                "memoryId": 3121,
                "trgLang": "de",
                "instructions": "Use formal German (Sie form)"
              },
              {
                "memoryId": 2508,
                "trgLang": "fr",
                "instructions": "Use informal French (tu form)"
              },
              { "memoryId": 3037, "trgLang": "zh" }
            ]
        }'
        ```

      operationId: createJob
      requestBody:
        description: The Job resource to create.
        content:
          application/json:
            schema:
              title: JobCreateParameters
              required:
                - fileIds
                - languagePairs
                - name
                - srcLang
                - srcLocale
              type: object
              properties:
                name:
                  type: string
                  description: A name for the Job.
                  example: My new Job
                languagePairs:
                  type: array
                  description: >-
                    Language pairs is a set of one or more pairs that includes
                    source language, source locale(optional), target language,
                    target locale(optional), and memoryId.
                  items:
                    $ref: '#/components/schemas/LanguagePair'
                fileIds:
                  type: array
                  description: A list of file ids to upload to job creation.
                  example:
                    - 298
                    - 299
                  items:
                    type: integer
                due:
                  type: string
                  description: An ISO string date representing job due date.
                  example: '2021-10-05T14:48:00.000Z'
                srcLang:
                  type: string
                  description: 2-letter ISO source language code
                  example: en
                srcLocale:
                  type: string
                  description: 2-letter source language code
                  example: US
                isPlural:
                  type: boolean
                  description: A boolean value representing if the files have plurals.
                  example: true
                workflowTemplateId:
                  type: integer
                  description: >-
                    ID of the workflow template to be used. Use the [workflows
                    templates
                    endpoint](#tag/Workflows/operation/getWorkflowTemplates) to
                    get the list of available workflows.
                domainId:
                  type: integer
                  description: >-
                    ID of the domain to be used. Use the [domains
                    endpoint](#tag/Domains/operation/getDomains) to get the list
                    of available domains.
                  example: 1
                jobInstructions:
                  type: string
                  maxLength: 5000
                  description: >-
                    Instructions for the job that apply to all projects. These
                    instructions provide guidance to translators and reviewers
                    working on this job. Maximum length: 5000 characters.
                  example: >-
                    Please maintain consistent terminology throughout all
                    translations. Use the company style guide.
                customProperties:
                  type: object
                  additionalProperties:
                    type: string
                  description: >-
                    Custom properties as key-value pairs where both keys and
                    values must be strings. Use this to store metadata or custom
                    fields specific to your workflow (e.g., purchase orders,
                    department codes, project identifiers).
                  example:
                    purchaseOrder: PO-12345
                    department: Marketing
                    priority: high
                    costCenter: CC-789
                enablePostProcessing:
                  type: boolean
                  description: >-
                    Enable post-processing options for this job. When true,
                    additional processing steps will be applied after
                    translation completion.
                  example: true
        required: true
      responses:
        '200':
          description: A Job object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    LanguagePair:
      required:
        - memoryId
        - trgLang
      type: object
      properties:
        trgLang:
          type: string
          description: Target language, an ISO 639-1 language identifier.
          example: de
        trgLocale:
          type: string
          description: A locale identifier, supported for target language.
          example: DE
        dueDate:
          type: string
          description: An ISO date.
          example: '2021-10-03T13:43:00.000Z'
        memoryId:
          type: integer
          description: A unique number identifying the associated Memory.
          example: 1241
        externalModelId:
          type: integer
          description: >-
            An optional parameter to specify a third-party model ID to use for
            translation. This allows you to use external MT providers instead of
            Lilt's built-in MT system.
          example: 44
        pretranslate:
          type: boolean
          description: >-
            Attribute translation authorship of exact matches to the creator of
            the document being pretranslated.
        autoAccept:
          type: boolean
          description: Accept and lock exact matches.
          example: true
        caseSensitive:
          type: boolean
          description: Use case sensitive translation memory matching.
        takeMatchAttribution:
          type: boolean
          description: Use MT for unmatched segments.
          example: true
        configId:
          type: integer
          description: Configuration id
          example: 2332
        workflowTemplateId:
          type: integer
          description: >-
            Workflow Template id, to assign a specific Workflow to the project
            created out of this Language Pair. WorkflowTemplateIds can be
            retrieved via the /workflows/templates endpoint. If not specified
            then the Job level workflowTemplateId will be used.
          example: 14
        workflowTemplateName:
          type: integer
          description: >-
            Workflow Template Name, when passed with TeamId it allows for an on
            the fly look up of the correct WorkflowTemplate to use. If
            workflowTemplateId is passed the workflowTemplateId supercedes other
            lookups.
        workflowStageAssignments:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStageAssignment'
        instructions:
          type: string
          maxLength: 200
          description: >-
            Project-specific instructions for this language pair. These
            instructions are specific to the target language and will be visible
            to translators working on this project. Maximum length: 200
            characters.
          example: Use informal tone and avoid technical jargon
      description: >
        A language pair couples the source and target language along with memory
        and pre-translations settings associated to a project.
    Job:
      type: object
      properties:
        name:
          type: string
          description: A name for the job.
          example: My New Job
        creationStatus:
          type: string
          description: >-
            Status of job creation process that includes PENDING, COMPLETE, and
            FAILED.
          example: COMPLETE
        deliveredAt:
          type: string
          format: date-time
          example: '2021-06-03T13:43:00Z'
        status:
          type: string
          description: Current status of job that includes archived, delivered, and active.
          example: active
        due:
          type: string
          description: An ISO string date.
          format: date-time
          example: '2021-06-03T13:43:00Z'
        id:
          type: integer
          description: An id for the job.
          example: 241
        isProcessing:
          type: integer
          description: >-
            Values include `1` while in progress, `0` when idle and `-2` when
            processing failed.
          example: 0
        stats:
          $ref: '#/components/schemas/JobStats'
        domains:
          type: array
          description: >-
            Domains associated with this Job. Returned on the `GET
            /v2/jobs/{jobId}` response so callers can drive domain-specific
            behaviour (e.g. quality thresholds) without falling back to
            BigQuery.
          items:
            $ref: '#/components/schemas/JobDomain'
      description: >
        A Job is a collection of multiple Projects. Each project is specific to
        a language pair, and is associated with exactly one Memory for that
        language pair. The Memory association cannot be changed after the
        Project is created.
    Error:
      type: object
      properties:
        message:
          type: string
          description: A human-readable message describing the error.
      description: |
        Response in the event of an unexpected error.
      example:
        message: Internal server error.
    WorkflowStageAssignment:
      required:
        - workflowStageTemplateId
      type: object
      properties:
        workflowStageTemplateId:
          type: integer
          example: 12345
        userId:
          type: integer
          example: 123
        email:
          type: string
          example: username@domain.com
      description: >-
        An assignment object that associates a user to a workflow stage
        template.
    JobStats:
      type: object
      properties:
        exactWords:
          type: integer
          description: Total number of exact words.
          example: 0
        fuzzyWords:
          type: integer
          description: Total number of fuzzy words.
          example: 0
        newWords:
          type: integer
          description: Total number of fuzzy words.
          example: 0
        numDeliveredProjects:
          type: integer
          description: Total number of delivered projects.
          example: 0
        numLanguagePairs:
          type: integer
          description: Total number of delivered projects.
          example: 0
        numProjects:
          type: integer
          description: Total number of projects.
          example: 0
        percentReviewed:
          type: integer
          description: Overall percentage of documents reviewed.
          example: 0
        percentTranslated:
          type: integer
          description: Overall percentage of documents translated.
          example: 0
        projects:
          type: array
          items:
            $ref: '#/components/schemas/JobProject'
        sourceWords:
          type: integer
          description: Total number of source words.
          example: 0
        uniqueLanguagePairs:
          type: integer
          description: Number of unique language pairs.
          example: 1
        uniqueLinguists:
          type: integer
          description: Number of unique linguists.
          example: 1
        workflowStatus:
          type: string
          description: The status of the Workflow for the current job.
          example: READY_TO_START
          enum:
            - READY_TO_START
            - IN_PROGRESS
            - DONE
      description: >
        A job stats shows an overview of job's statistical data including total
        number of exact words, fuzzy words, language pairs, projects, etc.
    JobDomain:
      type: object
      description: A domain assigned to a Job.
      properties:
        id:
          type: integer
          description: A unique number identifying the Domain.
          example: 12
        name:
          type: string
          description: The Domain name.
          example: Marketing
      required:
        - id
        - name
    JobProject:
      type: object
      properties:
        id:
          type: integer
          description: An id for the project.
        srcLang:
          type: string
          description: Source language, an ISO 639-1 language identifier.
          example: en
        srcLocale:
          type: string
          description: A locale identifier, supported for source language.
          example: US
        trgLang:
          type: string
          description: Target language, an ISO 639-1 language identifier.
          example: fr
        trgLocale:
          type: string
          description: A locale identifier, supported for target language.
          example: CA
        name:
          type: string
          description: A name for the project.
          example: My new project
        due:
          type: string
          description: An ISO date.
          example: '2021-10-03T13:43:00.000Z'
        isComplete:
          type: boolean
          description: A state that checks project was completed.
          example: false
        isArchived:
          type: boolean
          description: The archived state of the project.
          example: false
        state:
          type: string
          description: >-
            Current state of the project. Example, backlog, inProgress,
            inReview, done.
          example: inProgress
        numSourceTokens:
          type: integer
          description: Total number of source tokens.
          example: 2134
        createdAt:
          type: string
          description: Time at which the object was created.
          example: '2021-04-01T13:43:00.000Z'
        updatedAt:
          type: string
          description: Time at which the object was updated.
          example: '2021-06-03T13:43:00.000Z'
        isDeleted:
          type: boolean
          description: A state that checks project was deleted.
          example: false
        memoryId:
          type: integer
          description: A unique number identifying the associated Memory.
          example: 2134
        workflowStatus:
          type: string
          description: The status of the Workflow for the current project.
          example: READY_TO_START
          enum:
            - READY_TO_START
            - IN_PROGRESS
            - DONE
        workflowName:
          type: string
          description: >-
            Human readable name of the workflow associated with the current
            project.
          example: Translate > Review > Analyst Review
      description: >
        A job project contains project statistical data that belongs to a
        specific job.
  responses:
    UnauthorizedError:
      description: Unauthorized
      content:
        application/octet-stream:
          schema:
            type: string
        text/plain:
          schema:
            type: string
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
    ApiKeyAuth:
      type: apiKey
      name: key
      in: query

````