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).
https://www.jesusnumber.com/api/callback (full URL on your deployed domain). Wallet deposits may use https://www.jesusnumber.com/api/wallet/callback.
Use this section to test the API quickly.
X-API-Key header on every request (no email/password in the body).application/json) or form posts (application/x-www-form-urlencoded / multipart/form-data).expiration is in seconds; long-term / 3-day expires is an absolute UTC timestamp.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"
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.
{
"message": "Too Many Attempts."
}
{
"success": false,
"message": "Invalid or inactive API key.",
"data": null
}
success envelope.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.
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). |
{
"success": true,
"message": "Wallet balance retrieved.",
"data": {
"balance": 50.00,
"hold_balance": 0.00,
"spend_balance": 0.00,
"deposit": 0.00
}
}
{
"success": false,
"message": "Invalid or inactive API key.",
"data": null
}
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. |
{
"success": true,
"message": "Products retrieved.",
"data": {
"products": [ /* full product rows */ ],
"count": 12
}
}
{
"success": false,
"message": "Invalid or inactive API key.",
"data": null
}
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. |
{
"success": true,
"message": "Order completed successfully",
"data": { /* order + upstream fields */ }
}
{
"success": false,
"message": "Insufficient balance",
"data": null
}
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. |
{
"success": true,
"message": "Order retrieved.",
"data": {
"kind": "short_term",
"order": { }
}
}
{
"success": false,
"message": "Order not found.",
"data": null
}
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. |
{
"success": true,
"message": "Orders retrieved.",
"data": {
"orders": [],
"pagination": {
"current_page": 1,
"last_page": 1,
"per_page": 20,
"total": 0
}
}
}
{
"success": false,
"message": "Invalid or inactive API key.",
"data": null
}
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. |
{
"success": true,
"message": "SMS messages retrieved.",
"data": {
"order_id": "146185",
"messages": [
{
"sms": "...",
"code": "123456"
}
]
}
}
{
"success": false,
"message": "Order not found.",
"data": null
}
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. |
{
"success": true,
"message": "Order reject successfully",
"data": { }
}
{
"success": false,
"message": "Order not found.",
"data": null
}
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"
}
}