API Documentation

Use your API key to integrate with our service

Log in to create API keys under Dashboard → API. Configure your server to receive inbound SMS via webhook (see HTTP callback below).

Callback URL: Point your NonVoIP / provider webhook to https://www.jesusnumber.com/api/callback (full URL on your deployed domain). Wallet deposits may use https://www.jesusnumber.com/api/wallet/callback.
Quick start

Use this section to test the API quickly.

  • Base URL: https://www.jesusnumber.com/api/v1
  • Authentication: Send your API key in the X-API-Key header on every request (no email/password in the body).
  • Body formats: JSON (application/json) or form posts (application/x-www-form-urlencoded / multipart/form-data).
  • Time: All datetimes are UTC. Short-term expiration is in seconds; long-term / 3-day expires is an absolute UTC timestamp.
  • Responses: JSON envelope success, message, data (see each endpoint).
curl -X GET "https://www.jesusnumber.com/api/v1/balance" \
  -H "X-API-Key: your_api_key_here" \
  -H "Accept: application/json"
Rate limits & errors

Requests are throttled to protect the service (default Laravel API throttle, typically per IP / minute). If you exceed the limit, you may receive HTTP 429.

429 example
{
  "message": "Too Many Attempts."
}
401 — invalid key
{
  "success": false,
  "message": "Invalid or inactive API key.",
  "data": null
}
Tip: Back off and retry. For validation errors on POST bodies, Laravel may return 422 with field errors instead of the success envelope.
Authentication & request format

All documented endpoints require header X-API-Key: <your_key>. They accept JSON (Content-Type: application/json) or form posts. Query parameters apply to GET routes as shown.

Get your account balance
GET https://www.jesusnumber.com/api/v1/balance

Returns wallet balances for the authenticated API key (deposit, hold, spend, available balance).

Name Type Required Description
X-API-Key string Yes API key from your dashboard. Sent as HTTP header (not in body).
On success
{
  "success": true,
  "message": "Wallet balance retrieved.",
  "data": {
    "balance": 50.00,
    "hold_balance": 0.00,
    "spend_balance": 0.00,
    "deposit": 0.00
  }
}
On error
{
  "success": false,
  "message": "Invalid or inactive API key.",
  "data": null
}
Products, pricing & stock
GET https://www.jesusnumber.com/api/v1/products

List active products from your catalog (synced from upstream). Optional filters narrow by category, network, type, or search text.

Name Type Required Description
X-API-Key string Yes Header.
category string No Partial match on product_category.
network integer No product_network id.
type string / int No e.g. 1, str, long_term, 3days
search string No Search name / category.
On success
{
  "success": true,
  "message": "Products retrieved.",
  "data": {
    "products": [ /* full product rows */ ],
    "count": 12
  }
}
On error
{
  "success": false,
  "message": "Invalid or inactive API key.",
  "data": null
}
Place order (short-term, long-term, or 3-day)
POST https://www.jesusnumber.com/api/v1/order

Place a new order for a product_id. Order type is determined by the product. Optional premium flow: premium + premium_quote_id.

Name Type Required Description
X-API-Key string Yes Header.
product_id mixed Yes Catalog product id.
premium boolean No Premium stock confirmation.
premium_quote_id string No Required with premium quote flow.
On success
{
  "success": true,
  "message": "Order completed successfully",
  "data": { /* order + upstream fields */ }
}
On error
{
  "success": false,
  "message": "Insufficient balance",
  "data": null
}
Get order status
GET https://www.jesusnumber.com/api/v1/order/{order_id}

Returns one order owned by your account. data.kind is short_term or long_term; full row is under data.order.

Name Type Required Description
X-API-Key string Yes Header.
order_id string Yes Path parameter — provider order id.
On success
{
  "success": true,
  "message": "Order retrieved.",
  "data": {
    "kind": "short_term",
    "order": { }
  }
}
On error
{
  "success": false,
  "message": "Order not found.",
  "data": null
}
List orders
GET https://www.jesusnumber.com/api/v1/orders

Merged list of short-term and long-term orders, sorted by time. Pagination via query string.

Name Type Required Description
X-API-Key string Yes Header.
page integer No Default 1.
per_page integer No Default 20, max 100.
On success
{
  "success": true,
  "message": "Orders retrieved.",
  "data": {
    "orders": [],
    "pagination": {
      "current_page": 1,
      "last_page": 1,
      "per_page": 20,
      "total": 0
    }
  }
}
On error
{
  "success": false,
  "message": "Invalid or inactive API key.",
  "data": null
}
Get SMS / OTP for an order
GET https://www.jesusnumber.com/api/v1/sms/{order_id}

Returns all stored incoming SMS rows for the order. Poll until messages is non-empty.

Name Type Required Description
X-API-Key string Yes Header.
order_id string Yes Path parameter.
On success
{
  "success": true,
  "message": "SMS messages retrieved.",
  "data": {
    "order_id": "146185",
    "messages": [
      {
        "sms": "...",
        "code": "123456"
      }
    ]
  }
}
On error
{
  "success": false,
  "message": "Order not found.",
  "data": null
}
Cancel / reject order
POST https://www.jesusnumber.com/api/v1/order/cancel

Reject / cancel an eligible order (same business rules as the website). Request body must include order_id.

Name Type Required Description
X-API-Key string Yes Header.
order_id string Yes JSON or form body.
On success
{
  "success": true,
  "message": "Order reject successfully",
  "data": { }
}
On error
{
  "success": false,
  "message": "Order not found.",
  "data": null
}
HTTP callback (incoming SMS)

When the upstream provider delivers an SMS, they POST to your configured callback URL on this app (typically POST /api/callback). Payload shape is defined by the provider; the app stores SMS and updates orders. You do not call this endpoint with your API key — you receive it on your server.

{
  "event": "incoming_message",
  "message": {
    "order_id": 454303,
    "number": "16095170503",
    "service": "paypal",
    "sender": "8843",
    "sms": "Your PayPal OTP is 545",
    "type": "str"
  }
}