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

# Import upload from URL

> Download a file from an HTTP(S) URL on the server and store it as a project upload.

`veryfront__create_upload_from_url`

Requires project.uploads.write.

## Access

No external-service connection is required. Use a Veryfront credential with access to the requested resources.

**Call type:** Can change resources.

## Arguments

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `url` | `string` | Yes | HTTP(S) URL to download. Private and internal addresses are refused; at most 5 redirects are followed. Format: `uri`. |
| `path` | `string` | Yes | Project-relative destination path, for example attachments/invoice.pdf. Do not URL-encode it. |
| `headers` | `object` | No | Request headers for the download, for example Authorization. Hop-by-hop headers are rejected. |
| `content_type` | `string` | No | MIME type override. Defaults to the response Content-Type, else application/octet-stream. Minimum length: `1`. |
| `expected_size_bytes` | `integer` | No | Exact size in bytes the download must have; a different size fails the import. |
| `max_bytes` | `integer` | No | Largest download accepted, in bytes. Defaults to 104857600 and is capped at 536870912. Maximum: `536870912`. |
| `project_reference` | `string` | No | Project UUID, slug or configured domain; optional when the selected context supplies a project. |

## Example request

Send this JSON-RPC request through an initialized MCP client. Replace sample identifiers and values before calling the tool. See [MCP client setup](https://veryfront.com/docs/cloud/getting-started/connect-mcp.md).

```json title="request.json" theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "veryfront__create_upload_from_url",
    "arguments": {
      "url": "https://example.com",
      "path": "example"
    }
  }
}
```

## Result

The published output shape is summarized below. Inspect both the MCP response content and `isError` when handling a call.

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `id` | `string` | Yes | Upload UUID. |
| `path` | `string` | Yes | Project-relative upload path, without a leading slash. |
| `file_name` | `string` | Yes | File name from the upload record. |
| `content_type` | `string or null` | Yes | Stored MIME type, or null when unspecified. |
| `size_bytes` | `number` | Yes | File size in bytes. |
| `url` | `string or null` | Yes | API URL that serves the upload; access depends on its visibility. |
| `status` | `string` | Yes | pending until the bytes are stored, active when available, or failed. Values: `"pending"`, `"active"`, `"failed"`. |
| `visibility` | `string` | Yes | Effective visibility of the upload. Values: `"project"`, `"public"`, `"private"`. |
| `created_at` | `string` | Yes | Creation time, RFC 3339. |
| `updated_at` | `string` | Yes | Last update time, RFC 3339. |
| `deleted_at` | `string or null` | Yes | Soft-deletion time, RFC 3339, or null for an upload that is not deleted. |

## Full schemas

```json title="input-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "HTTP(S) URL to download. Private and internal addresses are refused; at most 5 redirects are followed."
    },
    "path": {
      "type": "string",
      "description": "Project-relative destination path, for example attachments/invoice.pdf. Do not URL-encode it."
    },
    "headers": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "Additional structured values supplied to the tool."
      },
      "description": "Request headers for the download, for example Authorization. Hop-by-hop headers are rejected."
    },
    "content_type": {
      "type": "string",
      "minLength": 1,
      "description": "MIME type override. Defaults to the response Content-Type, else application/octet-stream."
    },
    "expected_size_bytes": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Exact size in bytes the download must have; a different size fails the import."
    },
    "max_bytes": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 536870912,
      "description": "Largest download accepted, in bytes. Defaults to 104857600 and is capped at 536870912."
    },
    "project_reference": {
      "type": "string",
      "description": "Project UUID, slug or configured domain; optional when the selected context supplies a project."
    }
  },
  "required": [
    "url",
    "path"
  ],
  "additionalProperties": false,
  "description": "Arguments for the create_upload_from_url tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

```json title="output-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Upload UUID."
    },
    "path": {
      "type": "string",
      "description": "Project-relative upload path, without a leading slash."
    },
    "file_name": {
      "type": "string",
      "description": "File name from the upload record."
    },
    "content_type": {
      "type": [
        "string",
        "null"
      ],
      "description": "Stored MIME type, or null when unspecified."
    },
    "size_bytes": {
      "type": "number",
      "description": "File size in bytes."
    },
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "API URL that serves the upload; access depends on its visibility."
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "active",
        "failed"
      ],
      "description": "pending until the bytes are stored, active when available, or failed."
    },
    "visibility": {
      "type": "string",
      "enum": [
        "project",
        "public",
        "private"
      ],
      "description": "Effective visibility of the upload."
    },
    "created_at": {
      "type": "string",
      "description": "Creation time, RFC 3339."
    },
    "updated_at": {
      "type": "string",
      "description": "Last update time, RFC 3339."
    },
    "deleted_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "Soft-deletion time, RFC 3339, or null for an upload that is not deleted."
    }
  },
  "required": [
    "id",
    "path",
    "file_name",
    "content_type",
    "size_bytes",
    "url",
    "status",
    "visibility",
    "created_at",
    "updated_at",
    "deleted_at"
  ],
  "additionalProperties": false,
  "description": "Structured result returned by the create_upload_from_url tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

<details>
  <summary>Try this tool</summary>

  Replace sample arguments with values for your project or connected account. Calls run only when you select Run tool.

  MCP tool call

  Call `veryfront__create_upload_from_url` against the Veryfront MCP endpoint.

  Bearer token or API key

  Arguments (JSON)

  Run this tool with these arguments.

  Run tool

  Output JSON

  <pre />
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.