Import from Channex
Migrations · POST /v1/migrations/channex
Import from Channex
POST
/v1/migrations/channexNote
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
apiKeystringRequiredYour Channex API key (the user-api-key value). Used for this request only and not stored. Repull only reads from Channex.
environmentstringDefault: productionproduction (app.channex.io) or staging (staging.channex.io).
dryRunbooleanDefault: falseMatch and report without writing anything.
AI