API Reference
Base URL
Your API base URL is https://{tenant}.migratedata.app/api/v1 — replace {tenant} with your organization's subdomain.
Authentication
All API requests require a JWT bearer token in the Authorization header. Obtain a token by calling POST /api/v1/auth/login with your email and password.
Key Endpoints
Connections
GET /connections— List all platform connectionsPOST /connections— Create a new connectionDELETE /connections/{id}— Remove a connection
Discovery
POST /discovery/scans— Start a new discovery scanGET /discovery/scans— List all scansGET /discovery/scans/{id}— Get scan results
Migrations
POST /migrations/jobs— Create a migration jobGET /migrations/jobs— List all jobsGET /migrations/jobs/{id}— Get job detailsPOST /migrations/jobs/{id}/start— Start a jobPOST /migrations/jobs/{id}/pause— Pause a jobPOST /migrations/jobs/{id}/resume— Resume a jobPOST /migrations/jobs/{id}/cancel— Cancel a jobDELETE /migrations/jobs/{id}— Delete a job (terminal status only)
Delta Sync
POST /delta-sync/jobs— Create a delta sync jobGET /delta-sync/jobs— List delta sync jobsPOST /delta-sync/trigger-all— Trigger all active syncs
Reconciliation
POST /reconciliation/jobs/{id}/run— Run reconciliationGET /reconciliation/jobs/{id}/report— Get reconciliation report
Billing
GET /billing/quota— Get current usage and quota statusPOST /billing/checkout— Create a Stripe checkout session
Rate Limits
API rate limits vary by plan: Starter (100 req/min), Professional (500 req/min), Enterprise (2,000 req/min). Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response.
Webhooks
Configure outgoing webhooks in Settings → Webhooks to receive real-time notifications for events like migration.started, migration.completed, migration.failed, migration.paused, and item.failed.