Documentación de la API

Guía de integración para las aplicaciones de Energías Mayas

Base URL

La URL de este portal desplegado

Autenticación

Cookies de sesión NextAuth o userId/email en body

Rate Limiting

Usuarios gratis: 1 uso/día/app

IDs de Aplicaciones

Citas Energéticascitas-energeticas
Conversión Año Mayaconversion-ano-maya
Calculadora Mayacalculadora-maya
Convertidor Calendario Mayaconvertidor-calendario

Endpoints

POST
/api/verify-auth

Verifica si la sesión del usuario es válida.

Request

// Enviar cookies de sesión (credentials: include)

Response

{
  "valid": true,
  "user": {
    "id": "clxx...",
    "email": "[email protected]",
    "name": "Nombre"
  }
}
POST
/api/check-usage

Verifica si el usuario puede usar una aplicación específica.

Request

{
  "userId": "clxx..." | null,
  "email": "[email protected]" | null,
  "appName": "citas-energeticas"
}

Response

{
  "puede_usar": true,
  "usos_restantes": 1,
  "es_premium": false
}
POST
/api/register-usage

Registra un uso de aplicación. Devuelve error 429 si se excede el límite.

Request

{
  "userId": "clxx..." | null,
  "email": "[email protected]" | null,
  "appName": "calculadora-maya"
}

Response

{
  "success": true,
  "usos_restantes": 0,
  "es_premium": false
}
GET
/api/user-status

Obtiene el estado completo del usuario autenticado (suscripción, usos, pagos).

Request

// Requiere sesión autenticada (cookies)

Response

{
  "user": { ... },
  "subscription": {
    "status": "active",
    "isPremium": true,
    "endDate": "2025-04-17T..."
  },
  "usage": [...],
  "payments": [...]
}

Ejemplo de Integración Rápida

// Antes de permitir uso en tu app, verifica:
const res = await fetch('TU_PORTAL_URL/api/check-usage', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    email: '[email protected]',
    appName: 'calculadora-maya'
  })
});
const data = await res.json();

if (data.puede_usar) {
  // Registrar el uso
  await fetch('TU_PORTAL_URL/api/register-usage', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      email: '[email protected]',
      appName: 'calculadora-maya'
    })
  });
  // Permitir acceso a la funcionalidad
} else {
  // Mostrar mensaje de límite alcanzado
  // Sugerir suscripción premium
}