Getting started with SPSync
First syncs on the desktop app and SPSync in your Azure: install, sign in, permissions and the first replication, end to end.
Most people start with one list. It is usually the one a Power BI report keeps timing out on, or the one a developer has been asked to put behind a small app, and they want to know what the first hour with SPSync involves before anyone commits to more.
SPSync is set up with you on a call, against your own tenant, and that first session is also the install. We get the desktop app, the command line or both running on your machine and talk through which one fits how your team works. The desktop app runs on Windows 10 and 11 and on Apple Silicon Macs, and the command line is a separate install.
After that the steps are the same in every edition, because they all run one replication engine. You sign in with your Microsoft account, which asks for Sites.Read.All on your own behalf. Pick a site and tick the lists and libraries you want, or choose the whole site so a list someone adds next month is picked up as well. Then connect a database, test the connection and start the first run.
The first run is a full load. SPSync creates a table for each list, a child table for each multi-value column and a shared sp_users table for people, then copies every item. Each run after that reads only the items that changed since the previous one, every five minutes by default. A reconcile, weekly by default and configurable, compares the copy with the list in full, which gives you your own check that the two agree and a clean way to catch up after an outage on your side or Microsoft's.
Two things are worth settling before the call. If you want unattended sync scoped to named sites with Sites.Selected, a tenant administrator has to approve it once per site or list, and the one-page admin pack is written for that conversation. The other is direction. SPSync writes to your database and never back to the list, so an app that needs to change SharePoint keeps its own route for that.
To read ahead, the setup guide lists every command for the command line, and how it works shows the whole flow on one page. If your administrator will want to see the permissions first, admin permissions explains each one in plain terms.
Start here
- Your first SharePoint replication, start to finish
This comes first because it follows one list into one database, from sign-in to the second run.
- Desktop app, command line or Azure: which to start with
Choosing an edition is easier once you have watched one replication run from sign-in to the second round.
- Seven steps from a SharePoint list to a SQL Server table
The SQL Server walkthrough shows each step in the desktop app and on the command line side by side, which helps when you later move to a server.
All posts on this topic
- Mirrored, copied, synced or replicated: what each word means for a SharePoint list
Mirror, sync, copy and replicate mean four different things for a SharePoint list in 2026. What Microsoft means by each, and which one gets your list into SQL.
- Desktop app, command line or Azure: which to start with
The three SPSync editions run one engine and write the same tables. Who runs each, where its state lives, how it is scheduled and how a licence counts it.
- Your first SharePoint replication, start to finish
One list, from sign-in to a table you can query: Sites.Selected, picking the list, SQLite or Postgres, the first full load, the second run and checking row counts.
Other topics on the blog
Frequently asked questions
Does SPSync change anything in SharePoint?
No. It reads through Microsoft Graph with the permissions you grant and installs no agent, add-in or app inside SharePoint. There is no code path that creates, updates or deletes a SharePoint item.
How current is the copy?
A full load first, then deltas on the schedule you set, as often as every few minutes, with a reconcile behind it (weekly by default, and configurable). The reconcile is a full comparison that confirms SharePoint and your database still match, and catches you back up if your own server or Microsoft 365 has had an outage. You can also force one with the command-line tool, which is a separate install from the desktop app.
Do I need a tenant administrator to get started?
Not for a first run. Signing in asks for Sites.Read.All on your own behalf, which any user can grant unless your tenant requires admin consent for every app. Unattended sync with Sites.Selected does need an administrator, once per site or list; admin permissions explains each option.