Documentación
API pública
Consulta las cuentas 2FA de un equipo y obtén sus códigos TOTP desde tus propias herramientas, con un token propio.
La API permite a un cliente autorizado consultar las cuentas 2FA de un equipo y obtener sus códigos TOTP.
export API_URL="https://app.shareauth.net"
export API_TOKEN="1|tu-token-sanctum"
Usa únicamente HTTPS en producción. Las peticiones y respuestas están en formato JSON.
Autenticación
Crea un token Sanctum:
curl -X POST "$API_URL/api/tokens/create" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email":"[email protected]",
"password":"contrasena",
"device_name":"mi-conector",
"code":"123456"
}'
El campo code solo es obligatorio si la cuenta protege su acceso con 2FA. recovery_code puede sustituirlo.
Respuesta:
{
"token": "1|abcdefghijklmnopqrstuvwxyz",
"user": {
"id": 12,
"name": "Alice",
"email": "[email protected]"
}
}
Guarda este token como un secreto y envíalo después en la cabecera:
Authorization: Bearer 1|abcdefghijklmnopqrstuvwxyz
Accept: application/json
Equipo activo
Los códigos devueltos pertenecen siempre al equipo activo del usuario.
Listar los equipos accesibles:
curl "$API_URL/api/v1/teams" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Accept: application/json"
Cambiar de equipo activo:
curl -X POST "$API_URL/api/v1/teams/42/switch" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Accept: application/json"
Listar las cuentas 2FA
curl "$API_URL/api/v1/secrets" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Accept: application/json"
Respuesta abreviada:
{
"data": [
{
"id": 7,
"name": "GitHub production",
"issuer": "GitHub",
"digits": 6,
"period": 30
}
],
"meta": {
"total": 1,
"limit": 10,
"remaining": 9
}
}
La semilla TOTP nunca se incluye en las respuestas.
Obtener un código
Usa el identificador devuelto por la lista:
curl -X POST "$API_URL/api/v1/secrets/7/generate" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Accept: application/json"
Respuesta:
{
"data": {
"secret_name": "GitHub production",
"code": "123456",
"next_code": "654321",
"time_remaining": 18,
"period": 30,
"expires_at": "2026-08-13T12:00:30.000000Z"
}
}
Cada generación queda registrada en el registro de accesos del equipo. No registres el código en el lado del cliente.
Errores
| Estado | Significado |
|---|---|
401 |
token ausente o no válido |
403 |
acceso denegado o secreto fuera del equipo activo |
404 |
recurso no encontrado |
422 |
datos no válidos, equipo ausente o código imposible de generar |
429 |
límite de 60 peticiones por minuto superado |
Un error de validación suele tener este formato:
{
"message": "The given data was invalid.",
"errors": {
"email": ["The email field is required."]
}
}
Conector MCP
El conector listo para usar con ChatGPT, Codex, Claude y otros clientes MCP está documentado en mcp-server/README.md, en el repositorio del proyecto.