🛒

Customer API Documentation

🔌
Total Actions
7
👤
User Type
Customer

API Endpoint & Authentication

All customer API calls use a single HTTP POST endpoint. Authenticate with key or apikey (from your profile API key page) plus action to select the operation. Path is at the site root as /api/v2 — no language prefix (e.g. no /en/ before /api).

POST
https://accplanet.com/api/v2

Send parameters as application/x-www-form-urlencoded (e.g. curl -d) or as JSON with Content-Type: application/json.

{
  "key": "YOUR_API_KEY",
  "action": "categories"
}

Note: Replace YOUR_API_KEY with your own key. Never put API keys in URLs, client-side code, or public repositories. Supported action values: categories, shops, services, inventory, add, status, balance.

Requests are rate-limited per API key. When exceeded, the API returns HTTP 429 with a Retry-After header. Use pagination on large service lists (default page size: 50).

Test API

Choose an action, enter any required parameters, then click Send Request to call the live API. If you are signed in with an API key, it is filled in below (masked).

Customer API v2

POST
https://accplanet.com/api/v2

Get Categories

Returns all top-level categories and their subcategory names. Use these exact names to filter Services List by category and subcategory.

Request Parameters
ParameterTypeDescriptionRequired
key / apikeyStringYour API keyYes
actionStringcategoriesYes
Example Request
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=categories"
Response Example
{
  "categories": [
    {
      "category": "Social",
      "subcategories": ["Premium", "Standard"]
    },
    {
      "category": "Digital goods",
      "subcategories": []
    }
  ]
}
POST
https://accplanet.com/api/v2

Shops List

Returns all public supplier shops that have at least one active, approved product. Each item includes a shop identifier (24-character supplier ObjectId) — pass it to Services List as shop to list products from that shop only. Optional page and limit work like Services List (default page size 50, max 500).

Request Parameters
ParameterTypeDescriptionRequired
key / apikeyStringYour API keyYes
actionStringshopsYes
pageNumberPage number (default 1) when limit > 0No
limitNumberItems per page; 0 = return all (default 0)No
Example Request
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=shops"
Response Example
{
  "shops": [
    {
      "shop": "507f1f77bcf86cd799439011",
      "name": "Example Shop",
      "description": "Shop description",
      "logo": "https://example.com/logo.webp",
      "banner": "https://example.com/banner.webp",
      "shopUrl": "example-shop",
      "productCount": 42,
      "featured": true
    }
  ],
  "total": 1,
  "page": 1,
  "limit": 50,
  "total_pages": 1
}
POST
https://accplanet.com/api/v2

Services List

Returns sellable products (services) with stock, pricing, sales metrics, review stats, timestamps, and an available flag for whether each item can be ordered now (stock meets minimum purchase quantity). Each item includes sales_count, rating, review_count, created_at, and updated_at. Filter by category / subcategory names from Get Categories, by shop from Shops List, or pass service to fetch one item by its service ID (the service value from list responses). Use language to localize name, description, category, and subcategory (see table below). Optional entityType limits the product type; optional sort orders results before pagination. Set limit=0 to return all matching items in one response.

Request Parameters
ParameterTypeDescriptionRequired
key / apikeyStringYour API keyYes
actionStringservicesYes
pageNumberPage number (default 1) when limit > 0No
limitNumberItems per page; 0 = return all (default 0)No
shopStringShop ID from Shops List (shop field — 24-character supplier ObjectId). Alias: shop_id. Omit to return products from all shops.No
categoryStringParent category name (from Get Categories)No
subcategoryStringSubcategory name (from Get Categories)No
entityTypeStringProduct type filter: product (default, standard catalog items) or smm (social growth services)No
sortStringSort order: created_at (default, newest first), price_asc, price_desc, sales, ratingNo
serviceStringReturn one service by ID (same service value as in list responses)No
languageStringResponse language — use a code from Supported language codes below (default en)No
Supported language codes (language)

