Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

Wazen

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

Wazen

Official .NET SDK for the Wazen WhatsApp API

nugetNuGet
Version
0.4.0
Version published
Total downloads
402
Maintainers
1
Created
Source

Wazen .NET SDK

Official .NET SDK for the Wazen WhatsApp API.

NuGet .NET

Installation

dotnet add package Wazen
Install-Package Wazen

Quick Start

using Wazen;

var wazen = new WazenClient("wz_your_api_key");

// Send a message
var message = await wazen.Messages.SendAsync("session-id", new SendMessageRequest
{
    To = "+1234567890",
    Type = MessageType.Text,
    Content = "Hello from Wazen!"
});

// List sessions
var sessions = await wazen.Sessions.ListAsync();

// Check if a number is on WhatsApp
var result = await wazen.Contacts.CheckAsync("session-id", new CheckContactRequest
{
    Phone = "+1234567890"
});

Resources

All resources are accessible as properties on the client instance.

Sessions

await wazen.Sessions.CreateAsync();
await wazen.Sessions.ListAsync();
await wazen.Sessions.GetAsync("session-id");
await wazen.Sessions.DeleteAsync("session-id");
await wazen.Sessions.RestartAsync("session-id");
await wazen.Sessions.GetQrAsync("session-id");
await wazen.Sessions.FactoryResetAsync("session-id");

Messages

// Send text
await wazen.Messages.SendAsync("session-id", new SendMessageRequest
{
    To = "+1234567890",
    Type = MessageType.Text,
    Content = "Hello!"
});

// Send image
await wazen.Messages.SendAsync("session-id", new SendMessageRequest
{
    To = "+1234567890",
    Type = MessageType.Image,
    MediaUrl = "https://example.com/photo.jpg"
});

// Get message history
await wazen.Messages.ListAsync("session-id", new ListMessagesQuery
{
    Direction = "outgoing",
    Limit = 10
});

// Get single message
await wazen.Messages.GetAsync("session-id", "message-id");

Groups

await wazen.Groups.ListAsync("session-id");
await wazen.Groups.CreateAsync("session-id", new CreateGroupRequest
{
    Subject = "Team Chat",
    Participants = new[] { "+1234567890" }
});
await wazen.Groups.GetAsync("session-id", "group-id");
await wazen.Groups.UpdateAsync("session-id", "group-id", new UpdateGroupRequest
{
    Subject = "New Name"
});
await wazen.Groups.LeaveAsync("session-id", "group-id");
await wazen.Groups.ManageParticipantsAsync("session-id", "group-id", new ManageParticipantsRequest
{
    Action = ParticipantAction.Add,
    Participants = new[] { "+0987654321" }
});
await wazen.Groups.SendMessageAsync("session-id", "group-id", new SendGroupMessageRequest
{
    Type = MessageType.Text,
    Content = "Hello group!"
});

Channels

await wazen.Channels.CreateAsync("session-id", new CreateChannelRequest
{
    Name = "Product Updates",
    Description = "Latest news"
});
await wazen.Channels.SendMessageAsync("session-id", "channel-id", new SendChannelMessageRequest
{
    Type = MessageType.Text,
    Content = "New release!"
});

Contacts

// Check single number
await wazen.Contacts.CheckAsync("session-id", new CheckContactRequest
{
    Phone = "+1234567890"
});

// Bulk check
await wazen.Contacts.BulkCheckAsync("session-id", new BulkCheckRequest
{
    Phones = new[] { "+1234567890", "+0987654321" }
});

Warming

await wazen.Warming.StartAsync("session-id", new StartWarmingRequest
{
    Contacts = new[]
    {
        new WarmingContact { Phone = "+1234567890", Name = "Alice" },
        new WarmingContact { Phone = "+0987654321" }
    }
});
await wazen.Warming.GetStatusAsync("session-id");
await wazen.Warming.PauseAsync("session-id");
await wazen.Warming.ResumeAsync("session-id");
await wazen.Warming.CancelAsync("session-id");

Webhooks

await wazen.Webhooks.CreateAsync(new CreateWebhookRequest
{
    Url = "https://your-app.com/webhooks/wazen",
    Events = new[] { WebhookEvent.MessageReceived, WebhookEvent.MessageDelivered }
});
await wazen.Webhooks.ListAsync();
await wazen.Webhooks.UpdateAsync("webhook-id", new UpdateWebhookRequest { Enabled = false });
await wazen.Webhooks.DeleteAsync("webhook-id");
await wazen.Webhooks.TestAsync("webhook-id");
await wazen.Webhooks.GetLogsAsync("webhook-id");

Account

var account = await wazen.Account.GetAsync();
var usage = await wazen.Account.GetUsageAsync();

API Keys

var key = await wazen.ApiKeys.CreateAsync(new CreateApiKeyRequest { Name = "new-key" });
await wazen.ApiKeys.ListAsync();
await wazen.ApiKeys.RevokeAsync("key-id");

Configuration

var wazen = new WazenClient("wz_your_api_key", new WazenClientOptions
{
    BaseUrl = "https://wazen.dev/api/v1", // default
    Timeout = TimeSpan.FromSeconds(30)    // default
});

Error Handling

using Wazen;
using Wazen.Exceptions;

try
{
    await wazen.Messages.SendAsync("session-id", new SendMessageRequest
    {
        To = "+1234567890",
        Type = MessageType.Text,
        Content = "Hi"
    });
}
catch (WazenApiException ex)
{
    Console.WriteLine(ex.StatusCode); // HTTP status code
    Console.WriteLine(ex.ErrorCode);  // API error code
    Console.WriteLine(ex.Message);    // Error message
}

Requirements

  • .NET 8.0 or later
  • A Wazen account with an active subscription
  • An API key from your Dashboard

License

MIT

Keywords

wazen

FAQs

Package last updated on 19 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts