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

# customItems

> Create, update, and delete custom context items.

## Methods

### batchCreate()

```typescript
batchCreate(inputs: CreateCustomContextItemInput[]): Promise<CreatedCustomContextItem[]>
```

Create multiple custom context items in one request.

```ts
const created = await client.context.customItems.batchCreate([
  { kind: 'field', sourceId: 'src', fieldName: 'region', dataType: 'string' },
  { kind: 'field', sourceId: 'src', fieldName: 'amount', dataType: 'number' },
])
```

#### Parameters

<ResponseField name={"inputs"} type={"CreateCustomContextItemInput[]"} required>
  Items to create (same fields as `CustomContextItemsResource.create`).
</ResponseField>

#### Returns

`Promise<CreatedCustomContextItem[]>`

Created item metadata for each input.

### create()

```typescript
create(input: CreateCustomContextItemInput): Promise<CreatedCustomContextItem>
```

Create a custom context item.

```ts
const created = await client.context.customItems.create({
  kind: 'entity',
  sourceId: 'my-source',
  name: 'Q3 churn notes',
  content: { summary: 'Key findings…' },
})
```

#### Parameters

<ResponseField name={"input"} type={"CreateCustomContextItemInput"} required />

#### Returns

`Promise<CreatedCustomContextItem>`

Created item ids and hierarchy metadata.

### delete()

```typescript
delete(uid: string): Promise<CustomContextItemDeletion>
```

Delete a custom context item.

#### Parameters

<ResponseField name={"uid"} type={"string"} required>
  Item uid.
</ResponseField>

#### Returns

`Promise<CustomContextItemDeletion>`

Deletion confirmation with uid and context type.

### get()

```typescript
get(uid: string): Promise<object>
```

Retrieve a custom context item by uid.

#### Parameters

<ResponseField name={"uid"} type={"string"} required>
  Item uid.
</ResponseField>

#### Returns

`Promise<object>`

The custom context item.

### list()

```typescript
list(options?: { pageSize: number; pageToken: string; searchQuery: string; topics: string[] }): Promise<Page<object>>
```

List custom context items.

#### Parameters

<ResponseField name={"options"} type={"{ pageSize: number; pageToken: string; searchQuery: string; topics: string[] }"} />

#### Returns

`Promise<Page<object>>`

A page of custom context items.

### update()

```typescript
update(uid: string, input: UpdateCustomContextItemInput): Promise<{ uid: string }>
```

Update a custom context item.

#### Parameters

<ResponseField name={"uid"} type={"string"} required>
  Item uid.
</ResponseField>

<ResponseField name={"input"} type={"UpdateCustomContextItemInput"} required>
  Fields to change (kind and hierarchy ids cannot be changed).
</ResponseField>

#### Returns

`Promise<{ uid: string }>`

The updated item uid.
