Buy numbers
/numbersBuy 1 to 10 US local numbers found with GET /numbers/available, with products turned on. The purchase finishes asynchronously: the response is a provisioning purchase, and number.purchase.completed or number.purchase.failed fires when it settles (or poll GET /numbers/purchases/{purchaseId}). Retrying with the same Idempotency-Key and body returns the same purchase. An SMS number sends texts once it's assigned to a provisioned 10DLC campaign, which Blooio does automatically when the organization has one. OAuth apps need numbers:manage.
Headers
AuthorizationRequiredstringYour API key, sent as a bearer token: Authorization: Bearer <api_key>. Editing this stays in sync with the API key box on the right.
Idempotency-KeyRequiredstringUnique key that makes the purchase safe to retry.
Body parameters
JSONphone_numbersRequiredstring[]US local numbers in E.164 format, as returned by GET /numbers/available.
productsRequiredTelecomProduct[]Products to turn on for every number in the purchase.
Returns
dataoptionalNumberPurchase
dataoptionalNumberPurchasepurchase_idRequiredstringPurchase id (pur_...).
statusRequiredstringcompleted once every number is an active channel; failed when the carrier refused the order.
"provisioning""completed""failed"phone_numbersRequiredstring[]productsRequiredTelecomProduct[]erroroptionalobjectPresent on a failed purchase.
erroroptionalobjectPresent on a failed purchase.
codeoptionalstringcreated_atRequiredintegerEpoch ms.
Response codes
Sends a live request with your values and shows the real response below. Your key is stored only in this browser.
curl -X POST https://api.blooio.com/v4/numbers \{ "data": { "purchase_id": "obj_a1b2c3d4", "status": "provisioning", "phone_numbers": [ "+15551234567" ], "products": [ "sms" ], "error": { "code": "number_unavailable" }, "created_at": 0 }}