Official API v1

Logs API

Integrate log catalog browsing, wallet-backed purchases, and order history into your server-side workflow using one account API key.

POST https://logsdomain.com/api/v1/logs/orders
{
  "category_id": 12,
  "quantity": 1,
  "idempotency_key": "website-order-20260501-0001"
}

Documentation Hub

API Collections

Official guides for building with your wallet-backed services.

Base URL

Production Endpoint

All paths in this guide are relative to the current API base URL. Protected endpoints require bearer authentication.

https://logsdomain.com/api/v1

Security

Authentication

Bearer API Key

Generate your API key from API Access. Copy it immediately; it is displayed only once. Generating a new key revokes the previous key.

Required headers
Accept: application/json
Authorization: Bearer YOUR_API_KEY_HERE
401 Response
{
  "success": false,
  "status": 401,
  "message": "Unauthenticated. Please provide a valid bearer token.",
  "code": "UNAUTHENTICATED"
}
GET

Wallet Balance

/wallet

Returns the authenticated user's wallet balance. Requires bearer authentication.

cURL Request
curl -X GET "https://logsdomain.com/api/v1/wallet" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": {
    "balance": "12500.00",
    "currency": "NGN"
  }
}
GET

List Parent Categories

/logs/parent-categories

Returns active parent categories for building filters and category navigation. Requires bearer authentication.

cURL Request
curl -X GET "https://logsdomain.com/api/v1/logs/parent-categories" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": [
    {
      "id": 2,
      "name": "Accounts",
      "description": "Social and premium account logs",
      "image": "/storage/uploads/parent_categories/accounts.png",
      "available_categories_count": 8
    }
  ]
}
GET

List Log Categories

/logs/categories

Lists active log categories with price and available quantity. Requires bearer authentication.

Query Type Description
per_page integer Optional. Values from 1 to 100. Defaults to 25.
parent_category_id integer Optional. Filter log categories by parent category.
cURL Request
curl -G "https://logsdomain.com/api/v1/logs/categories" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  --data-urlencode "per_page=25" \
  --data-urlencode "parent_category_id=2"
200 Response
{
  "success": true,
  "data": [
    {
      "id": 12,
      "name": "Facebook Logs",
      "description": "Fresh account logs",
      "image": "/storage/uploads/log_categories/facebook.png",
      "price": "2500.00",
      "currency": "NGN",
      "available_quantity": 34,
      "parent_category": {
        "id": 2,
        "name": "Accounts"
      }
    }
  ]
}
GET

Get Single Log Category

/logs/categories/{category}

Returns the details for one log category by category ID. Purchased log details are returned only after a successful purchase.

cURL Request
curl -X GET "https://logsdomain.com/api/v1/logs/categories/12" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": {
    "id": 12,
    "name": "Facebook Logs",
    "description": "Fresh account logs",
    "image": "/storage/uploads/log_categories/facebook.png",
    "price": "2500.00",
    "currency": "NGN",
    "available_quantity": 34
  }
}
POST

Purchase Logs

/logs/orders

Purchases logs from a category, deducts the wallet balance, and returns the purchased log details.

The server calculates price and wallet deduction. Do not send price from your integration. Use a unique idempotency_key for every checkout attempt.
Body Type Description
category_id integer Required. Existing log category ID.
quantity integer Required. Minimum 1, maximum 100.
idempotency_key string Required. Unique key for this checkout attempt.
cURL Request
curl -X POST "https://logsdomain.com/api/v1/logs/orders" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"category_id":12,"quantity":2,"idempotency_key":"website-order-20260501-0001"}'
201 Response
{
  "success": true,
  "data": {
    "order_id": "logs-api-ABC1234567-1777560000",
    "status": "completed",
    "product_id": 12,
    "product_name": "Facebook Logs",
    "quantity": 2,
    "unit_price": "2500.00",
    "total": "5000.00",
    "currency": "NGN",
    "balance_after": "7500.00",
    "items": [
      {
        "serial": 1,
        "details": "log details here",
        "video": null
      }
    ]
  }
}
GET

List Log Orders

/logs/orders

Returns the authenticated user's Logs order history. Requires bearer authentication.

cURL Request
curl -X GET "https://logsdomain.com/api/v1/logs/orders" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
200 Response
{
  "success": true,
  "data": [
    {
      "order_id": "logs-api-ABC1234567-1777560000",
      "status": "completed",
      "product_id": 12,
      "product_name": "Facebook Logs",
      "quantity": 2,
      "unit_price": "2500.00",
      "total": "5000.00",
      "currency": "NGN",
      "created_at": "2026-05-01T12:00:00.000000Z"
    }
  ]
}

Reference

Error Responses

JSON
Error Format
{
  "success": false,
  "status": 402,
  "message": "Insufficient wallet balance.",
  "code": "INSUFFICIENT_BALANCE"
}
USER_DISABLEDThe buyer account is disabled.
USER_BANNEDThe buyer account is banned.
UNAUTHENTICATEDThe bearer token is missing, invalid, or revoked.
VALIDATION_FAILEDOne or more request fields are missing or invalid.
LOG_CATEGORY_NOT_FOUNDThe category does not exist or is unavailable.
INSUFFICIENT_BALANCEThe wallet balance cannot cover the purchase.
OUT_OF_STOCKThere are not enough logs in the selected category.
IDEMPOTENCY_KEY_REUSEDThe idempotency key was used for a different request.