API para developers

Referencia pública de los endpoints más usados de VendeHub. Para integraciones profundas, escribe a [email protected].

Base URL

https://app.vendehub.com/api

Autenticación

Los endpoints marcados como JWT requieren un access token en el header Authorization: Bearer <token> o como cookie HttpOnly mc_access_token.

Obtén el token desde POST /auth/login. El access expira en 30 min; usa POST /auth/refresh para renovarlo.

Throttling

Endpoints públicos sensibles tienen throttle agresivo por IP. Si recibes 429 Too Many Requests, espera 60 segundos y reintenta.

Salud del sistema

Endpoints para monitoreo externo. No requieren auth.

GET/healthPúblico

Healthcheck simple — usado por load balancers y healthchecks Docker.

Ver curl + respuesta

Ejemplo curl

curl -X GET https://app.vendehub.com/api/health

Respuesta de ejemplo

{ "status": "ok" }
GET/health/servicesPúblico

Estado individual de API, DB y Redis con latencias.

Ver curl + respuesta

Ejemplo curl

curl -X GET https://app.vendehub.com/api/health/services

Respuesta de ejemplo

{
  "overall": "operational",
  "services": {
    "api": { "status": "operational", "latencyMs": 0 },
    "database": { "status": "operational", "latencyMs": 4 },
    "redis": { "status": "operational", "latencyMs": 1 }
  },
  "checkedAt": "2026-05-24T18:32:11.000Z"
}

Planes

Catálogo de planes comerciales. Versión pública sin auth.

GET/plans/public/catalogPúblico

Lista los 5 planes vendibles.

Ver curl + respuesta

Ejemplo curl

curl -X GET https://app.vendehub.com/api/plans/public/catalog

Respuesta de ejemplo

[
  {
    "code": "STARTER",
    "name": "Starter",
    "priceUsdMonthly": 20,
    "limits": [
      { "key": "limits.products", "value": 100 }
    ]
  }
]

Changelog

Release notes publicadas.

GET/changelog/public?limit=50Público

Últimas N entradas publicadas. Max 100.

Ver curl + respuesta

Ejemplo curl

curl -X GET https://app.vendehub.com/api/changelog/public?limit=50
GET/changelog/public/:slugPúblico

Detalle de una entrada por slug.

Ver curl + respuesta

Ejemplo curl

curl -X GET https://app.vendehub.com/api/changelog/public/:slug

Auth

Endpoints de autenticación.

POST/auth/loginPúblico

Sesión inicial. Throttle 10/min por IP.

Ver curl + respuesta

Ejemplo curl

curl -X POST https://app.vendehub.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{ "email": "[email protected]", "password": "..." }'

Respuesta de ejemplo

{
  "accessToken": "eyJhbGc...",
  "user": { "id": "...", "email": "..." }
}
POST/auth/refreshPúblico

Renueva el access token usando el refresh cookie.

Ver curl + respuesta

Ejemplo curl

curl -X POST https://app.vendehub.com/api/auth/refresh
POST/auth/password-reset/requestPúblico

Manda email con link de reset. Throttle 3/min.

Ver curl + respuesta

Ejemplo curl

curl -X POST https://app.vendehub.com/api/auth/password-reset/request \
  -H "Content-Type: application/json" \
  -d '{ "email": "[email protected]" }'
GET/auth/meJWT

Perfil del usuario actual.

Ver curl + respuesta

Ejemplo curl

curl -X GET https://app.vendehub.com/api/auth/me \
  -H "Authorization: Bearer $TOKEN"

Tenants

Crear tenants (signup) es público. El resto requiere JWT.

POST/tenantsPúblico

Signup público. Throttle 5/hora por IP.

Ver curl + respuesta

Ejemplo curl

curl -X POST https://app.vendehub.com/api/tenants \
  -H "Content-Type: application/json" \
  -d '{\n  "name": "Mi empresa",\n  "ownerEmail": "[email protected]",\n  "ownerPassword": "min 8 chars",\n  "ownerName": "Tu nombre",\n  "planCode": "STARTER"\n}'
GET/tenants/meJWT

Tenant del usuario logueado.

Ver curl + respuesta

Ejemplo curl

curl -X GET https://app.vendehub.com/api/tenants/me \
  -H "Authorization: Bearer $TOKEN"

Feedback

Captura de feedback del usuario.

POST/feedbackJWT

Crear entrada de feedback. Throttle 5/min.

Ver curl + respuesta

Ejemplo curl

curl -X POST https://app.vendehub.com/api/feedback \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{\n  "category": "bug",\n  "message": "...",\n  "rating": 4\n}'

¿Necesitas más?

Si planeas una integración custom (sync bidireccional, OAuth, webhooks salientes), podemos darte acceso a endpoints adicionales.

Escribir a partners