BEE-SMS Rental Number API Documentation

The Rental Number API lets you programmatically purchase and manage long-term virtual numbers. All requests are GET-based and require your API Token.

Protocol Description

All requests should go to https://api.bee-sms.com

All requests must have an API Token as a parameter "token"

Search for country and service code

List country code

List service code


List available rental services

GET - https://api.bee-sms.com/v1/rental/services?token=$token

Parameters

FieldLocationTypeRequiredDescription
tokenqueryStringYesYour API Token

Result

FieldTypeDescription
codeNumberResponse status
messageStringResponse description
dataArrayList of available services

Columns of data

FieldTypeDescription
codeStringService code
nameStringService name
imageStringService image

Success

{
  "code": 200,
  "message": "Operation Success",
  "data": [
    {
      "code": "tg",
      "name": "Telegram",
      "image": "https://example.com/telegram.png"
    }
  ]
}

Possible Errors

{
  "code": 401,
  "message": "Not yet logged in or certificate has expired"
}

List rental prices

GET - https://api.bee-sms.com/v1/rental/prices?token=$token&service=$service_code&area=$area_code

Parameters

FieldLocationTypeRequiredDescription
tokenqueryStringYesYour API Token
servicequeryStringOptionalService Code
areaqueryStringOptionalCountry / Area Code

The service and area parameters must have at least one

Result

FieldTypeDescription
codeNumberResponse status
messageStringResponse description
dataArrayList of price data

Columns of data

FieldTypeDescription
service_codeStringService code
service_nameStringService name
service_imageStringService image
area_codeStringArea code
area_nameStringArea name
area_imageStringArea image
durationsArrayRental duration options for this service-area

Columns of durations

FieldTypeDescription
daysNumberDuration in days
amountNumberBase price in cents (e.g., 100 cents = $1.00)
actual_amountNumberYour price after loyalty discount, in cents
qtyNumberAvailable number count

Success

{
  "code": 200,
  "message": "Operation Success",
  "data": [
    {
      "service_code": "tg",
      "service_name": "Telegram",
      "service_image": "https://example.com/telegram.png",
      "area_code": "us",
      "area_name": "United States",
      "area_image": "https://example.com/us.png",
      "durations": [
        {
          "days": 30,
          "amount": 1500,
          "actual_amount": 1425,
          "qty": 24
        }
      ]
    }
  ]
}

Possible Errors

// Both the service and area parameters are missing.
{
  "code": 400,
  "message": "Invalid Parameter"
}
{
  "code": 401,
  "message": "Not yet logged in or certificate has expired"
}

Purchase a rental number

GET - https://api.bee-sms.com/v1/rental/purchase?token=$token&service=$service_code&area=$area_code&duration=$duration

Parameters

FieldLocationTypeRequiredDescription
tokenqueryStringYesYour API Token
servicequeryStringYesService Code
areaqueryStringYesCountry / Area Code
durationqueryStringYesRental duration in days
auto_renewqueryBooleanNoEnable automatic renewal before expiry
max_amountqueryStringNoNo number will be purchased if the price exceeds this amount, unit cents (e.g., 100 cents = $1.00)

Result

FieldTypeDescription
codeNumberResponse status
messageStringResponse description
dataObjectRental order data

Columns of data

FieldTypeDescription
order_idStringRental order ID
dialing_codeStringCountry dialing code
mobile_numberStringAssigned phone number (without dialing code)
area_codeStringArea code
area_nameStringArea name
service_codeStringService code
service_nameStringService name
durationNumberRental duration in days
rental_start_atStringRental start time (ISO 8601)
rental_end_atStringRental expiry time (ISO 8601)
actual_amountNumberAmount actually charged after discount, in cents
amountNumberOriginal price before discount, in cents
is_auto_renewBooleanWhether auto-renewal is enabled
create_atStringOrder creation time (ISO 8601)

Success

{
  "code": 200,
  "message": "Operation Success",
  "data": {
    "order_id": "3541517119212500001",
    "dialing_code": "1",
    "mobile_number": "4155552671",
    "area_code": "us",
    "area_name": "United States",
    "service_code": "tg",
    "service_name": "Telegram",
    "duration": 30,
    "rental_start_at": "2025-01-01T00:00:00Z",
    "rental_end_at": "2025-01-31T00:00:00Z",
    "actual_amount": 1425,
    "amount": 1500,
    "is_auto_renew": false,
    "create_at": "2025-01-01T00:00:00Z"
  }
}

Possible Errors

{
  "code": 401,
  "message": "Not yet logged in or certificate has expired"
}
{
  "code": 50001,
  "message": "Balance not enough"
}
{
  "code": 50111,
  "message": "No number available, please try again later."
}
{
  "code": 50115,
  "message": "Failed to order because the price exceeded the maximum price."
}
{
  "code": 50302,
  "message": "Rental order not found."
}

List your rental numbers

GET - https://api.bee-sms.com/v1/rental/numbers?token=$token&status=$status&mobile_number=$mobile_number&page_num=$page_num&page_size=$page_size

Parameters

FieldLocationTypeRequiredDescription
tokenqueryStringYesYour API Token
statusqueryStringNoFilter by status (ACTIVE, EXPIRED, CANCELLED)
mobile_numberqueryStringNoFilter by phone number
page_numqueryStringNoPage number (default: 1)
page_sizequeryStringNoPage size (default: 20)

Result

FieldTypeDescription
codeNumberResponse status
messageStringResponse description
dataObjectPaginated order list

Columns of data