Pass one of these values (case-insensitive). If omitted or en, text fields remain in English (the source language stored in the catalog). Other supported codes return translated name, description, category, and subcategory when translations are available; otherwise English is used.

CodeLanguageNative name
en English English
zh Chinese 中文
es Spanish Español
fr French Français
de German Deutsch
ja Japanese 日本語
ko Korean 한국어
pt Portuguese Português
pt-BR Portuguese (Brazil) Português (Brasil)
ru Russian Русский
ar Arabic العربية
hi Hindi हिन्दी
vi Vietnamese Tiếng Việt
ur Urdu اردو
th Thai ไทย
tr Turkish Türkçe
bn-BD Bengali (Bangladesh) বাংলা
Also accepted (aliases)

These strings are normalized to a primary code above (same translation bucket):

You may sendResolves to
zh-hans zh
zh-cn zh
zh-sg zh
zh-hant zh
zh-tw zh
zh-hk zh
zh-mo zh
pt-br pt-BR
pt_br pt-BR
ptbr pt-BR
bn-bd bn-BD
bd bn-BD
en-us en
en-gb en

Not supported: any other language value is treated like English (no translation). Use the exact primary codes or aliases listed here.

Example Request
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "page=1" \
  -d "limit=50"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "entityType=product" \
  -d "sort=price_asc" \
  -d "page=1" \
  -d "limit=50"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "category=Instagram"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "shop=507f1f77bcf86cd799439011"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "service=10042" \
  -d "limit=1" \
  -d "language=zh"

Hot-sync single lookup: use action=services with service (business_id or product_id) and limit=1. Products that exist but are inactive, pending approval, or blacklisted return HTTP 200 with available=false and the actual stock; only missing IDs or deleted products return 404. rate is required; price is an optional alias with the same value.

Response Example

Default (limit omitted or 0): all services in one response.

{
  "services": [
    {
      "service": 10042,
      "name": "Example product A",
      "description": "Product description (may be HTML)",
      "type": "Default",
      "category": "Social",
      "subcategory": "Instagram",
      "rate": "9.99",
      "min": 1,
      "max": 100,
      "refill": false,
      "cancel": false,
      "stock": 100,
      "available": true,
      "entityType": "product",
      "autoDelivery": true,
      "sales_count": 128,
      "rating": "4.50",
      "review_count": 23,
      "created_at": "2024-03-01T12:00:00",
      "updated_at": "2025-07-10T08:30:00"
    }
  ],
  "total": 2,
  "page": 1,
  "limit": 0,
  "total_pages": 1
}

service — the service identifier in each list item: a numeric catalog ID when assigned, otherwise a system-generated string. Use the same value for Check Inventory (comma-separated for multiple IDs) and Add Order. rate is the unit price you pay for that service (includes any supplier-specific buyer discount configured for your account; otherwise the list price). available — whether the service can be ordered now (sellable and stock meets the minimum purchase quantity). Same meaning as in Check Inventory; wallet balance and coupon codes are still validated when you call Add Order. category / subcategory match names from Get Categories (subcategory is empty when the product belongs to a top-level category only). description may contain rich text or HTML from the product listing. sales_count — total units sold (cumulative). rating — average score from visible reviews (0.00 when there are no reviews). review_count — number of visible reviews. created_at / updated_at — product creation and last update time (ISO 8601).

POST
https://accplanet.com/api/v2

Check Inventory

Returns current stock for one or more services. Pass a single service ID, or several IDs comma-separated (e.g. 10054,0665,13541). Use the same service values as in Services List. The available field uses the same rules as in Services List (sellable and stock meets minimum purchase quantity). A single ID returns one object; multiple IDs return an inventory array.

