Autenticacion
Como autenticar tus requests a la API de SouthGames.
Todas las llamadas a la API requieren dos headers:
| Header | Descripcion |
|---|---|
Authorization | Bearer <api_key> — tu API key |
X-Org-Id | El slug o ID de tu organizacion |
API Keys
Las API keys se generan desde Configuracion > Desarrollador en la consola. Cada key tiene un prefijo que indica su tipo:
| Prefijo | Tipo | Uso |
|---|---|---|
sg_live_ | Produccion | App en produccion |
sg_test_ | Test | Desarrollo y pruebas |
Generar una API key
- Ve a Configuracion > Desarrollador en la consola
- Haz clic en "Crear API Key"
- Asigna un nombre descriptivo
- Copia la key — solo se muestra una vez
Permisos (scopes)
Al crear una key eliges su nivel de permiso:
| Permiso | Scope | Que permite |
|---|---|---|
| Acceso completo | * | Todos los endpoints (lectura y escritura) y el endpoint MCP |
| Solo metricas | metrics:read | Solo lectura: la API de metricas y otros endpoints GET. No puede escribir ni usar MCP. |
Una key Solo metricas (metrics:read) es de solo lectura: si intenta un endpoint de escritura (p. ej. /points/spend, /games/play) o el endpoint MCP (/api/mcp), recibe 403 con codigo INSUFFICIENT_SCOPE. Esta pensada para integraciones de extraccion de datos/BI. (No restringe la lectura a solo metricas: tambien puede llamar otros endpoints GET de la API.) Las keys creadas antes de existir los scopes se tratan como acceso completo.
Seguridad
- Nunca expongas tu API key en codigo frontend o repositorios publicos
- Usa variables de entorno para almacenar keys
- Rota las keys periodicamente desde la consola
- Puedes desactivar o eliminar keys sin afectar otras
- Para integraciones de BI/extraccion de datos, usa una key Solo metricas
Ejemplo de request
curl -X POST https://southgames.ai/api/v1/clients/register \
-H "Authorization: Bearer sg_live_xxxxxxxxxxxxxxxx" \
-H "X-Org-Id: mi-empresa" \
-H "Content-Type: application/json" \
-d '{"externalId": "user_123", "email": "user@example.com"}'
Errores de autenticacion
| Codigo | HTTP | Descripcion |
|---|---|---|
MISSING_API_KEY | 401 | Falta el header Authorization |
MISSING_ORG_ID | 401 | Falta el header X-Org-Id |
INVALID_API_KEY | 401 | Key invalida o desactivada |
API_KEY_EXPIRED | 401 | Key expirada |
ORG_NOT_FOUND | 404 | Organizacion no encontrada |
INSUFFICIENT_SCOPE | 403 | La key no tiene el permiso requerido para el endpoint |
RATE_LIMITED | 429 | Se supero el limite de solicitudes de la key |