Documentação da API do Cliente
Endpoint da API e Autenticação
Todas as chamadas de API do cliente usam um único endpoint HTTP POST. Autentique com key ou apikey (da página de chave de API do seu perfil) mais action para selecionar a operação. O caminho está na raiz do site como /api/v2 — sem prefixo de idioma (ex.: sem /en/ antes de /api).
Envie parâmetros como application/x-www-form-urlencoded (ex.: curl -d) ou como JSON com Content-Type: application/json.
{
"key": "YOUR_API_KEY",
"action": "categories"
}
Nota: Substitua YOUR_API_KEY pela sua própria chave. Nunca coloque chaves de API em URLs, código do lado do cliente ou repositórios públicos. Valores de action suportados: categories, shops, services, inventory, add, status, balance.
As requisições são limitadas por chave de API. Quando excedido, a API retorna HTTP 429 com um cabeçalho Retry-After. Use paginação em listas grandes de serviços (tamanho de página padrão: 50).
Testar API
Escolha uma ação, insira os parâmetros necessários e clique em Enviar Requisição para chamar a API ao vivo. Se você estiver logado com uma chave de API, ela será preenchida abaixo (mascarada).
Resposta
API do Cliente v2
Obter Categorias
Retorna todas as categorias de nível superior e seus nomes de subcategoria. Use esses nomes exatos para filtrar a Lista de Serviços por category e subcategory.
Parâmetros da Requisição
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
key / apikey | Cadeia de caracteres | Sua chave de API | Sim |
action | Cadeia de caracteres | categories | Sim |
Exemplo de Requisição
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=categories"
Exemplo de Resposta
{
"categories": [
{
"category": "Social",
"subcategories": ["Premium", "Standard"]
},
{
"category": "Digital goods",
"subcategories": []
}
]
}
Lista de Lojas
Retorna todas as lojas de fornecedores públicas que possuem pelo menos um produto ativo e aprovado. Cada item inclui um identificador de shop (ObjectId do fornecedor de 24 caracteres) — passe-o para a Lista de Serviços como shop para listar apenas produtos dessa loja. page e limit opcionais funcionam como na Lista de Serviços (tamanho padrão da página 50, máximo 500).
Parâmetros da Requisição
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
key / apikey | Cadeia de caracteres | Sua chave de API | Sim |
action | Cadeia de caracteres | shops | Sim |
page | Número | Número da página (padrão 1) quando limit > 0 | No |
limit | Número | Itens por página; 0 = retornar todos (padrão 0) | No |
Exemplo de Requisição
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=shops"
Exemplo de Resposta
{
"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
}
Lista de Serviços
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.
Parâmetros da Requisição
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
key / apikey | Cadeia de caracteres | Sua chave de API | Sim |
action | Cadeia de caracteres | services | Sim |
page | Número | Número da página (padrão 1) quando limit > 0 | No |
limit | Número | Itens por página; 0 = retornar todos (padrão 0) | No |
shop | Cadeia de caracteres | ID da loja da Lista de Lojas (campo shop — ObjectId do fornecedor com 24 caracteres). Alias: shop_id. Omita para retornar produtos de todas as lojas. | No |
category | Cadeia de caracteres | Nome da categoria pai (de Obter Categorias) | No |
subcategory | Cadeia de caracteres | Nome da subcategoria (de Obter Categorias) | No |
entityType | Cadeia de caracteres | Filtro de tipo de produto: product (padrão, itens de catálogo padrão) ou smm (serviços de crescimento social) | No |
sort | Cadeia de caracteres | Ordem de classificação: created_at (padrão, mais recentes primeiro), price_asc, price_desc, sales, rating | No |
service | Cadeia de caracteres | Retorna um serviço por ID (mesmo valor de service das respostas da lista) | No |
language | Cadeia de caracteres | Idioma da resposta — use um código da lista de códigos de idioma suportados abaixo (padrão en) | No |
Códigos de idioma suportados (language)
Passe um desses valores (sem distinção de maiúsculas/minúsculas). Se omitido ou en, os campos de texto permanecem em Inglês (o idioma de origem armazenado no catálogo). Outros códigos suportados retornam name, description, category e subcategory traduzidos quando as traduções estão disponíveis; caso contrário, o inglês é usado.
| Código | Idioma | Nome nativo |
|---|---|---|
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) | বাংলা |
Também aceito (apelidos)
Essas strings são normalizadas para um código primário acima (mesmo bucket de tradução):
| Você pode enviar | Resolve para |
|---|---|
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 |
Não suportado: qualquer outro valor de language é tratado como inglês (sem tradução). Use os códigos primários exatos ou aliases listados aqui.
Exemplo de Requisição
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.
Exemplo de Resposta
Padrão (limit omitido ou 0): todos os serviços em uma resposta.
{
"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).
Verificar Estoque
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.
Parâmetros da Requisição
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
key / apikey | Cadeia de caracteres | Sua chave de API | Sim |
action | Cadeia de caracteres | inventory | Sim |
service | Cadeia de caracteres | Um ou mais IDs de serviço da lista de serviços, separados por vírgula (ex.: 10054,0665,13541; máximo de 50 por requisição) | Sim |
Exemplo de Requisição
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=inventory" \
-d "service=10054,0665,13541"
Exemplo de Resposta
Quando um único ID de service é fornecido, a resposta é um objeto (HTTP 404 se não encontrado):
{
"service": 10042,
"stock": 42,
"available": true,
"entityType": "product",
"autoDelivery": true
}
Quando vários IDs separados por vírgula são fornecidos, a resposta envolve os itens em um array inventory (HTTP 200; serviços ausentes incluem um campo error):
{
"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"
}
]
}
Adicionar Pedido
Cria um pedido e debita do seu saldo da conta. Requer um ID de service válido e quantity.
Parâmetros da Requisição
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
key / apikey | Cadeia de caracteres | Sua chave de API | Sim |
action | Cadeia de caracteres | add | Sim |
service | Cadeia de caracteres | ID do serviço da lista de serviços (campo service) | Sim |
quantity | Número | Quantidade (padrão 1) | No |
link | Cadeia de caracteres | Campo de URL opcional (aceito para compatibilidade; não armazenado) | No |
coupon_code / coupon | Cadeia de caracteres | Optional coupon code (alias: coupon) | No |
Exemplo de Requisição
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=add" \
-d "service=10042" \
-d "quantity=1"
Exemplo de Resposta
Status HTTP 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).
Status do Pedido
Retorna o progresso da entrega, status da entrega e credenciais entregues (quando aplicável) para um pedido que você fez. Requer o identificador order de Adicionar Pedido.
Parâmetros da Requisição
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
key / apikey | Cadeia de caracteres | Sua chave de API | Sim |
action | Cadeia de caracteres | status | Sim |
order | Cadeia de caracteres | Identificador do pedido retornado por add | Sim |
Exemplo de Requisição
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=status" \
-d "order=000000000000000000000001"
Exemplo de Resposta
{
"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"]
}
Saldo
Retorna o saldo atual da sua carteira de cliente e a moeda. Nenhum parâmetro adicional é necessário além da autenticação.
Parâmetros da Requisição
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
key / apikey | Cadeia de caracteres | Sua chave de API | Sim |
action | Cadeia de caracteres | balance | Sim |
Exemplo de Requisição
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=balance"
Exemplo de Resposta
{
"balance": "100.00",
"currency": "USD"
}
Retorna o saldo disponível na sua carteira de cliente (usado para pagar pedidos).
Respostas de Erro
Erros usam uma única string error. Credenciais de API erradas ou ausentes geralmente retornam HTTP 401 com {"error": "Invalid API key"}; problemas de validação geralmente retornam 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"}