---
title: "Upload File"
method: POST
path: "/api/v1/projects/upload/"
tags: ["Projects"]
---

# Upload File

`POST /api/v1/projects/upload/`

Upload flows from a file.<br><br>Accepts either a JSON file with project metadata (folder_name, folder_description, flows)<br>or a ZIP file containing individual flow JSON files (as produced by the download endpoint).

## Response `201`

Successful Response

- FlowRead[]
  - `access_type` 'PRIVATE' | 'PUBLIC'
  - `action_description` string, nullable — The description of the action associated with the flow
  - `action_name` string, nullable — The name of the action associated with the flow
  - `data` object, nullable
  - `description` string, nullable
  - `endpoint_name` string, nullable
  - `folder_id` string, uuid, nullable, required
  - `gradient` string, nullable
  - `icon` string, nullable
  - `icon_bg_color` string, nullable
  - `id` string, uuid, required
  - `is_component` boolean, nullable
  - `locked` boolean, nullable
  - `mcp_enabled` boolean, nullable — Can be exposed in the MCP server
  - `name` string, required
  - `name_key` string, nullable — Stable i18n key derived from the original English name
  - `tags` string[], nullable — The tags of the flow
  - `updated_at` string, date-time, nullable
  - `user_id` string, uuid, nullable, required
  - `webhook` boolean, nullable — Can be used on the webhook endpoint
  - `workspace_id` string, uuid, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-06-08** `a5c4fa6a88f7` — 2 info
  - added the optional property `items/name_key` to the response with the `201` status
  - added the optional property `items/workspace_id` to the response with the `201` status
- **2026-04-13** `acd160326a88` — 1 breaking, 3 info
  - the `file` request property contentMediaType changed from `application/octet-stream` to ``
  - request body became optional
  - the request property `file` became optional
  - request property `file` list-of-types was widened by adding types `null` to media type `multipart/form-data`
- **2026-03-12** `830c31118215` — 1 breaking, 3 info
  - the `file` request property contentMediaType changed from `` to `application/octet-stream`
  - the `file` request property type/format was generalized from `string`/`binary` to `string`/``
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status
- **2026-03-06** `0be341779529` — 2 info
  - the endpoint scheme security `OAuth2PasswordBearerCookie` was added to the API
  - the endpoint scheme security `OAuth2PasswordBearer` was removed from the API
- **2026-02-18** `191b57fc530b` — 2 info
  - the endpoint scheme security `OAuth2PasswordBearer` was added to the API
  - the endpoint scheme security `OAuth2PasswordBearerCookie` was removed from the API

[Full history](https://skmtc.dev/langflow-ai/apis/langflow/changes/api/v1/projects/upload/post.md)

---

[API](https://skmtc.dev/langflow-ai/apis/langflow.md) · [All operations](https://skmtc.dev/langflow-ai/apis/langflow/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/langflow-ai/langflow/revisions/a5c4fa6a88f7/schema)
