---
title: "Create Enterprise Search Repository"
method: POST
path: "/enterprise-search/repositories"
tags: ["Enterprise Search"]
---

# Create Enterprise Search Repository

`POST /enterprise-search/repositories`

## Request

- Base URL: `https://am1.portal.api.nasuni.com`
- URL: `https://am1.portal.api.nasuni.com/enterprise-search/repositories`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/nasuni/apis/portal-api/docs/enterprise-search/repositories/post.ts> (a function with typed inputs; its response is checked against the schema)

Create the search repository for an appliance.

## Request body

- EnterpriseSearchRepositoryCreateRequestDto
  - `edge_id` string, uuid, required

## Response `201`

Enterprise search repository created

- EnterpriseSearchRepositoryEdgeDto: Response shape for the single-repository routes — the summary plus the per-volume indexes the appliance status is derived from, and the share roster the Configure page renders.
  - `edge_id` string, uuid, required
  - `edge_name` string, required
  - `edge_description` string, required
  - `edge_serial` string, required
  - `status` 'Index Not Started' | 'Indexing' | 'Active' | 'Paused' | 'Index Failed' | 'Index Expired' | 'Removal Pending' | 'Removed' | 'Unknown', required: Lifecycle of an activated appliance search repository.
  - `volume_count` integer
  - `cloud_provider_count` integer
  - `share_count` integer
  - `file_count` integer, nullable: Sum of reported per-volume file counts. Volumes without a NOC count are excluded; null when no volume has reported a count.
  - `queued_deletion_time` string, date-time, nullable: Instant the repository is permanently deleted once its soft-delete window elapses. Portal-computed; null unless a removal is pending; the client derives the countdown from it so the value never goes stale.
  - `volumes` EnterpriseSearchRepositoryVolumeDto[]
    - `volume_guid` string, required
    - `volume_name` string, required
    - `provider` string, required
    - `volume_region` string, nullable: Storage region of the volume. May be null when NOC has no volume metadata.
    - `file_count` integer, nullable: Number of files indexed for the volume. May be null until NOC reports a count.
    - `volume_size` string, nullable: Human-readable volume size string e.g. '10.5 TB'. May be unavailable until indexing progresses.
    - `share_count` integer: Number of Web Access enabled shares exposed for this volume by the repository appliance.
    - `queued_deletion_time` string, date-time, nullable: Instant the repository is permanently deleted once its soft-delete window elapses. Portal-computed and shared by every volume; null unless a removal is pending.
  - `shares` EnterpriseSearchShareDto[]
    - `share_name` string, required
    - `path` string, required: Path within the volume that the share exposes.
    - `volume_guid` string, required
    - `volume_name` string, required
    - `provider` string, nullable, required
    - `volume_region` string, nullable: Storage region of the share's volume, or null when none is on record.
    - `web_access_enabled` boolean, required: The filer's Web Access toggle. Only enabled shares are indexed; disabled ones are reported so the UI can count them.
    - `file_count` integer, nullable: Always null today. NOC reports inventory file counts per volume, not per share, so a per-share number cannot be sourced without splitting a volume's total across its shares.

## Other responses

- `400`: Bad request
- `401`: Not authenticated
- `403`: Insufficient permissions
- `404`: Resource not found
- `408`: Request timeout
- `422`: Invalid input data
- `500`: Internal server error

---

[API](https://skmtc.dev/nasuni/apis/portal-api.md) - [All operations](https://skmtc.dev/nasuni/apis/portal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nasuni/apis/portal-api/revisions/2a505bec6d14?raw)
