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

# Create upload

> Create a pending upload at a project path and return the signed URL and headers for the PUT request that sends the bytes.

`veryfront__create_upload`

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 |
| - | - | - | - |
| `path` | `string` | Yes | Project-relative destination path, for example assets/image.png. Leading slashes are stripped. |
| `content_type` | `string` | No | MIME type; it becomes a required header of the PUT request. |
| `size_bytes` | `integer` | Yes | File size in bytes, checked against the storage quota. Maximum: `9007199254740991`. |
| `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",
    "arguments": {
      "path": "example",
      "size_bytes": 1
    }
  }
}
```

## 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 |
| - | - | - | - |
| `upload_id` | `string` | Yes | UUID of the pending upload. |
| `path` | `string` | Yes | Project-relative path of the upload. |
| `upload_url` | `string` | Yes | Short-lived signed URL for the PUT request that sends the bytes. |
| `required_headers` | `object` | Yes | Headers the PUT request must send. |
| `status` | `string` | Yes | Always pending until the bytes are stored. Value: `"pending"`. |

## Full schemas

```json title="input-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Project-relative destination path, for example assets/image.png. Leading slashes are stripped."
    },
    "content_type": {
      "type": "string",
      "description": "MIME type; it becomes a required header of the PUT request."
    },
    "size_bytes": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "File size in bytes, checked against the storage quota."
    },
    "project_reference": {
      "type": "string",
      "description": "Project UUID, slug or configured domain; optional when the selected context supplies a project."
    }
  },
  "required": [
    "path",
    "size_bytes"
  ],
  "additionalProperties": false,
  "description": "Arguments for the create_upload tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

```json title="output-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "upload_id": {
      "type": "string",
      "description": "UUID of the pending upload."
    },
    "path": {
      "type": "string",
      "description": "Project-relative path of the upload."
    },
    "upload_url": {
      "type": "string",
      "description": "Short-lived signed URL for the PUT request that sends the bytes."
    },
    "required_headers": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "Additional structured values associated with this result."
      },
      "description": "Headers the PUT request must send."
    },
    "status": {
      "type": "string",
      "const": "pending",
      "description": "Always pending until the bytes are stored."
    }
  },
  "required": [
    "upload_id",
    "path",
    "upload_url",
    "required_headers",
    "status"
  ],
  "additionalProperties": false,
  "description": "Structured result returned by the create_upload 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` 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.