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

# Complete Multipart Upload

> Complete a multipart upload by providing all uploaded parts information.

Example CURL command:
```
  curl -X POST "https://lilt.com/v2/upload/s3/multipart/abc123def456/complete?key=API_KEY&key=uploads/user123/file456.zip" \
  --header "Content-Type: application/json" \
  --data-raw '{
    "parts": [
      {"ETag": "etag1", "PartNumber": 1},
      {"ETag": "etag2", "PartNumber": 2}
    ]
  }'
```




## OpenAPI

````yaml /api-reference/openapi-bundled.yaml post /v2/upload/s3/multipart/{uploadId}/complete
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/upload/s3/multipart/{uploadId}/complete:
    post:
      tags:
        - Uploads
      summary: Complete Multipart Upload
      description: |
        Complete a multipart upload by providing all uploaded parts information.

        Example CURL command:
        ```
          curl -X POST "https://lilt.com/v2/upload/s3/multipart/abc123def456/complete?key=API_KEY&key=uploads/user123/file456.zip" \
          --header "Content-Type: application/json" \
          --data-raw '{
            "parts": [
              {"ETag": "etag1", "PartNumber": 1},
              {"ETag": "etag2", "PartNumber": 2}
            ]
          }'
        ```
      operationId: completeMultipartUpload
      parameters:
        - in: path
          name: uploadId
          description: Multipart upload ID from initiate response
          required: true
          schema:
            type: string
        - in: query
          name: s3Key
          description: Upload key from initiate response
          required: true
          schema:
            type: string
      requestBody:
        description: Information about uploaded parts.
        required: true
        content:
          application/json:
            schema:
              title: CompleteMultipartUploadBody
              type: object
              properties:
                parts:
                  description: Array of completed upload parts.
                  type: array
                  items:
                    type: object
                    properties:
                      ETag:
                        description: ETag of the uploaded part
                        type: string
                        example: abc123def456
                      PartNumber:
                        description: Part number (1-based)
                        type: integer
                        minimum: 1
                        example: 1
                    required:
                      - ETag
                      - PartNumber
              required:
                - parts
      responses:
        '200':
          description: Upload completion confirmation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    description: Upload completion status
                    type: boolean
                    example: true
                  location:
                    description: Final file location
                    type: string
                    example: >-
                      https://storage.googleapis.com/bucket/uploads/user123/file456.zip
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    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.
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
    ApiKeyAuth:
      type: apiKey
      name: key
      in: query

````