SharePoint REST API for Microsoft 365 Developers: When You Still Need It
Microsoft Graph is the default for SharePoint data, but it can't do everything. Here's when the SharePoint REST API is still the right call.
I'm Andrew, a developer, writer, and speaker, and a Principal Software Engineer at AvePoint. These days my focus is agentic engineering and building with AI, though three decades in the Microsoft 365 ecosystem still shape how I think about it. Founder of Voitanos and a 23-year Microsoft MVP, this is where I share the writing, projects, and talks I care about most.



Microsoft Graph is the default for SharePoint data, but it can't do everything. Here's when the SharePoint REST API is still the right call.
A practical, end-to-end guide to single sign-on for Microsoft Teams apps that call Microsoft Graph. Covers the on-behalf-of (OBO) flow, Microsoft Entra ID app registration, the Teams manifest, the …
A comprehensive guide to building apps for Microsoft Teams covering app types, development approaches, SDKs, authentication, deployment, and how to choose the right architecture for your scenario.
A practical guide to Microsoft Graph for Microsoft 365 developers covering what it is, key APIs, authentication, SDKs, webhooks, delta queries, and how to call it from SPFx, Teams apps, and Azure …
A comprehensive guide to Microsoft Entra ID (formerly Azure AD) for Microsoft 365 developers covering authentication flows, app registrations, permissions, tokens, SSO, and how Entra ID underpins …
The practical guide to building Azure Functions for Microsoft 365. Patterns, security, Microsoft Graph, deploy with Bicep and GitHub Actions.
Make F5 launch your whole MCP Apps agent: a dev tunnel on port 3001, MCP_SERVER_URL substitution, a deploy phase, and the task order that makes it work.
Wire an MCP Apps server into a declarative agent: a RemoteMCPServer plugin manifest, static tool declarations, and instructions that drive each widget.
Learn how to add an MCP server with interactive React UI widgets to a Microsoft 365 Copilot declarative agent — from setup to testing with the MCP Inspector.
MCP Apps let an MCP server return a UI widget Copilot renders inline in a sandboxed iframe. Learn how they work and where adaptive cards run out of road.
Customize the Claude Code status line with a script that shows context window fill, your 5-hour session limit, and 7-day quota after every turn.
Join me in NOV+DECin Amsterdam for ESPC 2026! Learn how to get the most value from M365 Copilot when when to use Copilot Studio or using Visual Studio Code!
Join me in Seattle, WA in August 2026 for TechCon365 to get the most value from your Microsoft 365 Copilot investment, Agentic Engineering, & AI!
An Opportunity I Couldn't Pass Up: What This Means for Voitanos.
Not every tedious task deserves AI automation. Here's the test I use to decide what to hand to an AI agent and what stays manual.
My webinar recap: how declarative agents beat Copilot Studio, why the Sydney orchestrator matters, and what you need to start building Copilot extensions.
MCP Apps, embedded knowledge, and the M365 Agents Toolkit plugin just changed declarative agent development. Here's what developers need to know.
Microsoft 365 Copilot supports four agent creation options: SharePoint agents, Agent Builder, Copilot Studio, and declarative agents built with the Microsoft 365 Agents Toolkit (ATK). Each sits on a …
I've been using AI agents in my daily development workflow for a few months, and what I'm doing looks nothing like what most people mean by vibe coding.
Detailed review of Microsoft 365 Agents Toolkit v6.6.0: GCC-M support, embedded knowledge for declarative agents, MCP GA, and 61 templates removed.