API

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 connections
  • POST /connections — Create a new connection
  • DELETE /connections/{id} — Remove a connection

Discovery

  • POST /discovery/scans — Start a new discovery scan
  • GET /discovery/scans — List all scans
  • GET /discovery/scans/{id} — Get scan results

Migrations

  • POST /migrations/jobs — Create a migration job
  • GET /migrations/jobs — List all jobs
  • GET /migrations/jobs/{id} — Get job details
  • POST /migrations/jobs/{id}/start — Start a job
  • POST /migrations/jobs/{id}/pause — Pause a job
  • POST /migrations/jobs/{id}/resume — Resume a job
  • POST /migrations/jobs/{id}/cancel — Cancel a job
  • DELETE /migrations/jobs/{id} — Delete a job (terminal status only)

Delta Sync

  • POST /delta-sync/jobs — Create a delta sync job
  • GET /delta-sync/jobs — List delta sync jobs
  • POST /delta-sync/trigger-all — Trigger all active syncs

Reconciliation

  • POST /reconciliation/jobs/{id}/run — Run reconciliation
  • GET /reconciliation/jobs/{id}/report — Get reconciliation report

Billing

  • GET /billing/quota — Get current usage and quota status
  • POST /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.