01
Estimate
Tell us the size of the source, get the price before anything moves. The estimate uses the same rate card the meter bills from.
2,000,000 items · 500 GB → $126.96 (~80.3 compute-hours)
Spec 00 — site-to-site migration
S2Stools moves SharePoint sites 1:1 — version history, authors, timestamps, permissions, attachments, even the notebook — metered to the byte and never billed twice.
Sign in with Entra ID · first site estimate is free
/sites/marketing · source
/sites/marketing-new · faithful copy
Spec 01 — process
01
Tell us the size of the source, get the price before anything moves. The estimate uses the same rate card the meter bills from.
2,000,000 items · 500 GB → $126.96 (~80.3 compute-hours)
02
The engine walks the whole site and reports the plan — lists, pages, permissions, versions — and writes nothing.
"DryRun": true — plan only, write nothing
03
Runs are resume-safe: a restart continues where it stopped, skips what's done, and never copies an item twice. Cancel is one click, cooperative.
resume=true → completed steps skipped · cost unchanged
Spec 02 — fidelity
Most tools move files. S2Stools moves the record — the metadata trail your compliance team actually cares about.
Full version chains are replayed oldest-to-newest, each stamped with its original editor and date.
File.Versions → replayed v1…vN
Created/Modified and Created by/Modified by survive the move — not replaced by the migration account.
system fields stamped · no version bump
Broken-inheritance items keep their own grants; site groups and M365 group claims are remapped to the target.
principals mapped source → target
List-item attachments travel with their items, added before the final metadata stamp so dates stay true.
AttachmentFiles copied per item
Quick launch arrives without duplicate or dead links, and the site notebook is renamed for its new home.
system links stripped · notebook retitled
Taxonomy columns, content types, and term groups are extracted together so nothing is silently dropped.
Fields + ContentTypes + TermGroups
Spec 03 — metering
Every run is metered per GB moved, per compute-hour, per 1,000 items. Resumed runs are deduplicated at two layers — you are never billed twice for the same work.
$0/mo
Most teams
$49/mo
$199/mo
$999/mo
On paid plans, overage beyond the included allowance is metered per GB, per compute-hour, and per 1,000 items at the plan's rate — Free is hard-capped instead. Set a per-run budget and the run pauses before it passes it.
Spec 04 — isolation
// the API, refusing a pasted secret
POST /v1/migrations → 422 Unprocessable Entity "Source.Auth.ClientSecret.ClientSecret: inline secrets are not accepted — use a Key Vault reference."
Estimate is free. Dry run writes nothing. The meter only counts what actually moves.