Request Parameters
ParameterTypeDescriptionRequired
key / apikeyStringYour API keyYes
actionStringinventoryYes
serviceStringOne or more service IDs from the services list, comma-separated (e.g. 10054,0665,13541; max 50 per request)Yes
Example Request
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=inventory" \
  -d "service=10054,0665,13541"
Response Example

When a single service ID is provided, the response is one object (HTTP 404 if not found):

{
  "service": 10042,
  "stock": 42,
  "available": true,
  "entityType": "product",
  "autoDelivery": true
}

When multiple comma-separated IDs are provided, the response wraps items in an inventory array (HTTP 200; missing services include an error field):

{
  "inventory": [
    {
      "service": 10054,
      "stock": 10,
      "available": true,
      "entityType": "product",
      "autoDelivery": true
    },
    {
      "service": 665,
      "stock": 0,
      "available": false,
      "entityType": "product",
      "autoDelivery": true
    },
    {
      "service": 13541,
      "error": "Service not found"
    }
  ]
}
POST
https://accplanet.com/api/v2

Add Order

Creates an order and charges your account balance. Requires a valid service ID and quantity.

Request Parameters
ParameterTypeDescriptionRequired
key / apikeyStringYour API keyYes
actionStringaddYes
serviceStringService ID from the services list (service field)Yes
quantityNumberQuantity (default 1)No
linkStringOptional URL field (accepted for compatibility; not stored)No
coupon_code / couponStringOptional coupon code (alias: coupon)No
Example Request
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=10042" \
  -d "quantity=1"
Response Example

HTTP status 201 Created.

{
  "order": "000000000000000000000001",
  "charge": "9.99",
  "currency": "USD"
}

The order field is the unique order identifier (string). charge is the total amount debited from your wallet (after buyer discount, login discount, and coupon, when applicable). currency is always USD. Pass order to Order Status (action=status).

POST
https://accplanet.com/api/v2

Order Status

Returns fulfillment progress, delivery status, and delivered credentials (when applicable) for an order you placed. Requires the order identifier from Add Order.

Request Parameters
ParameterTypeDescriptionRequired
key / apikeyStringYour API keyYes
actionStringstatusYes
orderStringOrder identifier returned by addYes
Example Request
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=status" \
  -d "order=000000000000000000000001"
Response Example
{
  "status": "In progress",
  "charge": "75.00",
  "start_count": 3,
  "remains": 1,
  "delivered_units": 2,
  "currency": "USD",
  "autoDelivery": true,
  "entityType": "product"
}
{
  "status": "Completed",
  "charge": "50.00",
  "start_count": 2,
  "remains": 0,
  "delivered_units": 2,
  "currency": "USD",
  "autoDelivery": true,
  "entityType": "product",
  "accounts": ["example_user:redacted", "example_user_2:redacted"]
}
POST
https://accplanet.com/api/v2

Balance

Returns your current customer wallet balance and currency. No additional parameters are required beyond authentication.

Request Parameters
ParameterTypeDescriptionRequired
key / apikeyStringYour API keyYes
actionStringbalanceYes
Example Request
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=balance"
Response Example
{
  "balance": "100.00",
  "currency": "USD"
}

Returns the available balance in your customer wallet (used to pay for orders).

POST
https://accplanet.com/api/v2

Error Responses

Errors use a single error string. Wrong or missing API credentials typically return HTTP 401 with {"error": "Invalid API key"}; validation issues usually return 400.

{"error": "Invalid API key"}
{"error": "Invalid action"}
{"error": "Service ID is required"}
{"error": "Service not found"}
{"error": "Shop not found"}
{"error": "Product not found."}
{"error": "This product is not available for purchase."}
{"error": "Invalid quantity."}
{"error": "Minimum quantity is 2."}
{"error": "Insufficient stock. Available: 10."}
{"error": "Insufficient balance. Please recharge your account."}
{"error": "Order not found"}
{"error": "Category not found"}
{"error": "Subcategory not found"}
{"error": "Subcategory not found in category"}
Telegram