Api Documentation
Welcome to the Logspanel API Documentation. This guide helps you integrate securely with the Logspanel system by providing access to logs, categories, and authenticated user data.
The API uses token-based authentication. You must first log in to get a token, which you'll then include in the Authorization
header of subsequent requests.
This documentation covers:
- π Authentication
- π° Check Wallet Balance
- π¦ Fetching Categories (with parent and log count)
- π Parent Categories
- πΈ Purchasing Logs
Base URL: https://logspanel.com
Endpoint: POST /api/login
Headers:
Content-Type: application/json
Request Body:
{
"email": "user@example.com",
"password": "your_password"
}
Success Response:
{
"token": "2|example_api_token_here",
"user": {
"id": 50,
"email": "user@example.com",
"name": "John Doe"
}
}
π Example cURL Request:
curl -X POST https://logspanel.com/api/login \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "your_password"
}'
After login, you'll receive an API token
. Include it in the Authorization
header of every request to access protected resources.
Endpoint: GET /api/check-balance
Headers:
Authorization: Bearer <your_token>
Accept: application/json
Success Response β 200 OK
:
{
"success": true,
"balance": 105000,
"name": "John Doe",
"email": "johndoe@example.com"
}
Error Response β 403 Forbidden
:
{
"error": "Unauthorized"
}
π Example cURL Request:
curl -X GET https://logspanel.com/api/check-balance \
-H "Authorization: Bearer your_token_here" \
-H "Accept: application/json"
Replace your_token_here
with the actual token you received after logging in.
Endpoint: GET /api/check-balance
Headers:
Authorization: Bearer <your_token>
Accept: application/json
Success Response β 200 OK
:
{
"success": true,
"balance": 5500,
"name": "John Doe",
"email": "example@gmail.com"
}
π Example cURL Request:
curl -X GET https://logspanel.com/api/check-balance \
-H "Authorization: Bearer <your_token>" \
-H "Accept: application/json"
Error Responses:
403
β Unauthorized or token missing
Endpoint: GET /api/categories-with-logs
Headers:
Authorization: Bearer <your_token>
Accept: application/json
Sample Response:
[
{
"id": 23,
"category_name": "USA Outlook",
"category_price": 5000,
"parent_category": {
"id": 390,
"name": "General"
},
"available_logs": 12
},
{
"id": 24,
"category_name": "Gmail Combo",
"category_price": 3000,
"parent_category": {
"id": 390,
"name": "General"
},
"available_logs": 5
}
]
π€ Example cURL Request:
curl -X GET https://logspanel.com/api/categories-with-logs \
-H "Authorization: Bearer <your_token>" \
-H "Accept: application/json"
Error Responses:
401
β Unauthorized (missing or invalid token)
π§ Usage Tips:
- Use this endpoint to dynamically list all available log categories.
- Each category is linked to a parent and includes the number of logs available.
Endpoint: POST /api/buy-log
Headers:
Authorization: Bearer <your_token>
Accept: application/json
Content-Type: application/json
Request Body:
{
"cat_id": 23,
"log_quantity": 2
}
β
Success Response β 200 OK
:
{
"message": "Log(s) purchased successfully",
"order_id": 582193,
"log_details": [
"1. email@example.com | password123",
"2. email2@example.com | password321"
],
"amount_paid": 10500
}
π€ Example cURL Request:
curl -X POST https://logspanel.com/api/buy-log \
-H "Authorization: Bearer <your_token>" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"cat_id":23, "log_quantity":2}'
π« Error Responses:
400
β Not enough logs available403
β Insufficient funds404
β Log category not found422
β Validation failed (e.g., missing or invalid fields)500
β Internal server error
π§ Tips:
- Ensure the
cat_id
is valid and exists in/api/categories-with-logs
. - Check your balance using
/api/check-balance
before purchase. - The
amount_paid
is calculated based on log price * quantity.
Welcome to the Logspanel Number API Documentation. This guide helps you integrate virtual SMS number services.
With these APIs, you can retrieve available countries and get services offered for each country, including dynamic pricing in Naira.
The Number API provides:
- π List of available countries for SMS numbers
- π Available services (e.g. WhatsApp, Telegram, etc.) per country
- πΈ Prices in both USD and converted Naira
You do not need to be authenticated to access these endpoints. All responses are in JSON format.
Base URL: https://logspanel.com
Base URL: https://logspanel.com
Endpoint: POST /api/login
Headers:
Content-Type: application/json
Request Body:
{
"email": "user@example.com",
"password": "your_password"
}
Success Response:
{
"token": "2|example_api_token_here",
"user": {
"id": 50,
"email": "user@example.com",
"name": "John Doe"
}
}
π Example cURL Request:
curl -X POST https://logspanel.com/api/login \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "your_password"
}'
After login, you'll receive an API token
. Include it in the Authorization
header of every request to access protected resources.
Endpoint: GET /api/check-balance
Headers:
Authorization: Bearer <your_token>
Accept: application/json
Success Response β 200 OK
:
{
"success": true,
"balance": 105000,
"name": "John Doe",
"email": "johndoe@example.com"
}
Error Response β 403 Forbidden
:
{
"error": "Unauthorized"
}
π Example cURL Request:
curl -X GET https://logspanel.com/api/check-balance \
-H "Authorization: Bearer your_token_here" \
-H "Accept: application/json"
Replace your_token_here
with the actual token you received after logging in.
π Get Available Countries
Endpoint: GET /api/number/countries
Headers:
Accept: application/json
Success Response:
{
"success": true,
"countries": [
{
"id": "1",
"name": "United States",
"short_name": "us",
"cc": "1",
"region": "North America",
"flag_url": "https://flagcdn.com/20x15/us.png"
},
{
"id": "44",
"name": "United Kingdom",
"short_name": "gb",
"cc": "44",
"region": "Europe",
"flag_url": "https://flagcdn.com/20x15/gb.png"
}
]
}
π cURL Example:
curl -X GET https://logspanel.com/api/number/countries \
-H "Accept: application/json"
π Get Services for a Country
Endpoint: POST /api/number/services
Headers:
Content-Type: application/json
Accept: application/json
Request Body:
{
"country_id": 1,
"country_name": "United States",
"country_code": "US"
}
Success Response:
{
"success": true,
"country": {
"id": 1,
"name": "United States",
"code": "us"
},
"services": [
{
"service_id": "telegram",
"service_name": "Telegram",
"country_id": "1",
"country_name": "United States",
"short_name": "us",
"pool": "premium",
"usd_price": 0.25,
"price_naira": 1875.00
},
{
"service_id": "whatsapp",
"service_name": "WhatsApp",
"country_id": "1",
"country_name": "United States",
"short_name": "us",
"pool": "standard",
"usd_price": 0.20,
"price_naira": 1800.00
}
]
}
π cURL Example:
curl -X POST https://logspanel.com/api/number/services \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"country_id": 1,
"country_name": "United States",
"country_code": "US"
}'
Note: Service pricing is based on live exchange rates + your configured markup.
Endpoint: POST /api/number/purchase-sms
Headers:
Authorization: Bearer <your_token>
Accept: application/json
Content-Type: application/json
Request Body:
{
"country_id": "1",
"service_id": "1",
"pool": "7", // Optional (defaults to 7 if not set)
}
β
Success Response β 200 OK
:
{
"message": "Number purchased successfully",
"order_id": "DVULMHZM",
"number": "12514077564",
"amount_paid": 3200,
"status": "STATUS_WAIT_CODE",
"timestamp": "2025-06-29T16:00:00Z"
}
π€ Example cURL Request:
curl -X POST https://logspanel.com/api/number/purchase-sms \
-H "Authorization: Bearer <your_token>" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"country_id": "1",
"service_id": "1",
"pool": "7"
}'
π« Error Responses:
400
β Out of stock or service unavailable403
β Insufficient balance422
β Validation failed (missing or invalid fields)500
β Server or third-party API error
π§ Tips:
- Check user balance using
/api/check-balance
before calling this endpoint. pool
is optional β defaults to7
for most use cases.- Amount charged = API live price Γ exchange rate.
Endpoint: POST /api/number/check-sms
Headers:
Authorization: Bearer <your_token>
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Request Body:
request_id=DVULMHZM
β
Success Responses β 200 OK
:
Code Received:
{
"status": "3",
"message": "Code received successfully.",
"code": "487203",
"action_status": 1
}
Still Waiting:
{
"status": "3",
"message": "Still waiting for SMS code.",
"action_status": 0
}
Refund Successful:
{
"status": "6",
"message": "The order has been cancelled and refunded successfully.",
"action_status": 1
}
Refund Pending:
{
"status": "6",
"message": "Refund not available yet. Please wait.",
"action_status": 0
}
π€ Example cURL Request:
curl -X POST https://logspanel.com/api/number/check-sms \
-H "Authorization: Bearer <your_token>" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "request_id=DVULMHZM"
π« Error Responses:
error
β Request not found or already closederror
β Code already receivederror
β User not authenticated or refund failederror
β API connection or third-party error
π§ Tips:
- Only use this endpoint after a successful purchase from
/api/number/purchase-sms
. - If status is
6
, refund is only processed after 20 minutes of inactivity. - You can poll this endpoint every 15β30 seconds until
status = 3
or6
.
Endpoint: POST /api/number/cancel-order
Headers:
Authorization: Bearer <your_token>
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Request Body:
request_id=DVULMHZM
β
Success Response β 200 OK
:
{
"status": true,
"message": "The order has been cancelled and refunded successfully.",
"action_status": 1,
"html": "<span class='text-success'>The order has been cancelled and refunded successfully.</span>"
}
π€ Example cURL Request:
curl -X POST https://logspanel.com/api/number/cancel-order \
-H "Authorization: Bearer <your_token>" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "request_id=DVULMHZM"
π« Error Responses:
status: false
β Order not found or request ID is invalidstatus: false
β Code already received; refund not allowedstatus: false
β Order already refundedstatus: false
β User not authenticatedstatus: false
β API or server error
π§ Tips:
- You can only cancel orders that have not received a code and are not yet refunded.
- If our API allows cancellation (
success = 1
), your user will be refunded instantly. - Use this when a user wants to cancel early without waiting 20 minutes.
Welcome to the Logspanel Boosting API Documentation. This guide provides the endpoints required to integrate our social media boosting services into your application or platform.
With this API, you can fetch available social media boost services along with pricing dynamically calculated in Naira.
The Boost API provides:
- π± List of all available boost services (Instagram, TikTok, YouTube, etc.)
- π΅ USD price and calculated NGN (Naira) price
- π§Ύ Required parameters to make orders
You must be authenticated to access protected routes. All responses are returned in JSON format.
Base URL: https://logspanel.com
Base URL: https://logspanel.com
Endpoint: POST /api/login
Headers:
Content-Type: application/json
Request Body:
{
"email": "user@example.com",
"password": "your_password"
}
Success Response:
{
"token": "2|example_api_token_here",
"user": {
"id": 50,
"email": "user@example.com",
"name": "John Doe"
}
}
π Example cURL Request:
curl -X POST https://logspanel.com/api/login \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "your_password"
}'
After login, you'll receive an API token
. Include it in the Authorization
header of every request to access protected resources.
Endpoint: GET /api/check-balance
Headers:
Authorization: Bearer <your_token>
Accept: application/json
Success Response β 200 OK
:
{
"success": true,
"balance": 105000,
"name": "John Doe",
"email": "johndoe@example.com"
}
Error Response β 403 Forbidden
:
{
"error": "Unauthorized"
}
π Example cURL Request:
curl -X GET https://logspanel.com/api/check-balance \
-H "Authorization: Bearer your_token_here" \
-H "Accept: application/json"
Replace your_token_here
with the actual token you received after logging in.
Endpoint: GET /api/boost/categories
This endpoint returns a distinct list of all available social media service categories, each with a count of how many services fall under it. Useful for displaying category filters on your frontend.
Headers:
Accept: application/json
Success Response β 200 OK
:
{
"status": true,
"message": "Distinct categories with service count retrieved successfully.",
"data": [
{
"category": "Instagram Followers",
"count": 8
},
{
"category": "TikTok Views",
"count": 5
},
{
"category": "YouTube Likes",
"count": 3
}
]
}
π Example cURL Request:
curl -X GET https://logspanel.com/boost/categories \
-H "Accept: application/json"
This endpoint helps build category navigation or filter dropdowns dynamically. Each category is returned in its original format (may include emojis/special characters).
π‘ Notes:
- Real-Time Categories: The list is dynamically generated from live service data. If the provider adds or removes categories, they are reflected automatically.
-
Case-Insensitive Matching: Categories are grouped using lowercase comparison, but the
category
field is returned exactly as received (including any emojis or casing). -
Use with Filtering: You can use each returned category as a parameter in
/api/boost/category/{category}
to filter services belonging to that category. - For UI Filters: This endpoint is useful for building dropdowns, tabs, or search filters in your frontend app β sorted alphabetically for better UX.
-
Count Field: The
count
shows how many services belong to each category. If a category has zero services, it is automatically excluded. -
Handling Special Characters: Some categories may include emojis or special symbols (e.g.,
πΈ Instagram Likes
). Be sure toURL-encode
them if used in API requests.
Endpoint: GET /api/boost/category/{services}
This endpoint returns all available social media boost services under a given category, enriched with the computed price in Nigerian Naira (β¦).
π’ URL Parameter:
category
β The name of the service category (e.g.,tiktok views
,instagram followers
)
β
Success Response β 200 OK
:
{
"status": true,
"message": "Filtered services retrieved successfully.",
"category": "instagram followers",
"data": [
{
"service_id": "8231",
"name": "Instagram Followers [High Quality]",
"category": "Instagram Followers",
"price_naira": 1200.00
},
{
"service_id": "8242",
"name": "Instagram Followers [Real Users]",
"category": "Instagram Followers",
"price_naira": 1450.00
}
]
}
β Error Response β 404 Not Found
:
{
"status": false,
"message": "No services found for this category.",
"data": []
}
π Example cURL Request:
curl -X GET https://logspanel.com/boost/category/tiktok%20views \
-H "Accept: application/json"
π‘ Notes:
-
Dynamic Pricing: The
price_naira
is calculated in real-time. -
Exchange Rate Adjustment: A buffer of
+200
is added to the exchange rate to protect against forex volatility. -
Category Matching: Category matching is
case-insensitive
. Spaces and special characters in URLs must beURL-encoded
. -
Use with `/boost/categories`: To get a list of all available categories, call
/api/boost/categories
before using this endpoint.
Endpoint: GET /api/boost/services/{service_id}
This endpoint returns full details of a specific social media boost service. It includes metadata such as pricing, limits, refill support, and optional descriptions.
URL Parameters:
service_id
β Unique identifier of the service (e.g.,7993
)
Success Response β 200 OK
:
{
"status": true,
"message": "Service details fetched successfully.",
"data": {
"service_id": "7993",
"name": "Facebook Followers [All Type Profile/Page]",
"category": "Facebook",
"type": "Default",
"rate": 1621.15,
"min": 100,
"max": 500000,
"dripfeed": false,
"refill": true,
"cancel": false,
"description": "This service provides real, high-quality followers with optional refill within 30 days."
}
}
Error Response:
{
"status": false,
"message": "Service not found"
}
π Example cURL Request:
curl -X GET https://logspanel.com/boost/services/7993 \
-H "Accept: application/json"
Use this endpoint when a user selects a specific service to view full information or to validate it before placing an order. The description
field is optionally loaded from a local JSON file for enhanced detail.
π‘ Notes:
-
Exchange rate adjustment:
The rate returned is converted from USD to NGN using a dynamic exchange rate. The system adds
+200
margin to the exchange rate to account for profit/loss buffers. - Why is the price different from the source API? The original `rate` from the provider is in USD. What you see here is the Nigerian Naira equivalent with markup. This lets you resell at a profit.
-
Custom Descriptions:
If a local file named
public/bstingfile.json
exists, and contains an entry for thisservice_id
, the response will include adescription
field. This can be used to show more friendly names, business logic notes, or customer-facing explanations. - Dripfeed, Refill, and Cancel: These boolean fields indicate if the service supports gradual delivery (dripfeed), automatic refill on drop, and cancelability. Useful for displaying service capabilities to your users.
-
Service matching is case-insensitive:
The backend compares
service_id
usingstrtolower()
to allow flexibility in your requests.
Endpoint: /api/boost/order
Method: POST
Authentication: Bearer Token (Required)
Description: Submit a social media boost order using one of the supported service types.
Headers:
Accept: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
π Example cURL Request:
curl -X POST https://logspanel.com/boost/order \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"service": "7993",
"type": "Default",
"link": "https://instagram.com/yourtargetlink",
"quantity": 500
}'
π Base Parameters
Field | Type | Required | Description |
---|---|---|---|
service | string | β | Service ID from /api/boost/services/{service_id} |
type | string | β | The type/category of service |
link | string | Conditional | Target link, required by most types |
quantity | integer | Conditional | Must be within min/max limits |
type | string | β | Your internal identifier (e.g. user agent, source) |
π Rules by type
link
- requiredquantity
- requiredruns
,interval
- optional
link
- requiredcomments
- required (text or JSON)
link
- requiredquantity
- requiredusernames
- requiredhashtags
- required
username
- requiredmin
- requiredmax
- requireddelay
- requiredexpiry
- optionalposts
- optional
link
- requiredusername
- requiredcomments
- required
π‘ Notes:
rate
is calculated internally β You do not need to submit it. The system fetches the actual service rate from our end.min
andmax
are fetched internally β the quantity you send must be within these bounds. An error is returned if it's outside.type
: Itβs your identifier for the kind of order, used in business logic and validations.link
is the URL to the content (e.g. YouTube, Instagram) to boost. Not required for all services β check type-specific rules.- Service not found? It means the
service
ID passed does not exist in the fetched external API services list. - Rate mismatch? Do not send rate, min, or max in your request. The system handles those internally for accuracy and security.
comments
must be a string or valid JSON array depending on your integration. This is used in "Custom Comments" and "Comment Replies" types.- For
Mentions
services:usernames
,hashtags
, and other identifiers must be comma-separated strings or arrays (based on backend expectations).
Endpoint: /api/boost/status
Method: POST
Authentication: Bearer Token (Required)
Description: Retrieve the current status of a previously placed boost order. This can include status like In progress
, Completed
, Canceled
, etc., along with delivery stats.
Headers:
Accept: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
π Example cURL Request:
curl -X POST https://logspanel.com/boost/status \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"order_id": "123456789"
}'
π Parameters
Field | Type | Required | Description |
---|---|---|---|
order_id |
string | β | The ID of the boost order you want to check the status for |
π¦ Sample Success Response
{
"status": true,
"message": "Boost order status retrieved successfully.",
"data": {
"charge": "0.00",
"start_count": "0",
"status": "Canceled",
"remains": "100",
"currency": "USD"
}
}
β Sample Error Response
{
"status": false,
"message": "Failed to fetch status: Order not found"
}
π‘ Notes:
order_id
is required and must match an existing boost order placed through your account.- Typical statuses:
Pending
,Processing
,Completed
,Canceled
, orPartial
. start_count
refers to the number of followers/views/likes when the order started.remains
tells you how many units are yet to be delivered.charge
shows how much the order cost (in external currency).- The
currency
returned is usuallyUSD
.
Endpoint: /api/boost/cancel
Method: POST
Authentication: Bearer Token (Required)
Description: Request to cancel a specific boost order. If eligible, the user's balance will be refunded and order marked as canceled.
Headers:
Accept: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
π Example cURL Request:
curl -X POST https://logspanel.com/api/boost-orders/cancel \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"order_id": "123456789"
}'
π Parameters
Field | Type | Required | Description |
---|---|---|---|
order_id |
string | β | The ID of the boost order you want to cancel. |
β Sample Success Response
{
"order_id": "123456789",
"status": "Canceled",
"cancel": 1,
"message": "Boost order cancelled and processed successfully."
}
β Sample Error Response
{
"order_id": "123456789",
"status": "Not Found",
"cancel": 0,
"message": "Boost order not found."
}
π‘ Notes:
order_id
must be a valid boost order belonging to the authenticated user.- Only eligible orders (not already completed or refunded) can be canceled.
- Upon successful cancellation, the system will refund the user's wallet and update the order status.
- If the order is already completed, cancellation may fail depending on external API response.