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éticas
citas-energeticasConversión Año Maya
conversion-ano-mayaCalculadora Maya
calculadora-mayaConvertidor Calendario Maya
convertidor-calendarioEndpoints
POST
/api/verify-authVerifica 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-usageVerifica 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-usageRegistra 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-statusObtiene 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
}