Smart Solutions
Free · Open source · MIT licensedUpdated

Copy a SharePoint site or library to another site

Smart Copy is a free, open-source Windows desktop app for SharePoint Online. Copy a document library to another site, move custom lists, list items and modern pages, or copy a whole site in one run — with version history, Created By / Modified By, timestamps, custom column metadata and item-level permissions preserved. Copy within one tenant or between two Microsoft 365 tenants, with identity mapping for people and groups. No PowerShell, no subscription.

  • Copy a library to another site
  • Full version history
  • Item-level permissions
  • Incremental 'if newer' re-runs
  • Excel verification report
Download free (.exe)User GuideGitHub
.NET 8WPF · WindowsMicrosoft Graph APIMIT License

Quick answer

How do I copy a SharePoint site or library to another site?

SharePoint Smart Copy is a free, open-source Windows desktop app that copies files, document libraries, custom lists, list items, modern Site Pages, item-level permissions, or an entire SharePoint Online site to another site — preserving full version history, Created By / Modified By, timestamps and custom column metadata. It uses Microsoft's own SharePoint Migration API and Microsoft Graph, so there's no PowerShell, no SaaS subscription, and your data never leaves the Microsoft cloud.

Its interface supports 30 languages, defaults to the Windows display language, and includes an in-app language selector. Only interface text is translated; SharePoint names, metadata, and copied content stay unchanged.

Scope, stated plainly: Smart Copy copies within one Microsoft 365 tenant or, in Multi-tenant mode, between two tenants — with Identity mapping so authors, editors, person columns and permissions land on the right target accounts. It does not copy from on-premises SharePoint Server or from file shares.

Cost: $0. MIT-licensed open source — no trial, no sign-up, no per-GB or per-seat fee.

How this compares

Copying a library between two sites in the same tenant is a surprisingly poorly served job. "Move to" and "Copy to" in the SharePoint UI move files but drop version history on copy and cannot bring list schema, item-level permissions or Site Pages. Microsoft's SPMT is built for on-premises and file-share sources moving into Microsoft 365, not for site-to-site copies inside a tenant.

Smart Copy calls the same SharePoint Migration API that Microsoft's own tooling uses, which is what makes exact version numbers, original authors and timestamps possible on the target. It is deliberately scoped: SharePoint Online to SharePoint Online, within one tenant or between two tenants. Cross-tenant copies keep full version history and use Identity mapping: a domain swap, a user/group table and CSV import.

Sources

What it does — and what it does not do

Stated plainly so you can rule Smart Copy in or out in ten seconds.

Does

  • Copy document libraries, custom lists, list items, modern Site Pages and whole sites between two sites in the same Microsoft 365 tenant
  • Copy between two different Microsoft 365 tenants with full version history, using Identity mapping to match people and groups
  • Preserve full version history, original Created By / Modified By and timestamps via the SharePoint Migration API
  • Recreate the structure of new lists and libraries: views, content types, list settings, column validation and formatting, document templates and folder defaults
  • Copy item-level permissions and unique role assignments (opt-in)
  • Copy Person/People and Managed Metadata columns, with source-to-target column mapping
  • Re-run incrementally with 'If newer' and verify the result with an independent Verification Report
  • Use the interface in 30 languages, selected from Windows by default or changed inside the app

Does not

  • On-premises SharePoint Server sources — use Microsoft SPMT
  • File shares, Box, Dropbox or Google Drive sources — use ShareGate or AvePoint
  • Teams chats and channel conversations, Planner plans or Exchange mailboxes — out of scope (OneDrive and Teams files are supported)
  • Document Set welcome pages, personal views, and the site title, time zone and regional settings
  • Pre-migration assessment and planning suites, or a vendor support contract

A look inside

A guided six-step wizard.

Native Windows UI — fast, keyboard-friendly, and instantly familiar to SharePoint admins.

SharePoint Smart Copy
SharePoint Smart Copy — Connect to source

Step 1 — Choose Single tenant or Multi-tenant, enter the source site URL, and sign in with your Microsoft 365 account.

Static screenshot — click to enlarge.

Features

