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

# URL Upload

> Upload files by providing a URL

Upload a file by providing a publicly accessible URL. The server will fetch and store the file.

<Note>
  **Upload limits:**

  * **Free users:** 1 GB per day, up to 5 uploads per minute.
  * **Paid users** (topped up \$5 or more): 10 GB per day, up to 50 uploads per minute.
</Note>

## Request

```bash theme={null}
curl --location --request PUT 'https://files.unifically.com/upload' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "file_url": "https://example.com/path/to/file.png"
}'
```

## Request Body

```json theme={null}
{
  "file_url": "https://example.com/path/to/file.png"
}
```

## Parameters

<ParamField body="file_url" type="String (URL)" required>
  Publicly accessible URL of the file to upload
</ParamField>

## Example

```bash theme={null}
curl --location --request PUT 'https://files.unifically.com/upload' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "file_url": "https://file.com/images/sample.png"
}'
```

## Response

### Success Response

**Status Code:** `200 OK`

```json theme={null}
{
  "success": true,
  "file_url": "https://files.unifically.com/image/2b847255-e028-4cf7-a2aa-c638f3e15cbc.webp"
}
```

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

<ResponseField name="file_url" type="string">
  URL to access the uploaded file
</ResponseField>

## Use Cases

* Importing files from external sources
* Migrating files from other storage services
* Best for: Bulk imports, file migrations, webhook integrations

## Requirements

* The URL must be publicly accessible (no authentication required)
* The file must be directly downloadable
* HTTPS URLs are recommended
