Autenticación
La API de Integración de SalesOS utiliza API Keys para la autenticación. Cada clave tiene alcance a un solo tenant, se hashea con bcrypt y soporta límites de tasa y listas de IPs permitidas.Entornos
- Production
- Staging
URL Base:
https://api.play2sell.comDashboard: https://dashboard.play2sell.comApp: https://app.play2sell.comInicio Rápido
1. Crear una API Key
Ve a Integraciones > API Keys en el Dashboard de SalesOS:- Haz clic en Crear API Key
- Nombra tu clave (ej., “Sincronización Nocturna CRM”, “Integración Formulario Web”)
- Selecciona el alcance:
default:sync - Haz clic en Crear
- Copia la clave inmediatamente — solo se mostrará una vez
2. Usar la Clave en las Solicitudes
Incluye la clave en el headerAuthorization de cada solicitud a la API:
3. Verificar la Respuesta
Éxito (200):Propiedades de la API Key
| Propiedad | Detalles |
|---|---|
| Prefijo | sk_live_ (producción) o sk_test_ (pruebas) |
| Alcance | default:sync — habilita sync_collaborators y sync_activities |
| Límite de tasa | Configurable por clave (por defecto: 1000 solicitudes/hora) |
| Expiración | Opcional — establece una fecha de vencimiento o déjala sin expirar |
| Lista de IPs permitidas | Opcional — restringe a direcciones IP específicas |
| Almacenamiento | Hasheada con bcrypt — la clave en texto plano nunca se almacena |
Formatos de Clave
SalesOS usa dos prefijos de clave para distinguir ambientes:| Prefijo | Ambiente | Caso de uso |
|---|---|---|
sk_live_ | Producción | Datos reales, misiones reales, puntos reales |
sk_test_ | Pruebas | Seguro para usar durante desarrollo — sin impacto en producción |
Errores de Autenticación
| Estado HTTP | Código de Error | Significado | Qué hacer |
|---|---|---|---|
| 401 | UNAUTHORIZED | La clave falta, es inválida o expiró | Verifica el header Authorization. Confirma la clave en el Dashboard. |
| 403 | FORBIDDEN | La clave es válida pero no tiene el alcance requerido | Edita la clave y agrega el alcance default:sync |
| 429 | RATE_LIMITED | Demasiadas solicitudes en esta hora | Espera retry_after segundos, luego reintenta |
Ejemplo: Header Authorization faltante
Ejemplo: Prefijo de clave incorrecto
Ejemplo: Clave sin el alcance requerido
Si tu clave solo tieneleads:read pero el endpoint requiere default:sync:
Ejemplo: Límite de tasa excedido
retry_after indica cuántos segundos debes esperar. La ventana de límite de tasa se reinicia cada hora.
Límites de Tasa
Cada API key tiene un contador de límite de tasa independiente que se reinicia cada hora:| Configuración | Por defecto | Rango |
|---|---|---|
| Solicitudes por hora | 1000 | 1 — 100,000 |
- Cada solicitud exitosa incrementa el contador
- Cuando el contador alcanza el límite, las solicitudes siguientes retornan
429 - El contador se reinicia a 0 una hora después de la primera solicitud en la ventana
Mejores Prácticas de Seguridad
- Usa variables de entorno — Almacena
SALESOS_API_KEYen variables de entorno o un gestor de secretos, nunca en el código fuente - Rota las claves periódicamente — Crea una nueva clave, actualiza tu integración, luego revoca la anterior
- Usa listas de IPs permitidas — Si tu integración se ejecuta desde IPs fijas, restringe la clave solo a esas IPs
- Monitorea el uso — Revisa los logs de uso de la API en el Dashboard para detectar patrones inesperados
- Usa
sk_test_para desarrollo — Las claves de prueba aíslan tu ambiente de desarrollo de producción - Revoca claves comprometidas inmediatamente — Ve a Dashboard > Admin > API Keys > Revocar
Ejemplo de rotación de claves
Gestion Self-Service de API Keys
Ademas de crear claves en el Dashboard, los administradores del tenant pueden gestionar API keys programaticamente via la API. Esto permite:- Rotacion automatizada de claves en pipelines CI/CD
- Workflows de onboarding de socios que provisionan claves bajo demanda
- Paneles admin personalizados que integran gestion de claves
Gestion de API Keys
Crea, lista y revoca claves via API usando tu token JWT del Dashboard
Proximos Pasos
Integracion por Defecto
Comienza a enviar actividades a SalesOS
API Keys
Gestiona claves programaticamente

