--job {path-to-json-file}
A JSON job specification to use. A typical example would be:
Run any migration from a JSON file. Drop it in CI/CD, schedule it, audit it. The full UI feature set is available headless. No exceptions.
Every option you can click is also a JSON key. No second-class headless API.

One command, one JSON file:
By default, every table from every source moves to the target. Want to copy a subset? List them in the JSON. Need per-table customization? It's per-table in the JSON, too. Multi-source migrations use a Sources array instead of a single Source. The docs cover the rest.
Declarative JSON beats clicking through tabs. Every customization is right there in front of you. No hunting through screens to remember what was set last.
When a teammate picks up the project, the file tells them everything they need to know in five minutes.
And because it's a file, it goes in source control. Code review, audit trail, and rollback for free.

SQL Server authentication
{
"SqlServer": {
"Server": "{{server}}",
"Database": "{{database}}",
"Username": "{{username}}",
"Password": "{{password}}"
}
}Run a job and exit. Built for automated migrations and CI/CD pipelines.
A JSON job specification to use. A typical example would be:
Run Omni Loader in a distributed cluster mode. Omni Loader becomes a cluster orchestrator and waits for agents to connect to it.
Listen for incoming connections. A typical example would be:
In cluster mode, this is a public orchestrator IP:port combination that will be sent to agents when they connect. Agents will send data to the API on specified port.
In console mode and CI/CD workflows, you can activate Omni Loader even without firing up the GUI.
The operationalization problem
A successful pilot proves the path. Production asks a different set of questions: Which settings were used? Who approved them? Can the same job run in staging tonight and production Saturday? What will the scheduler see if it fails?
If the answers live in screenshots, operator memory, and a runbook full of clicks, the migration is not automated. It is merely unattended between manual steps.
Capture the complete migration in a reviewable file so the same intent survives environments, schedules, handoffs, and audits.
You are here when…
Source, target, selection, mappings, and overrides need to be visible in a pull request before the production window begins.
A scheduler or deployment pipeline—not a person keeping a browser open—should start the run and receive a useful exit result.
Environment refreshes, rehearsals, phased migrations, and many-source programs need the same contract to run more than once.
Teams compare screenshots, transcribe values into tickets, and discover during a handoff that one table had a special filter nobody documented. Reproducing the job means reproducing the operator’s memory.
Define sources, targets, table selection, mappings, performance choices, and overrides in JSON. Run the file with the console, keep it in source control, and give automation structured logs and an exit status it can act on.
Use this capability when
Progress you can see
Treat migration configuration like deployment configuration: diff it, approve it, version it, and roll it back.
A teammate can understand what will run without reconstructing choices from a UI session.
Headless execution keeps table selection, mappings, overrides, and deployment options instead of becoming a reduced second interface.
The command starts the process. The durable value is the specification beside it: a readable statement of what moves, where it goes, which exceptions apply, and what another operator can safely run again.
Bring a real source and target. We'll scope the migration and show you live throughput on your data.