A full SharePoint Online migration tool — not just file copy.

Move files, libraries, lists, pages, or an entire site — with custom column metadata and version history intact.

Files, libraries, lists & sites

Copy individual files & folders, entire document libraries, custom lists (or individual list items), modern Site Pages, or migrate a whole site in one run. New lists and libraries keep their structure: columns, views, content types and settings.

Custom column metadata

Custom site columns travel with your content. Mismatched schemas? The Configure Mappings dialog auto-matches columns by name and type, with type-filtered dropdowns for the rest.

Person & People columns

Person and People columns (single or multi-value) are read with full user detail and written using SharePoint claims-format keys — no manual re-entry on the target.

Managed Metadata columns

Taxonomy and TaxonomyMulti columns copy across using Label | TermGuid pairs. Same-tenant term store means term GUIDs match — no term remapping required.

Version history preserved

Copy the complete version history for every file, or cap to the latest N versions. Major and minor versions, with original timestamps and editors.

Author & date metadata

Created By, Modified By, Created Date, and Modified Date travel with each version of each file — not just the latest content.

Incremental copy (If newer)

Three-way overwrite control: Skip, Overwrite, or 'If newer' — re-run the same job and only files whose source is newer than the target are recopied.

Modern Site Pages

Copy .aspx pages between sites with optional web part URL remapping — internal links get rewritten from the source domain to the target.

Item-level permissions

Optionally copy unique role assignments on libraries, lists, folders, items, and pages — broken inheritance and per-item sharing are reproduced on the target.

Whole-site migration

Site scope copies every document library and custom list — and optionally the Quick Launch navigation — from a source site to a target site in one operation.

Parallel transfers

Run 1–16 transfers simultaneously. Tune per run to balance speed against SharePoint throttling on large batches.

Automatic throttle handling

HTTP 429 responses from SharePoint are handled automatically — the app honors Retry-After, waits with jitter, and retries up to 5 times so large jobs complete unattended.

Real-time progress

Per-item status (Pending, Copying, Success, Failed, Skipped) with elapsed time updating every 400 ms, plus All / Failed / Skipped filter chips on the copy log.

CSV migration reports

Every run produces a per-item success / failed / skipped summary you can export to CSV for audits and change records.

Independent verification report

After any run, click Verify in History to re-scan source and target with fresh Graph API calls and export an Excel workbook confirming every file matches — content hash for most files, modified-date check for Office/Outlook formats that SharePoint re-serializes. Optional Deep Verify downloads any flagged .docx/.xlsx/.pptx/.vsdx pair and compares their internal content byte-for-byte, ignoring only the metadata parts SharePoint itself rewrites (Doc IDs, custom properties).

Full run history

Every run is saved locally. Browse previous runs, re-export their CSVs, run a Verification Report, or delete them — all from inside the app.

Two copy engines

Migration API mode for exact version numbers & dates server-side, or Enhanced REST mode when you don't have Site Collection Admin rights.

Your tenant, your tokens

Uses your own Azure AD app registration with delegated Graph permissions. No third-party servers, no stored passwords.

30-language interface

Defaults to the Windows display language, with an in-app selector when you want a different language. Unsupported languages fall back to English; SharePoint names, metadata, and copied content stay unchanged.

How it works

From sign-in to CSV report in six steps.

  1. 01

    Connect source

    Enter your source site URL and sign in with your Microsoft account in the browser popup.

  2. 02

    Pick what to copy

    Choose a scope: Files & Folders, Libraries & Lists, Entire Site, or Site Pages. Then check the items in the browse tree.

  3. 03

    Pick target

    Connect the destination site and pick where content should land — a folder, a list, or the site root for a full-site copy.

  4. 04

    Configure options & mappings

    Choose overwrite behavior, version history, parallel transfers, and map custom columns when source and target schemas differ.

  5. 05

    Run the migration

    Click Start Copy. Watch live progress per item and cancel any time without corrupting the destination.

  6. 06

    Review the report

    See a per-item success / failed / skipped summary and export it to CSV for your records.

Options

Sensible defaults. Tunable when it matters.

