Skip to main content
net8.0

Lightweight SDK for building typed connectors for Azure

Published
Jun 2, 2026
4mo ago
Total Downloads
3.3K
3,343

Install

dotnet add package Azure.Connectors.Sdk --version 0.12.0-preview.1
ProductVersions
.NET
net8.0

README

Build Status NuGet

Azure Connectors .NET SDK

Type-safe .NET clients for Azure connectors β€” call Office 365, SharePoint, Teams, Dataverse, and 1,000+ connectors directly from Azure Functions and other .NET apps.

Early Preview β€” Not for Production Use

This SDK is currently in early preview and is under active development. It is intended for evaluation, experimentation, and feedback purposes only.

  • Do not use this SDK in production environments.
  • Breaking changes should be expected across APIs, data models, and behavior in future releases.
  • Features may be added, modified, or removed without prior notice.

We welcome feedback and contributions β€” please open an issue with questions, suggestions, or bug reports.

Why This SDK?

Azure provides a rich ecosystem of managed connectors that bridge your code to SaaS services, PaaS resources, and on-premises systems. Originally powering Azure Logic Apps and Power Automate, these connectors are now available as standalone, strongly-typed C# clients for any .NET application β€” no workflow service required.

  • Type-safe operations β€” Generated async methods with full IntelliSense and XML documentation
  • Built-in authentication β€” Managed identity and connection string token providers for API Hub
  • Resilient HTTP β€” Configurable retry policies for transient failures
  • 1,000+ connectors β€” Any Azure managed connector available via API Hub can be generated

Note: This is the .NET SDK. Python, Node.js, and Java SDKs are planned in collaboration with the Azure Functions team.

How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚       Your Azure Function / App     β”‚
β”‚                                     β”‚
β”‚  using Office365Client;             β”‚
β”‚  await client.SendEmailAsync(...);  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Generated Connector Clients       β”‚
β”‚   (Office365Extensions.cs, etc.)    β”‚
β”‚                                     β”‚
β”‚  β€’ Typed async methods per action   β”‚
β”‚  β€’ Input/output models from Swagger β”‚
β”‚  β€’ XML docs from connector metadata β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ depends on
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Azure Connectors .NET SDK         β”‚
β”‚   Azure.Connectors.Sdk              β”‚
β”‚                                     β”‚
β”‚  β€’ Azure.Core TokenCredential auth  β”‚
β”‚  β€’ ConnectorHttpClient + retry      β”‚
β”‚  β€’ ConnectorJsonSerializer          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Installation

From NuGet.org

dotnet add package Azure.Connectors.Sdk --prerelease

Quick Start

1. Generate Connector Code

Use the LogicAppsCompiler CLI to generate typed clients from connector Swagger definitions:

LogicAppsCompiler.exe ./generated unused --directClient --connectors=office365

See GENERATION.md for detailed generation instructions.

2. Add Generated Code to Your Project

Copy the generated *Extensions.cs files to your project.

3. Use the Typed Client

using System;
using Azure.Connectors.Sdk;
using Azure.Connectors.Sdk.Office365;
using Azure.Identity;

// Get connection runtime URL from Azure Portal
var connectionRuntimeUrl = "https://...";

// Create client β€” defaults to ManagedIdentityCredential (system-assigned)
using var client = new Office365Client(connectionRuntimeUrl);

// For local development, pass AzureCliCredential explicitly
using var localClient = new Office365Client(
    new Uri(connectionRuntimeUrl),
    new AzureCliCredential());

// Or configure retry and diagnostics via ConnectorClientOptions
using var clientWithOptions = new Office365Client(
    new Uri(connectionRuntimeUrl),
    new AzureCliCredential(),
    new ConnectorClientOptions());

// Call typed operations
await client.SendEmailAsync(new SendEmailInput
{
    To = "[email protected]",
    Subject = "Hello from SDK",
    Body = "<p>Email body</p>"
});

var categories = await client.GetOutlookCategoryNamesAsync();

SDK Components

Client Base

Component Description
ConnectorClientBase Abstract base class for all generated clients β€” provides authentication, retry, OTel tracing, JSON serialization, and SSRF-protected URL resolution
ConnectorClientOptions Configuration for retry count, timeout, exponential backoff, and initial retry delay
ConnectorException Unified exception for connector API failures with ConnectorName, Operation, StatusCode, and ResponseBody

