Loading HstockPlus
Selecciona una acción, completa los parámetros y envía una solicitud. Cuando hayas iniciado sesión, tu clave API se cargará automáticamente.
Se actualiza automáticamente cuando cambias la acción o los parámetros.
curl -X POST "https://hstockplus.net/api/v2" \
--data-urlencode "key=YOUR_API_KEY" \
--data-urlencode "action=categories"https://hstockplus.net/api/v2Todas las solicitudes de API deben enviarse mediante HTTP POST a este endpoint.
Limits are counted per API key. Only the two list actions below are limited.
| Acción | Límite |
|---|---|
| services | 1 call every 2 seconds, up to 3 calls in a row |
| products | 1 call per second, up to 3 calls in a row |
| inventory | Sin límite |
| All other actions (add, status, balance, ...) | Sin límite |
A limited call still returns HTTP 200, with the error below. retry_after_ms is how many milliseconds to wait before the next call. A key that keeps calling while limited (about 20 limited calls in one minute) is paused for 60 seconds.
{"error": "Rate limit exceeded", "retry_after_ms": 1400}To check price and stock of many products, call products once with productIds (up to 100 per call) instead of one services call per product. For the stock of each option of one product, use inventory.
IMPORTANTE — URLs de imágenes de productos (imageUrl)
Cuando Media CDN está habilitado, los campos imageUrl en las respuestas de Lista de Servicios, Lista de Productos e Información de Subcategoría utilizan el dominio CDN (https://cdn.hstockplus.org/...). Use estas URLs absolutas directamente en su aplicación — no sustituya hstockplus.com ni hstockplus.net.
https://cdn.hstockplus.org/uploads/products/gmail.webpOpcional. Código de idioma de destino. Use uno de los códigos admitidos que se enumeran a continuación. Cuando se establece y no es "en", los campos traducibles se devuelven en ese idioma. Si una traducción aún no está disponible, la API devuelve inglés.
Códigos de idioma admitidos
en(default — omitir lang o usar en)zhdejapt-BRurbn-BDUsa estos valores exactos en el parámetro lang; alias: jp se acepta como ja
Compatible con acciones de lectura: categories, subcategory_info, services, products, inventory ((nombres de subproductos)), sms_projects, y sms_countries. Omite lang o usa en para inglés.
Los parámetros de filtro de categoría y subcategoría en servicios/productos siempre utilizan nombres canónicos en inglés, incluso cuando lang está configurado.
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "lang=zh"Obtener todas las categorías y las subcategorías de cada categoría. Utilice estos valores para filtrar la Lista de Servicios por categoría o subcategoría.
| Parámetro | Descripción | Requerido |
|---|---|---|
| key | Tu clave API | Sí |
| action | categories | Sí |
| lang | Código de idioma opcional; consulta los códigos admitidos en Idioma opcional (lang) arriba | No |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=categories" \
-d "lang=zh"{
"categories": [
{
"category": "Instagram",
"subcategories": ["Followers", "Comments", "Likes"]
},
{
"category": "Email Accounts",
"subcategories": ["Gmail", "Outlook"]
}
]
}Obtén detalles de subcategoría por subcategoryId, incluyendo la categoría padre. Usa subcategoryId de las filas de Products List.
| Parámetro | Descripción | Requerido |
|---|---|---|
| key | Tu clave API | Sí |
| action | subcategory_info | Sí |
| subcategoryId | ID de subcategoría de Products List | Sí |
| lang | Código de idioma opcional; consulta los códigos admitidos en Idioma opcional (lang) arriba | No |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=subcategory_info" \
-d "subcategoryId=674a1f77bcf86cd799439099" \
-d "lang=zh"{
"subcategoryId": "674a1f77bcf86cd799439099",
"name": "Gmail",
"slug": "gmail",
"imageUrl": "https://cdn.hstockplus.org/uploads/subcategories/gmail.webp",
"description": "Verified Gmail accounts",
"category": {
"categoryId": "674a1f77bcf86cd799439088",
"name": "Email Accounts",
"slug": "email-accounts"
}
}Lista de tiendas activas con información básica, cantidad de productos y calificaciones de reseñas. Los nombres de las tiendas están ocultos por privacidad.
| Parámetro | Descripción | Requerido |
|---|---|---|
| key | Tu clave API | Sí |
| action | shops | Sí |
| page | Page number (default 1). | No |
| limit | Items per page (default 20). | No |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=shops"Con paginación:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=shops" \
-d "page=1" \
-d "limit=20"Lista los códigos de cupón de todas las tiendas que se pueden usar ahora mismo, con las condiciones de cada uno. Pasa un código como coupon a action=add. Se incluyen los códigos creados solo para tu cuenta (por ejemplo, un presupuesto de precio por volumen desde un ticket) y se marcan como private.
| Parámetro | Descripción | Requerido |
|---|---|---|
| key | Tu clave API | Sí |
| action | coupons | Sí |
| shop | Solo los cupones de esta tienda (shopId de action=shops). | No |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=coupons"{
"coupons": [
{
"code": "SAVE10",
"type": "percentage",
"value": 10,
"shopId": "6650a1f77bcf86cd79943901",
"shopSlug": "example-shop",
"shopName": "Example Shop",
"appliesTo": "shop",
"minPurchase": 20,
"remainingUses": 87,
"expiresAt": "2026-11-30T23:59:59.000Z"
},
{
"code": "BULK500",
"type": "percentage",
"value": 5,
"shopId": "6650a1f77bcf86cd79943901",
"shopSlug": "example-shop",
"shopName": "Example Shop",
"appliesTo": "services",
"services": [110469, 110470],
"minQuantity": 100,
"quantityTiers": [
{ "minQuantity": 100, "value": 5 },
{ "minQuantity": 500, "value": 12 }
],
"maxUsesPerUser": 1,
"remainingUses": 40
}
],
"total": 2
}| Campo | Significado |
|---|---|
| type / value | percentage: el valor es un porcentaje de descuento. fixed: el valor son USD de descuento sobre el pedido. Con quantityTiers, el valor es el del nivel más bajo. |
| appliesTo | shop: cualquier producto de esta tienda. services: solo los productos cuyos números de servicio figuran en services. Los cupones de tienda no se aplican a los servicios de crecimiento (SMM). |
| minPurchase | El total del pedido antes de descuentos debe ser al menos esta cantidad en USD. |
| minQuantity | La cantidad del pedido debe ser al menos esta. |
| quantityTiers | Una cantidad mayor obtiene un descuento mayor; se aplica el nivel más alto que alcance tu cantidad. |
| maxDiscount | Máximo de USD que el cupón descuenta de un pedido (solo cuando tiene tope). |
| maxUsesPerUser | Cuántas veces puede usar el código una misma cuenta (solo cuando está limitado). |
| remainingUses | Usos restantes entre todos los compradores. |
| expiresAt | El código deja de funcionar después de este momento (se omite cuando no caduca). |
| private | true cuando el código se creó solo para tu cuenta. |
El cupón se descuenta de lo que queda tras el descuento de revendedor. Los campos opcionales se omiten cuando el cupón no tiene esa condición.
Listar solo productos del marketplace (sin servicios SMM). Mismos campos que las filas de productos en la Lista de Servicios, incluyendo id (id de entidad de producto), service (número de servicio amigable), description e imageUrl. productIds opcional devuelve solo esos productos (números de servicio amigables de la lista y/o ids de entidad de producto, separados por comas o array JSON, máximo 100). sort=sold opcional ordena los resultados por unidades de pedido pagadas de forma descendente (más vendidos primero).
| Parámetro | Descripción | Requerido |
|---|---|---|
| key | Tu clave API | Sí |
| action | products | Sí |
| page | Page number (default 1). Used when limit > 0. | No |
| limit | Items per page (default 0 = return all). | No |
| category | Filtra por nombre de categoría (de Get Categories). Devuelve solo los productos de esta categoría. | No |
| subcategory | Filtra por nombre de subcategoría (de Get Categories). Devuelve solo los productos de esta subcategoría. | No |
| shopId | Filtra por ID de tienda (de Shops List); devuelve solo los productos de esa tienda. | No |
| productIds | Optional list of product IDs (service numbers and/or entity ids). Comma-separated, JSON array, or repeated fields. Returns only those products (max 100). | No |
| isRecommended | Opcional: usa true para devolver solo productos con isRecommended === true | No |
| sort | Opcional. sold = ordenar por unidades pagadas de forma descendente (los más vendidos primero). Omitir para mantener el orden predeterminado de caché. | No |
| lang | Código de idioma opcional; consulta los códigos admitidos en Idioma opcional (lang) arriba | No |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=products"Filtrar por IDs de producto:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=products" \
-d "productIds=2,5,9"Con paginación:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=products" \
-d "page=1" \
-d "limit=50"Filtrar por categoría o subcategoría:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=products" \
-d "category=Accounts-Email"
# Or filter by subcategory:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=products" \
-d "subcategory=Gmail"Los más vendidos en una subcategoría:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=products" \
-d "subcategory=Twitter/X" \
-d "sort=sold" \
-d "page=1" \
-d "limit=10"Solo productos recomendados:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=products" \
-d "isRecommended=true"Obtén todos los servicios disponibles con paginación opcional. Cada fila incluye id (ID de entidad), service (número de servicio amigable), stock y entityType (smm o product). El parámetro opcional entityType devuelve solo filas de producto o solo filas smm. Los parámetros opcionales de categoría y subcategoría devuelven solo los servicios de esa categoría o subcategoría (valores de la API Obtener Categorías). El parámetro opcional shopId devuelve solo productos y servicios de esa tienda (usa shopId de la Lista de Tiendas). El parámetro opcional productIds devuelve solo las filas coincidentes (números de servicio amigables y/o IDs de entidad; coincide con filas de producto o smm). Usa action=products para filtrar solo productos.
| Parámetro | Descripción | Requerido |
|---|---|---|
| key | Tu clave API | Sí |
| action | services | Sí |
| page | Page number (default 1). Used when limit > 0. | No |
| limit | Items per page (default 0 = return all). | No |
| category | Filtra por nombre de categoría (de Get Categories). Devuelve solo los servicios de esta categoría. | No |
| subcategory | Filtra por nombre de subcategoría (de Get Categories). Devuelve solo los servicios de esta subcategoría. | No |
| shopId | Filtra por ID de tienda (de Shops List). Devuelve solo los productos y servicios SMM de esa tienda. | No |
| entityType | Filtro opcional: producto o smm. Devuelve solo productos del marketplace o solo servicios de SMM. | No |
| productIds | Lista opcional de IDs (números de servicio amigables y/o IDs de entidad). Separados por comas, array JSON o campos repetidos. Devuelve las filas de productos o SMM que coincidan. Usa action=products solo para productos. | No |
| lang | Código de idioma opcional; consulta los códigos admitidos en Idioma opcional (lang) arriba | No |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "lang=zh"Con paginación:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "page=1" \
-d "limit=50"Filtrar por categoría o subcategoría:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "category=Instagram"
# Or filter by subcategory:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "subcategory=Followers"Filtrar por tipo de entidad:
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=services" \
-d "entityType=product"{
"services": [
{
"id": "507f1f77bcf86cd799439011",
"service": 1,
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram",
"rate": "0.50",
"min": 100,
"max": 10000,
"refill": true,
"cancel": false,
"stock": 10000,
"entityType": "smm",
"autoDelivery": true
},
{
"id": "507f1f77bcf86cd799439012",
"service": 2,
"name": "Gmail Account - USA",
"type": "Default",
"category": "Accounts-Email",
"rate": "25.00",
"min": 1,
"max": 50,
"refill": false,
"cancel": false,
"stock": 50,
"entityType": "product",
"autoDelivery": true,
"description": "Verified Gmail account with recovery email",
"imageUrl": "https://cdn.hstockplus.org/uploads/products/gmail.webp",
"isRecommended": true,
"subcategoryId": "674a1f77bcf86cd799439099",
"sold": 5300,
"sellerRating": 4.0,
"sellerReviewCount": 30,
"returningBuyerRate": 0.52,
"warrantyHours": 12
}
],
"total": 150,
"page": 1,
"limit": 50,
"total_pages": 3
}Cada fila incluye id (ID de entidad) y service (número de servicio amigable para pedidos), stock, entityType (smm o product) y autoDelivery. Las filas de producto también incluyen description, imageUrl, isRecommended y subcategoryId. Cuando limit es 0 o se omite, se devuelven todos los servicios y page/limit equivalen al total.
Las filas de producto también incluyen las cifras que se muestran en la página del producto: service es el número de producto (#48071 en la página), sellerRating y sellerReviewCount son la valoración en estrellas del vendedor y su número de reseñas, returningBuyerRate es la proporción de compradores recurrentes del vendedor (0.52 = 52%), sold son las unidades vendidas y warrantyHours es la ventana de posventa en horas contadas desde la entrega (0 = sin posventa). sellerRating, sellerReviewCount y returningBuyerRate se omiten cuando el vendedor no tiene valoración o tiene muy pocos compradores.
Obtén el stock actual y la disponibilidad de un servicio por su ID (el mismo ID que en la lista de servicios). En los productos del marketplace, el JSON incluye subproducts: un array de variantes activas, cada una con subproductId, name, stock (stock mostrado de esa variante) y su propio precio y límites de pedido: available, rate, min, max y packs para las opciones que se venden en paquetes fijos.
| Parámetro | Descripción | Requerido |
|---|---|---|
| key | Tu clave API | Sí |
| action | inventory | Sí |
| service | ID de servicio (de la lista de servicios) | Sí |
| lang | Código de idioma opcional; consulta los códigos admitidos en Idioma opcional (lang) arriba | No |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=inventory" \
-d "service=23501"{
"service": 1,
"stock": 10000,
"available": true,
"rate": "0.5000",
"entityType": "smm",
"autoDelivery": true
}{
"service": 23501,
"stock": 42,
"available": true,
"rate": "25.0000",
"min": 1,
"max": 42,
"entityType": "product",
"autoDelivery": true,
"subproducts": [
{ "subproductId": "674a1f77bcf86cd799439011", "name": "1 Month", "stock": 42, "available": true, "rate": "25.0000", "min": 1, "max": 42 },
{ "subproductId": "674a1f77bcf86cd799439012", "name": "3 Months", "stock": 0, "available": false, "rate": "60.0000", "min": 1, "max": 0 },
{
"subproductId": "674a1f77bcf86cd799439013", "name": "Pack", "stock": 500, "available": true, "rate": "0.0190", "min": 100, "max": 100,
"packs": [
{ "quantity": 100, "price": "1.9000", "discountPercent": 5 },
{ "quantity": 500, "price": "9.0000", "discountPercent": 10 }
]
}
],
"warrantyHours": 24
}La respuesta incluye rate (por unidad, mismo formato de cadena que la lista de servicios), entityType (smm o product) y autoDelivery (true = entrega automática, false = el proveedor completa manualmente). Para servicios de producto, min y max coinciden con la fila del subproducto principal en la lista de servicios; si ese subproducto no puede cumplir con tu pedido, la plataforma puede seleccionar otro subproducto y cobrar su precio unitario. El array subproducts lista cada variante activa con stock visible; las respuestas de inventario SMM omiten subproducts.
Cada subproducto tiene su propio rate, min y max: es el precio unitario y el rango de cantidad que add cobra cuando pasas ese subproductId, antes de cualquier descuento de revendedor de tu cuenta. En las opciones que se venden en paquetes fijos, packs enumera cada paquete en stock (quantity, total price, discountPercent) y debes pedir una de esas cantidades; rate, min y max describen entonces el paquete más pequeño.
warrantyHours (products only) is the product's after-sales window in hours counted from delivery, the same figure as in the services list; 0 means no after-sales.
Place a standard order with link and quantity. Link: for SMM services (e.g. followers, likes) — required, use the URL to the content (e.g. Instagram post); for product orders (e.g. accounts) — optional, if empty the system uses your account email for delivery. For products with multiple options (Select Option on the website), pass subproductId (from action=inventory) to choose which option to order — otherwise the default option is used.
| Parámetro | Descripción | Requerido |
|---|---|---|
| key | Tu clave API | Sí |
| action | add | Sí |
| service | ID de servicio | Sí |
| link | Link: En pedidos SMM (por ejemplo seguidores, me gusta, comentarios): obligatorio — URL o enlace al contenido (por ejemplo la URL de una publicación de Instagram). En pedidos de productos (por ejemplo cuentas): opcional — correo de entrega o referencia; si está vacío, el sistema usa el correo de tu cuenta. | No |
| quantity | Cantidad que pedir | Sí |
| subproductId | Solo productos: elige una opción concreta (variante de Select Option) en lugar de la predeterminada; usa el valor subproductId devuelto por action=inventory para este servicio. Opcional; no se usa para servicios de crecimiento/SMM. | No |
| coupon | Código de cupón (de action=coupons o de una página de tienda). Opcional. Se aplica además de cualquier descuento de revendedor, con las mismas condiciones que el pago en el sitio web; si el código no se puede usar, el pedido no se realiza y el error indica el motivo. | No |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=add" \
-d "service=1" \
-d "link=https://instagram.com/username" \
-d "quantity=1000"
# Product with multiple options: pick the subproductId from action=inventory
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=add" \
-d "service=110469" \
-d "quantity=1" \
-d "subproductId=674a1f77bcf86cd799439012"
# With a coupon code from action=coupons
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=add" \
-d "service=110469" \
-d "quantity=10" \
-d "coupon=SAVE10"{
"order": 23501,
"entityType": "product",
"charge": "22.5000",
"couponDiscount": "2.5000",
"warrantyHours": 24
}charge is what was taken from your balance. couponDiscount is present only when a coupon was applied. warrantyHours (products only) is the after-sales window in hours counted from delivery, 0 = no after-sales; action=status returns the exact end time as warranty_expires_at.
Obtener el estado de un pedido.
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | status |
| order | ID del pedido |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=status" \
-d "order=23501"{
"status": "In progress",
"charge": "5.00",
"start_count": 1000,
"remains": 500,
"currency": "USD",
"autoDelivery": true
}Para pedidos de productos (por ejemplo, cuentas), cuando el pedido se entrega total o parcialmente, la respuesta incluye un array "accounts" con las credenciales de las cuentas entregadas (una cadena por cuenta). Para entregas parciales, solo se devuelven las cuentas entregadas hasta el momento.
autoDelivery: true si el pedido se cumple automáticamente (por ejemplo, SMM, productos de inventario/automáticos); false si el proveedor debe cumplirlo manualmente (puede tomar algo de tiempo).
{
"status": "Completed",
"charge": "10.00",
"start_count": 5,
"remains": 0,
"currency": "USD",
"entityType": "product",
"autoDelivery": true,
"accounts": [
"user1:pass1",
"user2:pass2"
]
}Un pedido reembolsado devuelve Canceled y un pedido reembolsado parcialmente devuelve Partial. Cuando se ha reembolsado dinero, la respuesta incluye además "refunded" con el importe reembolsado en USD.
Algunos productos (por ejemplo, cuentas de Telegram con archivos de sesión) se entregan como archivos ZIP en lugar de, o además de, las credenciales en texto. La respuesta incluye entonces un array "files". Cada archivo es un elemento entregado. Descarga un archivo con action=order_file.
{
"status": "Completed",
"charge": "12.00",
"start_count": 0,
"remains": 0,
"currency": "USD",
"entityType": "product",
"autoDelivery": false,
"files": [
{
"id": "66e6b2f0c3a1d2e4f5a6b7c8",
"name": "sessions-001.zip",
"size": 482113,
"uploaded_at": "2026-09-15T08:30:00.000Z"
}
]
}Descarga un archivo de entrega (ZIP) de tu pedido. Si tiene éxito, el cuerpo de la respuesta es el propio archivo (Content-Type: application/zip); si falla, es JSON con un campo "error".
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | order_file |
| order | ID del pedido |
| file | ID de archivo del array "files" de action=status |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=order_file" \
-d "order=23501" \
-d "file=66e6b2f0c3a1d2e4f5a6b7c8" \
-o sessions-001.zip{
"error": "File not found"
}Comprueba la cabecera Content-Type antes de guardar: application/zip significa que es el archivo, application/json significa que es un error.
Cancelar uno o más pedidos (formato de lote compatible con PerfectPanel). Cada pedido elegible se reembolsa a tu saldo.
Todo lo siguiente debe ser cierto. Usa allowcancel para verificar la elegibilidad sin procesar un reembolso.
La entrega parcial genera un reembolso parcial proporcional; las cuentas entregadas se conservan.
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | cancel |
| orders | IDs de pedidos (separados por coma, hasta 100 IDs) |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=cancel" \
-d "orders=23501,23502"[
{
"order": 23501,
"cancel": 1
},
{
"order": 23502,
"cancel": {
"error": "Incorrect order ID"
}
}
]Verificar si uno o más pedidos pueden cancelarse en este momento (mismas reglas de elegibilidad que cancelar, pero no se procesa ningún reembolso). Úselo antes de llamar a cancelar para evitar solicitudes fallidas. Admite IDs de pedidos en lote (separados por coma, hasta 100).
Todo lo siguiente debe ser cierto. Usa allowcancel para verificar la elegibilidad sin procesar un reembolso.
Cuando allowcancel es 1, la respuesta incluye refundAmount (el monto que cancel devolvería).
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | allowcancel |
| orders | IDs de pedidos (separados por coma, hasta 100 IDs) |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=allowcancel" \
-d "orders=23501,23502"[
{
"order": 23501,
"allowcancel": 1,
"refundAmount": 5.00
},
{
"order": 23502,
"allowcancel": 0,
"error": "Early auto refund is not available for this order",
"reason": "BEFORE_MIN_WAIT",
"eligibleAfter": "2026-06-23T12:30:00.000Z"
}
]Obtén tu saldo actual.
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | balance |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=balance"{
"balance": "100.00",
"currency": "USD"
}Order count and totals for a date range, for reconciliation. Counts the same orders as the Your orders page.
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | orders_summary |
| date_from | Optional. First day, YYYY-MM-DD, inclusive. |
| date_to | Optional. Last day, YYYY-MM-DD, inclusive. |
| tz | Optional. Your timezone, as minutes east of UTC (480 for UTC+8) or +08:00. Days start at midnight in this timezone. Default UTC. |
curl -X POST https://hstockplus.net/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=orders_summary" \
-d "date_from=2026-10-31" \
-d "date_to=2026-10-31" \
-d "tz=480"{
"date_from": "2026-10-30T16:00:00.000Z",
"date_to": "2026-10-31T16:00:00.000Z",
"orders": 126,
"refunded_orders": 3,
"gross": "412.5000",
"refunded": "6.2000",
"net": "406.3000",
"currency": "USD"
}date_from and date_to echo the range as UTC instants (date_to is exclusive). Only paid orders are counted; unpaid and failed orders are ignored. orders is the number of paid orders, gross is what you paid, refunded is what came back to you, net = gross - refunded. Call at most once every 2 seconds.
Puntos de acceso dedicados para servicios de verificación por SMS.
Los pedidos de SMS tienen sus propios IDs de pedido. Úsalos con sms_code, sms_status y sms_cancel; status, cancel y allowcancel son solo para pedidos de productos y SMM.
Action: sms_projects
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | sms_projects |
| country | Opcional. Filtra por ID de país (por ejemplo 'us', 'gb') |
| lang | Código de idioma opcional; consulta los códigos admitidos en Idioma opcional (lang) arriba |
[
{
"project_id": "65f...",
"name": "OpenAI / ChatGPT",
"price": "0.5000",
"country_id": "us",
"country_title": "United States"
}
]Action: sms_countries
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | sms_countries |
| lang | Código de idioma opcional; consulta los códigos admitidos en Idioma opcional (lang) arriba |
[
{
"country_code": "+1",
"country_name": "United States"
},
{
"country_code": "+44",
"country_name": "United Kingdom"
}
]Action: add_sms
| Parámetro | Descripción | Requerido |
|---|---|---|
| key | Tu clave API | |
| action | add_sms | |
| project_id | ID de proyecto de sms_projects | Sí |
| quantity | Number of numbers (1-10) | No (Default 1) |
| country | Country: ISO code (e.g. 'us') or dial code from sms_countries (e.g. '+1') | No |
| phone | Número de teléfono que reutilizar | No |
{
"orders": [
{
"order": 12345,
"phone": "4055123415",
"dial_code": "+1",
"phone_full": "+14055123415",
"country": "US",
"expires_at": "2026-01-01T12:15:00.000Z",
"status": "active"
}
]
}Action: sms_code
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | sms_code |
| order | ID del pedido |
{
"status": "completed",
"code": "123456",
"sms_content": "Your verification code is 123456"
}
// OR
{
"status": "waiting",
"message": "Waiting for code"
}
// OR, once expires_at has passed without a code (call sms_cancel for a refund)
{
"status": "expired",
"message": "No code arrived before the number expired. Call action=sms_cancel for a refund."
}Action: sms_status
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | sms_status |
| order | ID del pedido |
{
"status": "code_received",
"phone": "4055123415",
"dial_code": "+1",
"phone_full": "+14055123415",
"code": "123456",
"charge": "0.5000",
"currency": "USD",
"refunded": false,
"expires_at": "2026-01-01T12:15:00.000Z"
}
// status: phone_acquired | code_received | expired | releasedAction: sms_cancel
Libera el número. Si no se recibió ningún código, se reembolsa el cargo completo a tu saldo, incluso después de que el número haya caducado. Los pedidos que ya recibieron un código no se pueden cancelar.
| Parámetro | Descripción |
|---|---|
| key | Tu clave API |
| action | sms_cancel |
| order | ID de pedido de add_sms |
{
"order": 12345,
"status": "cancelled",
"refunded": true,
"refund_amount": "0.5000",
"currency": "USD"
}
// OR
{
"error": "Verification code already received, cannot release"
}Respuestas de error comunes que puedes encontrar.
{"error": "Invalid API key"}{"error": "Invalid action"}{"error": "Service ID is required"}{"error": "Insufficient balance"}{"error": "Order not found"}{"error": "Service not found"}¿Necesitas ayuda? Contáctanos en support@hstockplus.com