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
If you need to provision more than 100 subscribers, split them into multiple batches. You can submit the next batch as soon as the previous one is accepted (you don’t need to wait for completion).
Migration checklist
Before running a bulk migration:1
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.2
Validate plan versions
Confirm your
plan_version_id values are active. Expired plan versions will cause the entire subscriber entry to fail.3
Test with a small batch
Run a batch of 3–5 subscribers first and verify they provision correctly before running the full migration.
4
Run in off-peak hours
Large batches generate significant switch SSH traffic. Schedule migrations during low-traffic periods.
5
Handle failed entries
After the batch completes, process failed entries individually. Log the errors, fix the root cause, and resubmit.