Authentication

Authentication uses Azure.Core TokenCredential directly β€” any credential from Azure.Identity works:

Credential Use Case
ManagedIdentityCredential Azure-hosted apps β€” system-assigned by default when no credential is specified
AzureCliCredential Local development β€” pass explicitly (default no longer probes CLI)
ClientSecretCredential Service principal authentication

HTTP

Component Description
ConnectorHttpClient HTTP client with built-in authentication

Serialization

Component Description
ConnectorJsonSerializer JSON serialization with connector conventions
JsonConverters Custom converters for connector types

Documentation

AI Agent Skills

  • Connection Setup Skill - AI agent workflow for creating Connector Namespace connections, OAuth consent, access policies, and configuring app settings β€” all from within VS Code

Validated Connectors

Connector Status Validated Operations
Azure AD πŸ”„ SDK Generated GetUser, CreateUser, GetGroup, GetGroupMembers, CreateGroup, UpdateUser, CheckMemberGroups
Azure IoT Central πŸ”„ SDK Generated ApplicationsList, DeviceGroupsList, DeviceGroupsGet, DeviceGroupsSet, DevicesGetCloudProperties (pageable)
Azure Monitor Logs πŸ”„ SDK Generated QueryData, QueryDataV2, VisualizeQuery, VisualizeQueryV2
IBM MQ πŸ”„ SDK Generated SendAsync, ReadAsync, ReadAllAsync, ReceiveAsync, ReceiveAllAsync, DeleteAsync, DeleteAllAsync
Office365 βœ… Validated SendEmail, GetOutlookCategoryNames, ExportEmail, CalendarPostItem
Office365 Users βœ… Validated MyProfile, UserProfile, Manager, DirectReports, SearchUser
OneDrive for Business βœ… Validated ListRootFolder, ListFolder, GetFileContentByPath, CreateFile, FindFilesByPath, CreateShareLink
SharePoint βœ… Validated GetAllTables, ListRootFolder, ListFolder, GetFileContentByPath, CreateFile
MS Graph Groups & Users βœ… Validated ListUsers, ListGroupsByDisplayNameSearch, GetGroupProperties
Teams βœ… Validated GetAllTeams, GetChannelsForGroup, PostMessageToConversation
SMTP βœ… Validated SendEmail
Azure Event Grid βœ… E2E Validated TopicTypesList, SubscriptionsList (trigger: CreateSubscription)
Excel Online βœ… E2E Validated GetTables (connectivity confirmed via sdk-test-gateway-prod)
Universal Print βœ… E2E Validated ListRecentShares (returned 0 shares via sdk-test-gateway-prod)
Microsoft Defender ATP βœ… E2E Validated GetAlerts (reached Defender API via sdk-test-gateway-prod; 403 = tenant permissions)
Campfire πŸ”„ SDK Generated ListAccounts, ListRooms, CreateMessage (trigger: OnNewRoom)
ClickSend SMS πŸ”„ SDK Generated SmsSend, CreateList, GetContactLists (trigger: OnSmsInboundAutomation)
Cloudmersive Convert πŸ”„ SDK Generated ConvertDocumentAutodetectGetInfo, ConvertDocumentAutodetectToPdf
Etsy πŸ”„ SDK Generated Ping, PaymentLedgerEntries, PaymentGetEntryID
Excel Online (Business) πŸ”„ SDK Generated CreateTableAsync
Formstack Forms πŸ”„ SDK Generated GetAvailableForms (trigger: OnFormstackFormSubmitted)
FreshService πŸ”„ SDK Generated AddNote, CreateTicket, UpdateTicket (trigger: OnTicketCreated)
Infusionsoft (Keap) πŸ”„ SDK Generated CreateTask, UpdateTask, ListTasks (trigger: OnNewTask)
Insightly πŸ”„ SDK Generated ListTasks, UpdateTask, AddTask (trigger: OnTaskAssignedToMe)
Pipedrive πŸ”„ SDK Generated ListDeals, GetDeal, UpdateDealStatus (trigger: OnTrigNewActivity)
Plivo πŸ”„ SDK Generated MakeCall, ListMessages, SendSMS
Plumsail πŸ”„ SDK Generated AddWatermarkToPdf, RegExpMatch, ParseCsv
Replicon πŸ”„ SDK Generated BulkGetProjectDetails3, CreateProjectOrApplyModifications
Rev.ai πŸ”„ SDK Generated TranscriptionGet, TranscriptionsGet, TranscriptionDelete
Zoho Sign πŸ”„ SDK Generated InvokeAPI, DownloadCompletionCertificate (trigger: OnZohoSignTriggers)
Docuware πŸ”„ SDK Generated GetOrganization, StoreToFileCabinet
Elfsquad Data πŸ”„ SDK Generated GetSchemas, GetEntities
Impexium πŸ”„ SDK Generated GetAbandonedCheckouts, ListAllExhibitors
Jedox OData Hub πŸ”„ SDK Generated Databases, GetCubes
Meeting Room Map πŸ”„ SDK Generated GetCategories, GetCustomLocations
Orderful πŸ”„ SDK Generated ListTransactions
Outlook πŸ”„ SDK Generated GetEmailAsync, SendEmailAsync, DeleteEmailAsync, CalendarGetItemsAsync, ContactGetItemsAsync
PDF.co πŸ”„ SDK Generated HtmlToPdf, UrlToPdf, PdfFiller
Projectplace πŸ”„ SDK Generated ListBoards, CreateCard
Seismic Planner πŸ”„ SDK Generated GetComments, CreateComment
Service Bus πŸ”„ SDK Generated GetQueuesAsync, GetTopicsAsync
Starmind πŸ”„ SDK Generated FindExperts, FindQuestions
StarRez REST V1 πŸ”„ SDK Generated SelectEntry, CreateEntry, UpdateEntry
Tallyfy πŸ”„ SDK Generated GetUserOrganizations, EditTaskDeadline
TextRequest πŸ”„ SDK Generated GetMessagesByContactPhone, SendMessageByPhoneNumber
Ticketmaster πŸ”„ SDK Generated EventsGet, EventsGetDetails
Way We Do πŸ”„ SDK Generated GetAllChecklistInstances, CommentAdd
Word Online (Business) πŸ”„ SDK Generated GetFileSchemaAsync, CreateFileItemAsync, GetSourcesAsync
Azure Automation πŸ”„ SDK Generated CreateJob, GetStatusOfJob, GetJobOutput
Azure Cosmos DB πŸ”„ SDK Generated GetCosmosDbAccountsAsync, CreateDocumentAsync
Azure Data Factory πŸ”„ SDK Generated CreatePipelineRun, GetPipelineRun, CancelPipelineRun
Azure Digital Twins πŸ”„ SDK Generated AddTwin, GetTwinById, QueryTwins
Azure Event Hubs πŸ”„ SDK Generated GetEventHubsAsync, SendEventAsync, SendEventsAsync
Azure Queues πŸ”„ SDK Generated GetMessagesAsync, PutMessageAsync, DeleteMessageAsync, ListQueuesAsync, PutQueueAsync
Azure Tables πŸ”„ SDK Generated GetTableAsync, GetEntitiesAsync, CreateEntityAsync, MergeEntityAsync, DeleteEntityAsync
Azure VM πŸ”„ SDK Generated VirtualMachineGet, VirtualMachineStart, VirtualMachineDeallocate
Key Vault πŸ”„ SDK Generated GetSecret, ListSecrets, EncryptData
Microsoft Bookings πŸ”„ SDK Generated ListBookingsBusinessUserAsAdmin
Microsoft Forms πŸ”„ SDK Generated ListForms, GetFormDetailsById, GetFormResponseById, GetQuestions
Office 365 Groups πŸ”„ SDK Generated ListGroups, AddMemberToGroup, CreateCalendarEvent
Office 365 Groups Mail πŸ”„ SDK Generated ListConversations, CreateConversation, ReplyToAThread
OneNote πŸ”„ SDK Generated GetNotebooks, CreatePageInSection, GetPageContent
Planner πŸ”„ SDK Generated ListMyTasks, CreateTask, UpdateTask
Power BI πŸ”„ SDK Generated ExecuteDatasetQuery, AddRows, RefreshDataset
SigningHub πŸ”„ SDK Generated AttachmentGetAttachments, AttachmentDeleteAttachment
Shifts πŸ”„ SDK Generated ListShifts, ListOpenShifts, GetSchedule
To Do πŸ”„ SDK Generated GetAllTodoLists, CreateToDo, GetToDo
Box πŸ”„ SDK Generated GetFileMetadata, CreateFile, CopyFile, ExtractFolder
DocuSign πŸ”„ SDK Generated CreateEnvelopeFromTemplate, SendEnvelope, GetRecipientStatus, ListEnvelopes
Dropbox πŸ”„ SDK Generated GetFileMetadata, CreateFile, CopyFile, ExtractFolder
Dynamics AX πŸ”„ SDK Generated GetTable, GetItems, PostItem, ExecuteProcedure
Eventbrite πŸ”„ SDK Generated GetCategories, GetOrganizations, GetOrganizationEvents, CreateEvent
FTP πŸ”„ SDK Generated CreateFile, GetFileMetadata, UpdateFile, DeleteFile
GitHub πŸ”„ SDK Generated CreateIssue, GetIssues, CreatePullRequest, MergePullRequest
Google Calendar πŸ”„ SDK Generated ListCalendars, ListEvents, CreateEvent, UpdateEvent
Google Drive πŸ”„ SDK Generated GetFileMetadata, CreateFile, ListFolder, ListRootFolder
Google Tasks πŸ”„ SDK Generated ListTaskLists, CreateTaskList, ListTasks
Jira πŸ”„ SDK Generated ListIssues, CreateIssue, EditIssue, ListProjects
Mailchimp πŸ”„ SDK Generated GetCampaigns, GetLists, AddMembers, Sendcampaign
Monday.com πŸ”„ SDK Generated GetBoards, CreateItem, GetItems, CreateBoard
OneDrive (Personal) πŸ”„ SDK Generated GetFileMetadata, CreateFile, ListRootFolder, FindFiles, CreateShareLink
RSS πŸ”„ SDK Generated ListFeedItems
Salesforce πŸ”„ SDK Generated GetItems, PostItem, PatchItem, ExecuteSoqlQuery
SendGrid πŸ”„ SDK Generated SendEmail, ListRecipientLists, AddGlobalSuppression
Slack πŸ”„ SDK Generated PostMessage, CreateChannel, JoinChannel
SQL Server πŸ”„ SDK Generated GetItems, PostItem, PatchItem, ExecuteProcedure, GetDatabases
Trello πŸ”„ SDK Generated ListCards, CreateCard, ListBoards, ListLists
Twitter πŸ”„ SDK Generated UserTimeline, HomeTimeline, SearchTweet, Tweet
Typeform πŸ”„ SDK Generated ListForms
Webex πŸ”„ SDK Generated SendMessage, GetMessages, GetSpaces, CreateSpace
WordPress πŸ”„ SDK Generated SiteStats, Get, Create, ListSites
Yammer (Viva Engage) βœ… E2E Validated GetNetworks (returned 2 networks via sdk-test-gateway-prod)
Zendesk πŸ”„ SDK Generated PostItem, DeleteItem, PatchItem, SearchArticles

Related Projects

Project Description
Connector SDK Samples Sample Azure Functions demonstrating SDK usage with Office 365, SharePoint, Teams, and more
Connector SDK LSP Language Server Protocol server and VS Code extension for intelligent code assistance when developing with the SDK
Azure Functions Connector Extension Azure Functions host and worker extensions for managed connectors

Regenerating Connectors

Connectors should be regenerated periodically to incorporate Swagger updates:

LogicAppsCompiler.exe ./generated unused --directClient --connectors=office365,servicebus,teams

Releasing a New Version

The version is defined in eng/build/Version.props (VersionPrefix + VersionSuffix). Three ADO pipelines in azfunc/internal handle mirroring, building/signing, and publishing to nuget.org.

See the Releasing a New Version section in the copilot instructions for the full step-by-step procedure, pipeline IDs, version suffix behavior, and common pitfalls.

License

This project is licensed under the MIT License β€” see the LICENSE file for details.

Changes from Previous Version

No structural changes between v0.11.0-preview.1 and v0.12.0-preview.1.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.