---
title: "Create Directory"
method: POST
path: "/api/v1/beta/directories"
tags: ["Beta", "Directories"]
---

# Create Directory

`POST /api/v1/beta/directories`

Create a new directory within the specified project.

## Query parameters

- `project_id` string, uuid, nullable
- `organization_id` string, uuid, nullable

## Cookies

- `session` string, nullable

## Request body

- DirectoryCreateRequest — API request schema for creating a directory.
  - `name` string, required — Human-readable name for the directory.
  - `description` string, nullable — Optional description shown to users.
  - `type` 'user' | 'ephemeral' — Directory type. Use 'ephemeral' for batch processing with automatic cleanup.
  - `expires_at` string, date-time, nullable — When this directory expires. Required for ephemeral directories.
  - `system_metadata` object, nullable — Reserved system-managed metadata.

## Response `201`

Successful Response

- DirectoryResponse — API response schema for a directory.
  - `id` string, required — Unique identifier for the directory.
  - `created_at` string, date-time, nullable — Creation datetime
  - `updated_at` string, date-time, nullable — Update datetime
  - `project_id` string, required — Project the directory belongs to.
  - `name` string, required — Human-readable name for the directory.
  - `description` string, nullable — Optional description shown to users.
  - `type` 'user' | 'index' | 'ephemeral' | 'system_ephemeral', nullable — Directory type: 'user', 'index', 'ephemeral', or 'system_ephemeral'.
  - `expires_at` string, date-time, nullable — When this directory expires and is eligible for cleanup.
  - `system_metadata` object, nullable — Reserved system-managed metadata.
  - `deleted_at` string, date-time, nullable — Optional timestamp of when the directory was deleted. Null if not deleted.

## Other responses

- `422` — Validation Error

## Changes

- **2026-06-09** `b17341164de9` — 2 info
  - 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-05-27** `1c29e1491a38` — 6 info
  - added the new optional request property `expires_at`
  - added the new optional request property `system_metadata`
  - added the new optional request property `type`
  - added the optional property `expires_at` to the response with the `201` status
  - …2 more
- **2026-05-23** `34da5826db1c` — 2 warning
  - removed the request property `data_source_id`
  - removed the optional property `data_source_id` from the response with the `201` status
- **2026-05-21** `fb63fb8d662c` — 2 info
  - added the new optional request property `data_source_id`
  - added the optional property `data_source_id` to the response with the `201` status
- **2026-05-16** `c317ed7c691a` — 2 warning
  - removed the request property `data_source_id`
  - removed the optional property `data_source_id` from the response with the `201` status

[Full history](https://skmtc.dev/run-llama/apis/llama-platform/changes/api/v1/beta/directories/post.md)

---

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