🛒

Documentação da API do Cliente

🔌
Total de Ações
7
👤
Tipo de Usuário
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).

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

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).

API do Cliente v2

POST
https://accplanet.com/api/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âmetroTipoDescriçãoObrigatório
key / apikeyCadeia de caracteresSua chave de APISim
actionCadeia de caracterescategoriesSim
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": []
    }
  ]
}
POST
https://accplanet.com/api/v2

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âmetroTipoDescriçãoObrigatório
key / apikeyCadeia de caracteresSua chave de APISim
actionCadeia de caracteresshopsSim
pageNúmeroNúmero da página (padrão 1) quando limit > 0No
limitNúmeroItens 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
}
POST
https://accplanet.com/api/v2

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âmetroTipoDescriçãoObrigatório
key / apikeyCadeia de caracteresSua chave de APISim
actionCadeia de caracteresservicesSim
pageNúmeroNúmero da página (padrão 1) quando limit > 0No
limitNúmeroItens por página; 0 = retornar todos (padrão 0)No
shopCadeia de caracteresID 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
categoryCadeia de caracteresNome da categoria pai (de Obter Categorias)No
subcategoryCadeia de caracteresNome da subcategoria (de Obter Categorias)No
entityTypeCadeia de caracteresFiltro de tipo de produto: product (padrão, itens de catálogo padrão) ou smm (serviços de crescimento social)No
sortCadeia de caracteresOrdem de classificação: created_at (padrão, mais recentes primeiro), price_asc, price_desc, sales, ratingNo
serviceCadeia de caracteresRetorna um serviço por ID (mesmo valor de service das respostas da lista)No
languageCadeia de caracteresIdioma 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ódigoIdiomaNome 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 enviarResolve 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).

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

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âmetroTipoDescriçãoObrigatório
key / apikeyCadeia de caracteresSua chave de APISim
actionCadeia de caracteresinventorySim
serviceCadeia de caracteresUm 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"
    }
  ]
}
POST
https://accplanet.com/api/v2

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âmetroTipoDescriçãoObrigatório
key / apikeyCadeia de caracteresSua chave de APISim
actionCadeia de caracteresaddSim
serviceCadeia de caracteresID do serviço da lista de serviços (campo service)Sim
quantityNúmeroQuantidade (padrão 1)No
linkCadeia de caracteresCampo de URL opcional (aceito para compatibilidade; não armazenado)No
coupon_code / couponCadeia de caracteresOptional 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).

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

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âmetroTipoDescriçãoObrigatório
key / apikeyCadeia de caracteresSua chave de APISim
actionCadeia de caracteresstatusSim
orderCadeia de caracteresIdentificador do pedido retornado por addSim
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"]
}
POST
https://accplanet.com/api/v2

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âmetroTipoDescriçãoObrigatório
key / apikeyCadeia de caracteresSua chave de APISim
actionCadeia de caracteresbalanceSim
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).

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

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"}
Telegram