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

# Complete File Upload

> Confirm that a file upload is complete and get the CDN URL.

## Path Parameters

<ParamField path="file_id" type="string" required>
  File ID from the [Get Upload URL](/api-reference/files/get-upload-url) response.
</ParamField>

## Response Fields

<ResponseField name="success" type="boolean">
  Whether the request was successful.
</ResponseField>

<ResponseField name="data" type="object">
  Uploaded file details.

  <Expandable title="data properties">
    <ResponseField name="data.id" type="string">
      Unique file identifier.
    </ResponseField>

    <ResponseField name="data.url" type="string">
      CDN URL for the uploaded file. Use this URL in generation request parameters like `image_url` or `audio_url`.
    </ResponseField>

    <ResponseField name="data.filename" type="string">
      Original filename.
    </ResponseField>

    <ResponseField name="data.content_type" type="string">
      MIME type of the uploaded file.
    </ResponseField>

    <ResponseField name="data.size_bytes" type="number">
      File size in bytes.
    </ResponseField>

    <ResponseField name="data.created_at" type="string">
      ISO 8601 timestamp when the file was uploaded.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "data": {
      "id": "file_abc123",
      "url": "https://cdn.modelhunter.ai/files/file_abc123.jpg",
      "filename": "my-image.jpg",
      "content_type": "image/jpeg",
      "size_bytes": 2048576,
      "created_at": "2025-01-15T10:05:00Z"
    }
  }
  ```

  ```json 404 theme={null}
  {
    "success": false,
    "error": {
      "code": "FILE_NOT_FOUND",
      "message": "File not found or upload URL has expired"
    }
  }
  ```
</ResponseExample>
