---
title: "Upload a file"
method: POST
path: "/v2/files/upload"
tags: ["Files"]
---

# Upload a file

`POST /v2/files/upload`

Uploads a file to native Attio storage for a record. Send multipart/form-data with a single binary field named `file` together with the body fields `object`, `record_id`, and optional `parent_folder_id`. Maximum file size is 50 MB.

This endpoint is in beta. We will aim to avoid breaking changes, but small updates may be made as we roll out to more users.

Required scopes: `file:read-write`, `object_configuration:read`, `record_permission:read`.

## Response `201`

Created

- object — Created
  - `data` File, required
    - `id` object, required
      - `workspace_id` string, uuid, required — The ID of the workspace the file belongs to.
      - `file_id` string, uuid, required — The ID of the file entry.
    - `object_id` string, uuid, required — The ID of the object the record belongs to.
    - `object_slug` string, required — The slug of the object the record belongs to.
    - `record_id` string, uuid, required — The ID of the record the file is linked to.
    - `storage_provider` 'attio' | 'dropbox' | 'box' | 'google-drive' | 'microsoft-onedrive', required — The storage provider for this file entry.
    - `created_by_actor` object, required — The actor that created this file entry.
      - `id` string, nullable — An ID to identify the actor.
      - `type` 'api-token' | 'workspace-member' | 'system' | 'app', nullable — The type of actor. [Read more information on actor types here](/docs/actors).
    - `created_at` string, required — Timestamp representing when the file entry was created.
    - `file_type` 'file', required — The type of file entry.
    - `name` string, required — The name of the file.
    - `content_type` string, nullable, required — The content type of the file.
    - `content_size` number, nullable, required — The size of the file in bytes.
    - `parent_folder_id` string, uuid, nullable, required — The ID of the parent folder, or null if this is a top-level file.

## Other responses

- `403` — Forbidden

---

[API](https://skmtc.net/attio/apis/attio-api.md) · [All operations](https://skmtc.net/attio/apis/attio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/attio/attio-api/versions/40a8e41d06a2/schema)
