Documentación de la API del cliente
Endpoint de API y autenticación
Todas las llamadas a la API del cliente utilizan un único endpoint HTTP POST. Autentíquese con key o apikey (desde la página de clave API de su perfil) más action para seleccionar la operación. La ruta está en la raíz del sitio como /api/v2 — sin prefijo de idioma (ej. sin /en/ antes de /api).
Envíe los parámetros como application/x-www-form-urlencoded (ej. curl -d) o como JSON con Content-Type: application/json.
{
"key": "YOUR_API_KEY",
"action": "categories"
}
Nota: Reemplace YOUR_API_KEY con su propia clave. Nunca coloque claves API en URL, código del lado del cliente o repositorios públicos. Valores de action compatibles: categories, shops, services, inventory, add, status, balance.
Las solicitudes tienen límite de frecuencia por clave API. Cuando se excede, la API devuelve HTTP 429 con un encabezado Retry-After. Usa paginación en listas grandes de servicios (tamaño de página predeterminado: 50).
Probar API
Elija una acción, ingrese los parámetros requeridos y luego haga clic en Enviar solicitud para llamar a la API en vivo. Si ha iniciado sesión con una clave API, se completará a continuación (enmascarada).
Respuesta
API del cliente v2
Obtener categorías
Devuelve todas las categorías principales y sus nombres de subcategorías. Usa estos nombres exactos para filtrar la Lista de servicios por category y subcategory.
Parámetros de solicitud
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
key / apikey | Cadena | Tu clave de API | Sí |
action | Cadena | categories | Sí |
Ejemplo de solicitud
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=categories"
Ejemplo de respuesta
{
"categories": [
{
"category": "Social",
"subcategories": ["Premium", "Standard"]
},
{
"category": "Digital goods",
"subcategories": []
}
]
}
Lista de Tiendas
Devuelve todas las tiendas de proveedores públicas que tengan al menos un producto activo y aprobado. Cada elemento incluye un identificador de shop (ObjectId del proveedor de 24 caracteres) — pásalo a Lista de servicios como shop para listar productos solo de esa tienda. Los parámetros opcionales page y limit funcionan como en Lista de servicios (tamaño de página predeterminado 50, máximo 500).
Parámetros de solicitud
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
key / apikey | Cadena | Tu clave de API | Sí |
action | Cadena | shops | Sí |
page | Número | Número de página (predeterminado 1) cuando limit > 0 | No |
limit | Número | Elementos por página; 0 = devolver todos (predeterminado 0) | No |
Ejemplo de solicitud
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=shops"
Ejemplo de respuesta
{
"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 servicios
Devuelve productos (servicios) vendibles con stock, precios, métricas de ventas, estadísticas de reseñas, marcas de tiempo y una marca available que indica si cada artículo se puede pedir ahora (el stock cumple con la cantidad mínima de compra). Cada artículo incluye sales_count, rating, review_count, created_at y updated_at. Filtra por nombres de categoría / subcategoría de Obtener categorías, por shop de Lista de tiendas, o pasa service para obtener un artículo por su ID de servicio (el valor de service de las respuestas de la lista). Usa language para localizar name, description, category y subcategory (consulta la tabla a continuación). El entityType opcional limita el tipo de producto; el sort opcional ordena los resultados antes de la paginación. Establece limit=0 para devolver todos los artículos coincidentes en una sola respuesta.
Parámetros de solicitud
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
key / apikey | Cadena | Tu clave de API | Sí |
action | Cadena | services | Sí |
page | Número | Número de página (predeterminado 1) cuando limit > 0 | No |
limit | Número | Elementos por página; 0 = devolver todos (predeterminado 0) | No |
shop | Cadena | ID de tienda de Lista de tiendas (campo shop — ObjectId del proveedor de 24 caracteres). Alias: shop_id. Omítelo para devolver productos de todas las tiendas. | No |
category | Cadena | Nombre de la categoría principal (de Get Categories) | No |
subcategory | Cadena | Nombre de la subcategoría (de Get Categories) | No |
entityType | Cadena | Filtro de tipo de producto: product (predeterminado, artículos de catálogo estándar) o smm (servicios de crecimiento social) | No |
sort | Cadena | Orden de clasificación: created_at (predeterminado, más reciente primero), price_asc, price_desc, sales, rating | No |
service | Cadena | Devuelve un servicio por ID (mismo valor de service que en las respuestas de la lista) | No |
language | Cadena | Idioma de respuesta: use un código de los códigos de idioma admitidos a continuación (predeterminado en) | No |
Códigos de idioma compatibles (language)
Pasa uno de estos valores (sin distinción de mayúsculas/minúsculas). Si se omite o es en, los campos de texto permanecen en inglés (el idioma de origen almacenado en el catálogo). Otros códigos compatibles devuelven name, description, category y subcategory traducidos cuando las traducciones están disponibles; de lo contrario, se usa el inglés.
| Código | Idioma | Nombre 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) | বাংলা |
También aceptado (alias)
Estas cadenas se normalizan a un código principal arriba (mismo grupo de traducción):
| Puedes enviar | Resuelve a |
|---|---|
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 |
No compatible: cualquier otro valor de language se trata como inglés (sin traducción). Use los códigos primarios exactos o alias listados aquí.
Ejemplo de solicitud
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.
Ejemplo de respuesta
Predeterminado (limit omitido o 0): todos los servicios en una sola respuesta.
{
"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 — el identificador del servicio en cada elemento de la lista: un ID de catálogo numérico cuando se asigna, de lo contrario una cadena generada por el sistema. Usa el mismo valor para Verificar inventario (separado por comas para múltiples IDs) y Agregar pedido. rate es el precio unitario que pagas por ese servicio (incluye cualquier descuento de comprador específico del proveedor configurado para tu cuenta; de lo contrario, el precio de lista). available — si el servicio se puede pedir ahora (vendible y el stock cumple con la cantidad mínima de compra). Mismo significado que en Verificar inventario; el saldo de la billetera y los códigos de cupón aún se validan cuando llamas a Agregar pedido. category / subcategory coinciden con los nombres de Obtener categorías (subcategory está vacío cuando el producto pertenece solo a una categoría de nivel superior). description puede contener texto enriquecido o HTML del listado del producto. sales_count — total de unidades vendidas (acumulativo). rating — puntuación promedio de las reseñas visibles (0.00 cuando no hay reseñas). review_count — número de reseñas visibles. created_at / updated_at — hora de creación y última actualización del producto (ISO 8601).
Verificar Inventario
Devuelve el stock actual de uno o más servicios. Pasa un solo ID de service, o varios IDs separados por comas (por ejemplo, 10054,0665,13541). Usa los mismos valores de service que en Lista de servicios. El campo available usa las mismas reglas que en Lista de servicios (vendible y el stock cumple con la cantidad mínima de compra). Un solo ID devuelve un objeto; múltiples IDs devuelven una matriz inventory.
Parámetros de solicitud
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
key / apikey | Cadena | Tu clave de API | Sí |
action | Cadena | inventory | Sí |
service | Cadena | Uno o más IDs de servicio de la lista de servicios, separados por comas (ej. 10054,0665,13541; máximo 50 por solicitud) | Sí |
Ejemplo de solicitud
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=inventory" \
-d "service=10054,0665,13541"
Ejemplo de respuesta
Cuando se proporciona un solo ID de service, la respuesta es un objeto (HTTP 404 si no se encuentra):
{
"service": 10042,
"stock": 42,
"available": true,
"entityType": "product",
"autoDelivery": true
}
Cuando se proporcionan múltiples IDs separados por comas, la respuesta envuelve los elementos en un arreglo inventory (HTTP 200; los servicios faltantes incluyen un 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"
}
]
}
Añadir Pedido
Crea un pedido y carga tu saldo de cuenta. Requiere un ID de service válido y quantity.
Parámetros de solicitud
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
key / apikey | Cadena | Tu clave de API | Sí |
action | Cadena | add | Sí |
service | Cadena | ID del servicio de la lista de servicios (campo service) | Sí |
quantity | Número | Cantidad (predeterminado 1) | No |
link | Cadena | Campo URL opcional (aceptado por compatibilidad; no se almacena) | No |
coupon_code / coupon | Cadena | Código de cupón opcional (alias: coupon) | No |
Ejemplo de solicitud
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=add" \
-d "service=10042" \
-d "quantity=1"
Ejemplo de respuesta
Estado HTTP 201 Created.
{
"order": "000000000000000000000001",
"charge": "9.99",
"currency": "USD"
}
El campo order es el identificador único del pedido (cadena). charge es el monto total debitado de tu billetera (después del descuento de comprador, descuento de inicio de sesión y cupón, cuando corresponda). currency siempre es USD. Pasa order a Estado del pedido (action=status).
Estado del pedido
Devuelve el progreso del cumplimiento, el estado de entrega y las credenciales entregadas (cuando corresponda) de un pedido que realizaste. Requiere el identificador order de Agregar pedido.
Parámetros de solicitud
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
key / apikey | Cadena | Tu clave de API | Sí |
action | Cadena | status | Sí |
order | Cadena | Identificador de pedido devuelto por add | Sí |
Ejemplo de solicitud
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=status" \
-d "order=000000000000000000000001"
Ejemplo de respuesta
{
"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
Devuelve tu saldo actual de la billetera del cliente y la moneda. No se requieren parámetros adicionales más allá de la autenticación.
Parámetros de solicitud
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
key / apikey | Cadena | Tu clave de API | Sí |
action | Cadena | balance | Sí |
Ejemplo de solicitud
curl -X POST https://accplanet.com/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=balance"
Ejemplo de respuesta
{
"balance": "100.00",
"currency": "USD"
}
Devuelve el saldo disponible en tu billetera del cliente (usado para pagar pedidos).
Respuestas de error
Los errores usan una sola cadena error. Credenciales API incorrectas o faltantes generalmente devuelven HTTP 401 con {"error": "Invalid API key"}; problemas de validación suelen devolver 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"}