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

# Outline Management

> Endpoints for managing system and custom portal outlines — the structured definitions that control portal pages and navigation.

# Outline Management

Outlines are the structured page and navigation definitions that control what appears in the portal. The Nexudus platform provides built-in system outlines and allows operators to create custom outlines. These endpoints cover listing, retrieving, creating, updating, and deleting outlines.

***

## List All System Outlines

<api>GET /api/public/outlines/all</api>

Returns all system outlines available for the current portal. System outlines are the built-in page definitions provided by the Nexudus platform.

### Authentication

Requires a valid customer bearer token.

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.all
// => '/api/public/outlines/all'

const response = await httpClient.get(url)
```

***

## List Custom Outlines

<api>GET /api/public/outlines/custom</api>

Returns all custom outlines created by the operator for the current portal.

### Authentication

Requires a valid customer bearer token.

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.custom
// => '/api/public/outlines/custom'
```

***

## Get Custom Outline by ID

<api>GET /api/public/outlines/custom/{fileId}</api>

Returns a specific custom outline by its numeric file identifier.

### Path Parameters

<ParamField path="fileId" type="number" required>
  The numeric identifier of the custom outline to retrieve.
</ParamField>

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.getCustom(fileId)
// => '/api/public/outlines/custom/42'
```

***

## Get Published Custom Outline by ID

<api>GET /api/public/outlines/custom/published/{fileId}</api>

Returns the published version of a specific custom outline. Only published outlines are shown to members.

### Path Parameters

<ParamField path="fileId" type="number" required>
  The numeric identifier of the published custom outline.
</ParamField>

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.getCustomPublished(fileId)
// => '/api/public/outlines/custom/published/42'
```

***

## List Published Custom Outlines

<api>GET /api/public/outlines/custom/published</api>

Returns all published custom outlines for the current portal.

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.customPublished
// => '/api/public/outlines/custom/published'
```

***

## Update a System Outline

<api>PUT /api/public/outlines/{name}</api>

Updates a named system outline. Requires operator-level permissions.

### Path Parameters

<ParamField path="name" type="string" required>
  The machine-readable name of the system outline to update.
</ParamField>

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.update('navigation')
// => '/api/public/outlines/navigation'

await httpClient.put(url, updatedOutlineData)
```

***

## Delete a System Outline

<api>DELETE /api/public/outlines/{name}</api>

Deletes a named system outline. Requires operator-level permissions.

### Path Parameters

<ParamField path="name" type="string" required>
  The machine-readable name of the system outline to delete.
</ParamField>

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.delete('my-custom-page')
// => '/api/public/outlines/my-custom-page'

await httpClient.delete(url)
```

***

## Create a Custom Outline

<api>POST /api/public/outlines/custom</api>

Creates a new custom outline for the portal.

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.createCustom()
// => '/api/public/outlines/custom'

await httpClient.post(url, newOutlineData)
```

***

## Update a Custom Outline

<api>PUT /api/public/outlines/custom/{id}</api>

Updates an existing custom outline by its numeric ID.

### Path Parameters

<ParamField path="id" type="number" required>
  The numeric identifier of the custom outline to update.
</ParamField>

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.updateCustom(42)
// => '/api/public/outlines/custom/42'

await httpClient.put(url, updatedData)
```

***

## Delete a Custom Outline

<api>DELETE /api/public/outlines/custom/{id}</api>

Deletes a custom outline by its numeric ID.

### Path Parameters

<ParamField path="id" type="number" required>
  The numeric identifier of the custom outline to delete.
</ParamField>

### TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const url = endpoints.system.outlines.deleteCustom(42)
// => '/api/public/outlines/custom/42'

await httpClient.delete(url)
```

***

## Error Responses

<ResponseField name="401 Unauthorized" type="error">
  The bearer token is missing, expired, or invalid.
</ResponseField>

<ResponseField name="403 Forbidden" type="error">
  The authenticated user does not have operator-level permission to manage outlines.
</ResponseField>

<ResponseField name="404 Not Found" type="error">
  No outline with the given name or ID was found.
</ResponseField>

## Related Endpoints

| Method | Endpoint                          | Description                       |
| ------ | --------------------------------- | --------------------------------- |
| `GET`  | `/api/public/outlines/navigation` | Get the portal navigation outline |
| `GET`  | `/api/public/configuration`       | Get portal feature configuration  |
