Docs/API Reference/Migrations

Import from Channex

Migrations · POST /v1/migrations/channex

Import from Channex

POST/v1/migrations/channex

Note

Every Channex property, room type, rate plan, webhook and channel id keeps resolving, unchanged, on the Channex-compatible API (base URL https://api.repull.dev/channex/api/v1), where the same import is POST /migration/import. Webhooks are created inactive until POST /migration/cutover there. Safe to re-run: complete: false means the time budget ran out, and the next run continues.

Request

curl -X POST https://api.repull.dev/v1/migrations/channex \
  -H "Authorization: Bearer $REPULL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "apiKey": "YOUR_CHANNEX_KEY", "environment": "production", "dryRun": true }'

Response

{
  "data": {
    "id": "6b0f6c55-2f0e-4d0a-9f43-1f3c2b7d9e10", "environment": "production", "dryRun": false, "complete": true,
    "summary": {
      "properties": { "matched": 11, "created": 1, "needsAction": 0 },
      "roomTypes": { "matched": 37, "created": 2, "needsAction": 0 },
      "ratePlans": { "matched": 39, "created": 14, "needsAction": 0 },
      "webhooks": { "matched": 0, "created": 3, "needsAction": 0 },
      "signingKeys": { "matched": 0, "created": 0, "needsAction": 1 },
      "channels": { "matched": 9, "created": 3, "needsAction": 0 },
      "bookings": { "read": 214, "linked": 198, "waiting": 16 }
    },
    "warnings": [],
    "nextSteps": [ "Install the secret of signing key 3c1e… with POST /signing_keys/{id}/rotate", "Switch the channels marked required, then POST /migration/cutover" ]
  }
}

Body Parameters

apiKeystringRequired

Your Channex API key (the user-api-key value). Used for this request only and not stored. Repull only reads from Channex.

environmentstringDefault: production

production (app.channex.io) or staging (staging.channex.io).

dryRunbooleanDefault: false

Match and report without writing anything.

AI