> ## 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.

# Get Directory Meta

> Returns directory configuration and tag cloud data for the team and member directory.

# Get Directory Meta

Returns metadata that controls how the community directory behaves — including whether the directory is enabled, what content it shows (teams only, members only, or both), the tag cloud for filtering, and any custom fields configured for directory search.

## Authentication

Requires a valid customer bearer token.

## Response

<ResponseField name="Meta" type="DirectoryMeta" required>
  The directory metadata object.
</ResponseField>

### Meta Fields

<ResponseField name="Meta.DirectoryEnabled" type="boolean">
  When `true`, the community directory is enabled for this location.
</ResponseField>

<ResponseField name="Meta.DirectoryContents" type="eDirectoryContents">
  Controls which profiles appear in the directory: `1` = Published profiles, `2` = Published profiles with a price plan, `3` = Everyone, `4` =
  Everyone with a price plan.
</ResponseField>

<ResponseField name="Meta.DirectoryRecords" type="eDirectoryRecordType">
  Controls the record types shown: `1` = Teams and members, `2` = Only teams, `3` = Only members.
</ResponseField>

<ResponseField name="Meta.OnlyInvoicingSpace" type="boolean">
  When `true`, only members from the invoicing space are shown.
</ResponseField>

<ResponseField name="Meta.ShowCheckInMembers" type="boolean">
  When `true`, members who are currently checked in are highlighted.
</ResponseField>

<ResponseField name="Meta.Tags" type="TagCloud[]">
  Tag cloud entries derived from all published profiles.
</ResponseField>

<ResponseField name="Meta.Tags[].Tag" type="string">
  The tag text.
</ResponseField>

<ResponseField name="Meta.Tags[].Count" type="number">
  Number of profiles using this tag.
</ResponseField>

<ResponseField name="Meta.Tags[].Percentage" type="number">
  Relative weight of this tag as a percentage — used to size tags in a tag cloud UI.
</ResponseField>

<ResponseField name="Meta.CustomFields" type="CustomField[]">
  Custom fields configured for directory search.
</ResponseField>

<ResponseField name="Meta.CustomFields[].Id" type="number">
  Unique identifier of the custom field.
</ResponseField>

<ResponseField name="Meta.CustomFields[].Name" type="string">
  Display name of the custom field.
</ResponseField>

<ResponseField name="Meta.CustomFields[].FieldType" type="string">
  Field type (e.g., `"Text"`, `"Dropdown"`).
</ResponseField>

<ResponseField name="Meta.CustomFields[].CustomFieldIndex" type="number">
  Index used to map the field to the correct slot.
</ResponseField>

<ResponseField name="Meta.CustomFields[].DisplayInDirectorySearch" type="boolean">
  When `true`, this field appears as a search filter in the directory UI.
</ResponseField>

<ResponseField name="Meta.CustomFields[].NameInSearch" type="string">
  Label shown in the search filter UI.
</ResponseField>

<ResponseField name="Meta.CustomFields[].AvailableOptions" type="string[]">
  Available values for dropdown-type fields.
</ResponseField>

## Examples

### Fetch directory metadata

```http theme={null}
GET /api/public/teams/directory/meta
Authorization: Bearer {token}
```

```json theme={null}
{
  "Meta": {
    "DirectoryEnabled": true,
    "DirectoryContents": 1,
    "DirectoryRecords": 1,
    "OnlyInvoicingSpace": false,
    "ShowCheckInMembers": true,
    "Tags": [
      { "Tag": "technology", "Count": 8, "Percentage": 40 },
      { "Tag": "design", "Count": 5, "Percentage": 25 },
      { "Tag": "marketing", "Count": 4, "Percentage": 20 }
    ],
    "CustomFields": [
      {
        "Id": 1,
        "Name": "Industry",
        "FieldType": "Dropdown",
        "CustomFieldIndex": 0,
        "DisplayInDirectorySearch": true,
        "NameInSearch": "Industry",
        "AvailableOptions": ["Technology", "Finance", "Design", "Marketing"]
      }
    ]
  }
}
```

## TypeScript Integration

```typescript theme={null}
import { endpoints } from '@/api/endpoints'
import { DirectoryMetaData } from '@/types/endpoints/DirectoryMeta'
import { useData } from '@/hooks/useData'

const { resource: meta } = useData<DirectoryMetaData>(httpClient, endpoints.teams.directory.meta)
```

## Usage in Portal

| Context                                      | Source file                                                    |
| -------------------------------------------- | -------------------------------------------------------------- |
| Community directory (`/community/directory`) | `src/views/community/directory/components/useDirectoryData.ts` |

## Error Responses

<ResponseField name="401 Unauthorized" type="error">
  The customer is not authenticated or the session has expired.
</ResponseField>

## Related Endpoints

| Method | Endpoint                               | Description                           |
| ------ | -------------------------------------- | ------------------------------------- |
| `GET`  | `/api/public/teams/published`          | List published teams in the directory |
| `GET`  | `/api/public/teams/published/{teamId}` | Get a single published team profile   |
| `GET`  | `/api/public/teams/my`                 | List the customer's own teams         |
