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

# Update Upload Status

> Mark file upload as complete



## OpenAPI

````yaml /api/openapi.yaml post /v1/assets/{assetTypeName}/{assetId}/files/{fileId}/complete
openapi: 3.0.3
info:
  title: Documentation Service API
  description: API documentation for Documentation Service
  version: 1.0.0
servers:
  - url: https://api.us.lexful.app
    description: US pod
security:
  - bearerAuth: []
    accountId: []
paths:
  /v1/assets/{assetTypeName}/{assetId}/files/{fileId}/complete:
    post:
      tags:
        - Asset Files
      summary: Update Upload Status
      description: Mark file upload as complete
      parameters:
        - schema:
            type: string
          in: path
          name: assetTypeName
          required: true
          description: Asset type name
        - schema:
            type: string
            format: uuid
          in: path
          name: assetId
          required: true
          description: Asset ID
        - schema:
            type: string
            format: uuid
          in: path
          name: fileId
          required: true
          description: File ID
      responses:
        '200':
          $ref: '#/components/responses/UpdateUploadStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
components:
  responses:
    UpdateUploadStatusResponse:
      description: Default Response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateUploadStatusResponse_application_json'
    BadRequestResponse:
      description: Bad request - validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ForbiddenResponse:
      description: Forbidden - insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFoundResponse:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerErrorResponse:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    UpdateUploadStatusResponse_application_json:
      type: object
      properties:
        file:
          $ref: >-
            #/components/schemas/UpdateUploadStatusResponse_application_json_file
      required:
        - file
    ErrorResponse:
      description: Bad request - validation error
      type: object
      properties:
        status:
          type: number
          description: HTTP status code
        message:
          type: string
          description: Error message
        error_id:
          type: string
          description: Unique error identifier
        error_code:
          type: string
          description: Error code
        developer_message:
          type: string
          description: Additional details for developers
    UpdateUploadStatusResponse_application_json_file:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: File unique identifier
        organization_id:
          type: string
          format: uuid
          description: Organization ID
        entity_id:
          type: string
          nullable: true
          format: uuid
          description: Associated entity ID
        asset_id:
          type: string
          nullable: true
          format: uuid
          description: >-
            Alias for entity_id — same value, preferred for asset-oriented
            consumers
        property_name:
          type: string
          nullable: true
          description: Associated property name
        name:
          type: string
          description: File name
        original_name:
          type: string
          description: Original filename
        file_extension:
          type: string
          description: File extension (e.g., .pdf, .jpg)
        mime_type:
          type: string
          description: MIME type
        size:
          type: number
          description: File size in bytes
        is_public:
          type: boolean
          description: Whether file is publicly accessible
        indexable:
          type: boolean
          description: Whether this file should be indexed in the knowledge graph
        s3_key:
          type: string
          description: S3 storage key
        upload_status:
          type: string
          enum:
            - pending
            - uploading
            - completed
            - failed
          description: Upload status
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        created_by:
          type: string
          description: User ID who created
        updated_by:
          type: string
          description: User ID who last updated
        data:
          type: object
          description: Additional metadata
        s3_meta:
          $ref: >-
            #/components/schemas/UpdateUploadStatusResponse_application_json_file_s3_meta
      required:
        - id
        - organization_id
        - name
        - original_name
        - file_extension
        - mime_type
        - size
        - is_public
        - s3_key
        - upload_status
    UpdateUploadStatusResponse_application_json_file_s3_meta:
      type: object
      description: S3 object metadata. Only included when expand=s3_meta is requested.
      properties:
        etag:
          type: string
          nullable: true
          description: S3 ETag (MD5 checksum)
        content_length:
          type: number
          nullable: true
          description: Content length in bytes
        content_type:
          type: string
          nullable: true
          description: Content type
        content_encoding:
          type: string
          nullable: true
          description: Content encoding
        content_disposition:
          type: string
          nullable: true
          description: Content disposition
        last_modified:
          type: string
          nullable: true
          description: Last modified timestamp
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token
    accountId:
      type: apiKey
      in: header
      name: X-Account-ID
      description: Account ID

````