If file exists: Skip / Overwrite / If newer

Three-way control. Skip leaves matching target files alone. Overwrite replaces them. 'If newer' compares the source's last-modified date to the target and copies only when the source is more recent — files already up to date are reported as Skipped.

Copy version history

Copies SharePoint version history and metadata alongside each file. Requires versioning to be enabled on the source library, and Edit-or-higher permission to read history.

Copy all versions / Latest X

When Copy version history is on, choose to copy the complete history or only the X most recent versions per file — useful for keeping target sites lean.

Copy permissions

Optionally reproduce unique role assignments (broken-inheritance ACLs) on libraries, lists, folders, items, and Site Pages on the target. Inherited permissions are left intact so the destination's site-level governance still applies.

Copy custom column values

Copy text, choice, date, number, lookup, Person/People, and Managed Metadata columns. Opens the Configure Mappings dialog, which auto-matches on open and shows only type-compatible target columns in each dropdown.

Structure to copy (Library and Site scope)

One checkbox for each kind of structure Smart Copy recreates on new lists and libraries: views, list settings, content types and their templates, column validation and formatting, the library template and folder defaults, and in Site scope site columns, site content types, navigation and site settings. All on by default. Untick 'Copy files and list items' to copy structure only, with no content.

Parallel copies (1–16)

Number of files transferred simultaneously. The default of 4 is a good balance; raise to 8 or 16 on a fast connection for large batches. HTTP 429 throttling is handled automatically with Retry-After-aware backoff.

Prove the copy landed

Independent Verification Report

After any run, click Verify in History to re-scan source and target with fresh Microsoft Graph calls and export an Excel workbook. Compare also works on its own — pick any two folders or libraries, no copy run needed.

  • Content hash for most files; modified-date check for Office and Outlook formats
  • Optional Deep Verify compares Office and Visio file internals
  • Overview, Source, Target, Comparison and Scan Errors sheets
See the full walkthrough
Smart Copy Compare screen verifying source and target

Copy history

Every run, saved automatically.

Every completed copy is stored locally and accessible from the History button. Browse previous runs in reverse chronological order, see source and target URLs at a glance, and dive into per-file results for any run.

  • Run summaries with succeeded / failed / skipped counts and total duration.
  • Per-file detail for any historical run, including error messages.
  • Verification Report — click Verify on any saved run to independently re-scan source and target with fresh Graph API calls and export an Excel workbook confirming what actually matches (content hash for most files, modified-date check for Office and Outlook formats, plus an optional Deep Verify that downloads any flagged .docx/.xlsx/.pptx/.vsdx pair and compares their internal content directly).
  • Re-export to CSV at any time — perfect for audit trails and change records.
  • Delete old runs you no longer need to keep your history clean.
Copy History showing previous runs

Included with Smart Copy

Companion tools for the rest of your move

Moving more than SharePoint content? The same free app includes two separate wizards, each with its own walkthrough.

Security

Built on Microsoft's identity platform. Nothing else.

All communication is with Microsoft. Your files never leave Microsoft's infrastructure, and your credentials never leave your browser.

OAuth 2.0 / MSAL sign-in

Authenticates against Microsoft's standard login page — the same one you use for SharePoint and Teams. The app never sees your password.

No stored credentials

Access tokens live in memory for the session. Optional refresh tokens use the Windows Credential Manager — same store as Microsoft Office.

Delegated permissions

Acts as the signed-in user. It can never touch a site, library, or file you couldn't already access in your own browser.

Your own app registration

You create and own the Azure AD registration in your tenant. Your IT team controls permissions and can revoke access at any time.

No external servers

Traffic flows directly between your machine and Microsoft Graph. No intermediate servers.

File content never on disk

Files stream directly from source to target through Graph. Only filenames and statuses are written locally for the copy report.

What's stored locally? Only application settings (%AppData%\SharePointSmartCopy\settings.json) and copy history reports (filenames and status only — no file content). The MSAL token cache is managed by Microsoft in the Windows Credential Manager.

Setup

One Azure AD app registration, then you're done.

