Migrations

Connect your domain: adds it to the project, checks DNS and ownership and returns exactly which records to change and which to keep

post/migrations/{migrationId}/cutover

Request

  • Base URL: https://hostingsurge.com/api/v1
  • URL: https://hostingsurge.com/api/v1/migrations/{migrationId}/cutover
  • Auth: one of:
    • HTTP bearer
    • API key in cookie __Host-hs_session

Path parameters

migrationIdstring uuid required
Example:3f2b8a4e-5c1d-4e8f-9a7b-2c6d1e0f4a5b

Request body

hostnamestring

The domain that should serve the imported site

hostnamesstring[]

Several domains at once; the first is the primary one

allboolean

Every domain the old host served (analysis.domains), in one action

confirmMailboolean

The user read the mail check (POST /migrations/{id}/mail-check) and confirms its risks: mail on the old server, or records that follow the website and would break mail unless fixed first. Without it a domain whose mail is at risk is refused (mail_at_risk, with the check in details.mailCheck). Never set it without the user's confirmation

skipFinalSyncboolean

Vercel/Heroku imports that moved databases: connect the domain without the final copy (POST /migrations/{id}/final-sync). What your app wrote to the old databases since the first copy then stays there (finalSync.dataAsOf), and the import keeps listing them under oldHost. Without it, the first domain is refused (final_sync_required) until a final copy is done

Response

Cutover plan and status

idstring uuid required
organizationIdstring uuid required
kind'git' | 'vercel' | 'netlify' | 'heroku' | 'wordpress' | 'database' | 'static-snapshot' | 'cpanel' | 'sftp' | 'php' | 'email' required
state'draft' | 'analyzing' | 'review' | 'importing' | 'verifying' | 'preview_ready' | 'cutover' | 'live' | 'failed' | 'canceled' required
namestring required
sourceobject required

non-secret source summary

projectIdstring uuid nullable required
databaseIdstring uuid nullable required
previewUrlstring nullable required
pushDeploy'github_app' | 'off'

Git-linked imports (git, and vercel/netlify/heroku from a repository): github_app: every push to the branch deploys through the organization's GitHub App installation; off: pushes do not deploy by themselves until the App covers the repository or the project's push-to-deploy webhook is added to it (audit F10)

envLaterstring[]

variables left without a value when the import started (StartMigrationInput.envLater)

envPendingstring[]

GET /migrations/{id}: the envLater variables the project still does not have; set them under its environment variables, then redeploy

valuesExpiredboolean

review: the variable values read from the old host were kept for 24 hours and are gone; analyze again (with a new token) before starting

cancelRequestedboolean required
createdAtstring required

ISO-8601 timestamp

updatedAtstring required

ISO-8601 timestamp

finishedAtstring nullable required

ISO-8601 timestamp

expiresAtstring required

ISO-8601 timestamp

Changes

No recorded changes to this operation across all 1 revision of this API.