---
title: "Create Data File"
method: POST
path: "/v2/data"
tags: ["data"]
---

# Create Data File

`POST /v2/data`

Reserve a data file and return a presigned PUT to upload its bytes.

## Request body

- DataFileCreateRequest — A reservation for an upload the client is about to make. ``size_bytes`` is checked against the limit here and again against the stored object; ``content_type`` is pinned into the presigned PUT.
  - `filename` string, required
  - `size_bytes` integer, required
  - `content_type` string
  - `scope` 'member' | 'team'

## Response `201`

Successful Response

- DataFileUploadResponse — A reserved data file and the presigned PUT that fills it.
  - `file` DataFileResponse, required — Size is reserved up front and verified against the stored object on completion.
    - `id` string, uuid, required
    - `team_id` string, uuid, required
    - `membership_id` integer, required
    - `scope` 'member' | 'team', required
    - `status` 'pending' | 'ready', required
    - `filename` string, required
    - `content_type` string, nullable, required
    - `size_bytes` integer, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `upload_url` string, required

## Other responses

- `400` — Invalid or malformed request
- `401` — Missing or invalid credentials
- `403` — Caller may not access this resource
- `404` — Referenced entity does not exist
- `409` — Resource already exists
- `422` — Validation Error

---

[API](https://skmtc.dev/hud/apis/hud-platform.md) · [All operations](https://skmtc.dev/hud/apis/hud-platform/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hud/hud-platform/revisions/58558fc733d9/schema)