The app uses delegated Microsoft Graph permissions, so it acts as the signed-in user. You'll need a Global Admin or SharePoint Admin to grant consent once.

Azure AD app registration

  1. 1. Go to portal.azure.com → Azure Active Directory → App registrations → New registration.
  2. 2. Name it (e.g. "SharePoint Smart Copy").
  3. 3. Authentication → Add a platform → Mobile and desktop applications. Add redirect URI:
    http://localhost
  4. 4. API permissions → Add a permission → Microsoft Graph → Delegated:
    Sites.ReadWrite.AllFiles.ReadWrite.All
  5. 5. Add another permission → SharePoint → Delegated:
    AllSites.FullControl

    Required for Migration API mode only. Omit if you'll use Enhanced REST exclusively.

  6. 6. Click Grant admin consent.
  7. 7. Copy the Application (client) ID from the Overview page.

Download or build

Download the latest release .exe to get started in seconds — or clone the source, inspect it, and build it yourself.

Building from source requires the .NET 8 SDK.

# Clone and run
git clone https://github.com/sregan1/SharePoint-Smart-Copy
cd SharePoint-Smart-Copy/SharePointSmartCopy
dotnet restore
dotnet run

First-time configuration

  1. Launch the app and click ⚙ Settings
  2. Paste your Client ID
  3. Set Tenant ID to your domain (e.g. contoso.onmicrosoft.com) or leave as common
  4. Click Save

Origin

How SharePoint Smart Copy started.

SharePoint Smart Copy was created to fill a gap. As a consulting team working with multiple clients, we often needed a simple way to move files between SharePoint sites, while keeping the metadata, version history, and the version history metadata — without the yearly costs of full migration tools.

SharePoint Smart Copy was designed to bridge the gap between migrations and everyday file movement with a lightweight, fast, and easy-to-use approach.

FAQ

Everything you need to know.

Compare

Smart Copy vs ShareGate vs AvePoint vs SPMT

The five things SharePoint admins actually compare when picking a migration tool.

Smart Copy vs ShareGate vs AvePoint vs SPMT. The five things SharePoint admins actually compare when picking a migration tool.
 Smart CopyShareGateAvePoint FlyMicrosoft SPMT
PriceFree$5,995/yrSubscription, quoteFree
HostingLocal Windows appLocal + vendor cloudVendor cloudLocal Windows app
SetupAzure AD app + .exe, ~10 minVendor license + installVendor account + agentDownload .exe
SPO → SPO with full version historyLimited
Item-level permissions copy
Person/People & Managed Metadata columnsLimited
Incremental 'if newer' re-runs
Copy Microsoft Forms (questions, branching, settings)Not listed
Rewrite Power Automate flows for a new tenant or siteYes (Fly for Power Platform)Converts some on-premises workflows
CSV / Excel report export
LicenseMIT open sourceCommercialCommercialMicrosoft proprietary

Support: every Smart Solutions tool comes with free community and GitHub support, and we also offer paid support plans for hands-on help.

Comparisons

Shopping ShareGate or AvePoint?

See how a free, open-source tool stacks up against the paid SharePoint migration suites.

Ready to move some files?

Grab the latest executable from Github and you're copying with metadata and version history in minutes.

Need expert hands on deck?

Let our team plan and run your SharePoint migration

Full-service file and metadata migrations across sites, tenants, or from on-premises to SharePoint Online, from planning and test runs to verification and cutover.

Free · MIT license · no sign-up

Get your first result in about 10 minutes

Download SharePoint Smart Copy, follow the step-by-step install guide, and run it against a real site the same afternoon. Nothing to license, nothing to renew.

  1. Download the Windows app from the latest release.
  2. Run it and sign in to your Microsoft 365 tenant.
  3. Pick a source and target site, then copy.
Install guideDownload latest releaseView on GitHub
Get notified when SharePoint Smart Copy updates

No marketing spam. One short email when a new release ships. You can unsubscribe anytime.

Was this page helpful?

One click. No form, no email address.

Missing something in SharePoint Smart Copy? Feature requests and bug reports go straight to the developer on GitHub — no account needed to read, free account to post.

Request a feature