FieldTypeDescription
order_idStringRental order ID
statusStringOrder status (ACTIVE, EXPIRED, CANCELLED)
dialing_codeStringCountry dialing code
mobile_numberStringAssigned phone number (without dialing code)
area_codeStringArea code
area_nameStringArea name
service_codeStringService code
service_nameStringService name
durationNumberRental duration in days
rental_end_atStringRental expiry time (ISO 8601)
actual_amountNumberAmount actually charged after discount, in cents
amountNumberOriginal price before discount, in cents
sms_received_countNumberTotal SMS received

Success

{
  "code": 200,
  "message": "Operation Success",
  "data": {
    "page_num": 1,
    "page_size": 20,
    "total": 3,
    "total_page": 1,
    "list": [
      {
        "order_id": "3541517119212500001",
        "status": "ACTIVE",
        "mobile_number": "4155552671",
        "dialing_code": "1",
        "area_code": "us",
        "area_name": "United States",
        "service_code": "tg",
        "service_name": "Telegram",
        "duration": 30,
        "rental_end_at": "2025-01-31T00:00:00Z",
        "actual_amount": 1425,
        "amount": 1500,
        "sms_received_count": 5
      }
    ]
  }
}

Possible Errors

{
  "code": 401,
  "message": "Not yet logged in or certificate has expired"
}

Get rental order detail

GET - https://api.bee-sms.com/v1/rental/order?token=$token&order_id=$order_id

Returns the order record for the given order_id (purchase or renewal transaction). For the rented number lifecycle (status, expiry, SMS count), use List your rental numbers.

Parameters

FieldLocationTypeRequiredDescription
tokenqueryStringYesYour API Token
order_idqueryStringYesOrder ID (purchase or renewal)

Result

FieldTypeDescription
codeNumberResponse status
messageStringResponse description
dataObjectOrder record

Columns of data

FieldTypeDescription
order_idStringOrder ID
order_typeStringOrder type: PURCHASE or RENEWAL
statusStringOrder status: COMPLETED, CANCELLED
dialing_codeStringCountry dialing code
mobile_numberStringPhone number (without dialing code)
area_codeStringArea code
area_nameStringArea name
service_codeStringService code
service_nameStringService name
durationNumberOrder duration in days
actual_amountNumberAmount actually charged after discount, in cents
amountNumberOriginal price before discount, in cents
create_atStringOrder creation time (ISO 8601)

Success

{
  "code": 200,
  "message": "Operation Success",
  "data": {
    "order_id": "3541517119212500001",
    "order_type": "PURCHASE",
    "status": "COMPLETED",
    "dialing_code": "1",
    "mobile_number": "4155552671",
    "area_code": "us",
    "area_name": "United States",
    "service_code": "tg",
    "service_name": "Telegram",
    "duration": 30,
    "actual_amount": 1425,
    "amount": 1500,
    "create_at": "2025-01-01T00:00:00Z"
  }
}

Possible Errors

{
  "code": 401,
  "message": "Not yet logged in or certificate has expired"
}
{
  "code": 404,
  "message": "Not Found"
}

Get SMS received on a rental number

GET - https://api.bee-sms.com/v1/rental/sms?token=$token&order_id=$order_id&page_num=$page_num&page_size=$page_size

Parameters

FieldLocationTypeRequiredDescription
tokenqueryStringYesYour API Token
order_idqueryStringYesRental Order ID
page_numqueryStringNoPage number (default: 1)
page_sizequeryStringNoPage size (default: 20)

Result

FieldTypeDescription
codeNumberResponse status
messageStringResponse description
dataArrayList of SMS messages

Columns of data

FieldTypeDescription
idStringSMS record ID
fromStringSender number
sms_contentStringSMS message body
received_atStringReceived time (ISO 8601)

Success

{
  "code": 200,
  "message": "Operation Success",
  "data": [
    {
      "id": "1234567890",
      "from": "+12125551234",
      "sms_content": "Your verification code is 482901",
      "received_at": "2025-01-15T10:30:00Z"
    }
  ]
}

Possible Errors

{
  "code": 401,
  "message": "Not yet logged in or certificate has expired"
}
{
  "code": 404,
  "message": "Not Found"
}

Renew a rental number

GET - https://api.bee-sms.com/v1/rental/renew?token=$token&order_id=$order_id&duration=$duration

Parameters

FieldLocationTypeRequiredDescription
tokenqueryStringYesYour API Token
order_idqueryStringYesRental Order ID
durationqueryStringYesExtension duration days

Result

FieldTypeDescription
codeNumberResponse status
messageStringResponse description

Success

{
  "code": 200,
  "message": "Operation Success"
}

Possible Errors

{
  "code": 401,
  "message": "Not yet logged in or certificate has expired"
}
{
  "code": 404,
  "message": "Not Found"
}
{
  "code": 50001,
  "message": "Balance not enough"
}
{
  "code": 50304,
  "message": "Rental renewal failed, please try again."
}

Cancel a rental number

Cancels the rental number and refunds the remaining balance if no SMS has been received within 24 hours of the last renewal.

GET - https://api.bee-sms.com/v1/rental/cancel?token=$token&order_id=$order_id

Parameters

FieldLocationTypeRequiredDescription
tokenqueryStringYesYour API Token
order_idqueryStringYesRental Order ID

Result

FieldTypeDescription
codeNumberResponse status
messageStringResponse description

Success

{
  "code": 200,
  "message": "Operation Success"
}

Possible Errors

{
  "code": 401,
  "message": "Not yet logged in or certificate has expired"
}
{
  "code": 404,
  "message": "Not Found"
}
{
  "code": 50303,
  "message": "This order is not eligible for refund."
}