> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openinary.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# List Storage

> Retrieve the full folder and file tree from storage

## Endpoint

```
GET /storage
```

**Auth:** API Key required

## Response

Returns the storage tree as a nested array. Each node is either a folder (with `children`) or a file (no `children`).

```json theme={null}
[
  {
    "id": "photos",
    "name": "photos",
    "children": [
      {
        "id": "photos/portrait.jpg",
        "name": "portrait.jpg",
        "children": []
      },
      {
        "id": "photos/banner.png",
        "name": "banner.png",
        "children": []
      }
    ]
  },
  {
    "id": "video.mp4",
    "name": "video.mp4",
    "children": []
  }
]
```

<ResponseField name="id" type="string">
  Unique identifier, full path relative to storage root. Use this as the `{path}
      ` parameter in other storage endpoints.
</ResponseField>

<ResponseField name="name" type="string">
  Display name of the file or folder.
</ResponseField>

<ResponseField name="children" type="array">
  Nested files and folders. Empty array `[]` for files or empty folders.
</ResponseField>

## Example

```bash theme={null}
curl http://localhost:3000/storage \
  -H "Authorization: Bearer <api_key>"
```

## Related

<CardGroup cols={2}>
  <Card title="File Metadata" icon="circle-info" href="/api-reference/storage/metadata">
    Get size and timestamps for a specific file.
  </Card>

  <Card title="Move File or Folder" icon="folder-tree" href="/api-reference/storage/move">
    Move a file or folder into a different parent folder.
  </Card>

  <Card title="Rename File or Folder" icon="pen" href="/api-reference/storage/rename">
    Rename a file or folder in place.
  </Card>

  <Card title="Delete File" icon="trash" href="/api-reference/storage/delete">
    Remove a file and its cached variants.
  </Card>
</CardGroup>
