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

# TypeBot

> Manage TypeBots and sessions with the .NET SDK

Use `client.TypeBots` to list, create, update, delete, and control TypeBot sessions.

## `client.TypeBots.ListAsync<TResponse>(instanceId, options?)`

```csharp theme={null}
await client.TypeBots.ListAsync<object>("VZ...", new InstanceRequestOptions { InstanceToken = "instance-token" });
```

**Return:** array of TypeBot configs for the instance (IDs, triggers, priority, etc.).

## `client.TypeBots.CreateAsync<TResponse>(request)`

```csharp theme={null}
await client.TypeBots.CreateAsync<object>(new TypeBotRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    Enabled = true,
    Description = "Support bot",
    TypebotUrl = "https://app.typebot.io",
    PublicId = "my-bot",
    TriggerType = "keyword",
    TriggerOperator = "equals",
    TriggerValue = "start",
    Priority = 1,
    ExpireInMinutes = 60,
    KeywordFinish = "exit",
    DefaultDelayMs = 1000,
    UnknownMessage = "I did not understand your message.",
    ListenFromMe = false,
    StopBotFromMe = true,
    KeepOpen = false,
    DebounceMs = 500,
    IgnoreGroups = true,
    TranscribeAudio = false,
});
```

**Return:** created config, including `TypebotId` for later updates.

## `client.TypeBots.UpdateAsync<TResponse>(request)`

```csharp theme={null}
await client.TypeBots.UpdateAsync<object>(new TypeBotMutationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    TypebotId = "typebot_123",
    Enabled = false,
});
```

**Return:** updated config or `{ Status: "ok" }`.

## `client.TypeBots.DeleteAsync<TResponse>(request)`

```csharp theme={null}
await client.TypeBots.DeleteAsync<object>(new TypeBotMutationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    TypebotId = "typebot_123",
});
```

**Return:** deletion confirmation (`{ Status: "ok" }` or equivalent message).

## `client.TypeBots.StartSessionAsync<TResponse>(request)`

```csharp theme={null}
await client.TypeBots.StartSessionAsync<object>(new TypeBotStartSessionRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    TypebotId = "typebot_123",
    Phone = "5511999999999",
    PushName = "Maria",
    Message = "start",
});
```

**Return:** started session (session UUID, contact, `opened` status).

## `client.TypeBots.ListSessionsAsync<TResponse>(instanceId, options?)`

```csharp theme={null}
await client.TypeBots.ListSessionsAsync<object>("VZ...", new InstanceRequestOptions { InstanceToken = "instance-token" });
```

**Return:** session list (`opened`, `paused`, `closed`) per contact/flow.

## `client.TypeBots.PauseSessionAsync<TResponse>(request)`

```csharp theme={null}
await client.TypeBots.PauseSessionAsync<object>(new TypeBotSessionRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    Session = "5511999999999",
});
```

**Return:** session with `paused` status.

## `client.TypeBots.CloseSessionAsync<TResponse>(request)`

```csharp theme={null}
await client.TypeBots.CloseSessionAsync<object>(new TypeBotSessionRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    Session = "5511999999999",
});
```

**Return:** closed session or confirmation by phone number.
