When to use this
Bulk provisioning is designed for:- Migrations — moving a large subscriber base from another platform to kurnl
- New building activations — activating an entire MDU building at once when all units are pre-wired
- Batch imports — provisioning a list of new subscribers from a CSV or external system
How it works
Bulk provisioning is asynchronous. You submit a batch, kurnl returns abatch_id immediately, and provisioning runs in the background. You poll the batch status endpoint to track progress.
Submit a batch
Poll for status
status is "completed" or "completed_with_errors".
Handling partial failures
Individual subscriber failures don’t stop the rest of the batch. If a subscriber fails (e.g. invalid location hash, duplicate subscription), their entry inresults shows "status": "failed" with an "error" field.
Limits
| Limit | Value |
|---|---|
| Max subscribers per batch | 100 |
| Concurrent batches | 3 |
| Batch result retention | 48 hours |
Migration checklist
Before running a bulk migration:Map location hashes
Every subscriber needs a valid
location_hash corresponding to a kurnl switch port. Work with your kurnl account manager to get a mapping from your building/unit records to kurnl location hashes.Validate plan versions
Confirm your
plan_version_id values are active. Expired plan versions will cause the entire subscriber entry to fail.Test with a small batch
Run a batch of 3–5 subscribers first and verify they provision correctly before running the full migration.
Run in off-peak hours
Large batches generate significant switch SSH traffic. Schedule migrations during low-traffic periods.