API de Equipos
Gestiona equipos, miembros, roles e invitaciones para la construcción colaborativa de formularios.
La API de Equipos te permite crear y gestionar equipos para la construcción colaborativa de formularios. Los equipos permiten que múltiples usuarios compartan formularios, con control de acceso basado en roles que gobierna quién puede ver, editar y eliminar formularios y respuestas.
Todos los cuerpos de solicitud y respuesta utilizan nombres de campo en snake_case.
Roles de Equipo
ownerroleAcceso completo. Puede gestionar miembros, facturación y eliminar el equipo.
adminrolePuede crear, editar y eliminar formularios, gestionar miembros y ver respuestas.
editorrolePuede crear y editar formularios, ver respuestas. No puede gestionar miembros.
viewerrolePuede ver formularios y respuestas. No puede crear ni editar.
/api/v1/teamsPOST/api/v1/teamsGET/api/v1/teams/:teamIdPUT/api/v1/teams/:teamIdDELETE/api/v1/teams/:teamIdGET/api/v1/teams/:teamId/membersPOST/api/v1/teams/:teamId/membersPUT/api/v1/teams/:teamId/members/:memberIdDELETE/api/v1/teams/:teamId/members/:memberIdGET/api/v1/teams/:teamId/invitationsPOST/api/v1/teams/:teamId/invitationsDELETE/api/v1/teams/:teamId/invitations/:invIdListar Equipos
/api/v1/teamsDevuelve todos los equipos de los que el usuario autenticado es miembro.
Respuesta
{
"teams": [
{
"id": "665b2c3d4e5f6a7b8c9d0e1f",
"name": "Marketing",
"slug": "marketing",
"owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
"created_at": "2026-01-10T09:00:00.000Z",
"updated_at": "2026-02-15T11:30:00.000Z",
"member_count": 5,
"your_role": "admin"
},
{
"id": "665c3d4e5f6a7b8c9d0e1f20",
"name": "Product",
"slug": "product",
"owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
"created_at": "2026-02-01T14:00:00.000Z",
"updated_at": "2026-02-20T16:45:00.000Z",
"member_count": 3,
"your_role": "owner"
}
]
}
Ejemplos de Código
curl -X GET "https://api.nueform.io/api/v1/teams" \
-H "Authorization: Bearer YOUR_API_KEY"
Crear Equipo
/api/v1/teamsCrea un nuevo equipo. El usuario autenticado se convierte en el propietario del equipo.
Cuerpo de Solicitud
namestringNombre del equipo
Ejemplo de Solicitud
{
"name": "Marketing"
}
Respuesta
{
"id": "665b2c3d4e5f6a7b8c9d0e1f",
"name": "Marketing",
"slug": "marketing",
"owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
"created_at": "2026-02-28T12:00:00.000Z",
"updated_at": "2026-02-28T12:00:00.000Z"
}
Ejemplos de Código
curl -X POST "https://api.nueform.io/api/v1/teams" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Marketing" }'
Obtener Equipo
/api/v1/teams/:teamIdObtiene un equipo individual por ID.
Parámetros de Ruta
teamIdstringEl ID del equipo
Respuesta
{
"id": "665b2c3d4e5f6a7b8c9d0e1f",
"name": "Marketing",
"slug": "marketing",
"owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
"created_at": "2026-01-10T09:00:00.000Z",
"updated_at": "2026-02-15T11:30:00.000Z",
"member_count": 5
}
Ejemplos de Código
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
-H "Authorization: Bearer YOUR_API_KEY"
Actualizar Equipo
/api/v1/teams/:teamIdActualiza las propiedades del equipo. Requiere rol owner o admin.
Parámetros de Ruta
teamIdstringEl ID del equipo
Cuerpo de Solicitud
namestringNuevo nombre del equipo
Ejemplo de Solicitud
{
"name": "Marketing & Growth"
}
Respuesta
Devuelve el objeto del equipo actualizado.
Ejemplos de Código
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Marketing & Growth" }'
Eliminar Equipo
/api/v1/teams/:teamIdElimina permanentemente un equipo. Solo el propietario del equipo puede eliminarlo.
Eliminar un equipo remueve todas las membresías e invitaciones del equipo. Los formularios que pertenecen al equipo no se eliminan automáticamente, pero serán inaccesibles para los antiguos miembros del equipo.
Parámetros de Ruta
teamIdstringEl ID del equipo
Respuesta
{
"success": true
}
Ejemplos de Código
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
-H "Authorization: Bearer YOUR_API_KEY"
Listar Miembros
/api/v1/teams/:teamId/membersDevuelve todos los miembros de un equipo.
Parámetros de Ruta
teamIdstringEl ID del equipo
Respuesta
{
"members": [
{
"id": "66d1e2f3a4b5c6d7e8f9a0b1",
"user_id": "665a0a1b2c3d4e5f6a7b8c9d",
"email": "alice@example.com",
"first_name": "Alice",
"last_name": "Johnson",
"role": "owner",
"joined_at": "2026-01-10T09:00:00.000Z"
},
{
"id": "66d2e3f4a5b6c7d8e9f0a1b2",
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"email": "bob@example.com",
"first_name": "Bob",
"last_name": "Smith",
"role": "editor",
"joined_at": "2026-01-15T14:30:00.000Z"
}
]
}
Ejemplos de Código
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
-H "Authorization: Bearer YOUR_API_KEY"
Agregar Miembro
/api/v1/teams/:teamId/membersAgrega un usuario directamente a un equipo por ID de usuario. Requiere rol owner o admin. Para invitar a un usuario por email, usa Crear Invitación en su lugar.
Parámetros de Ruta
teamIdstringEl ID del equipo
Cuerpo de Solicitud
user_idstringEl ID del usuario a agregar
rolestringRol a asignar: "admin", "editor", "viewer" (por defecto: "viewer")
Ejemplo de Solicitud
{
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"role": "editor"
}
Respuesta
{
"id": "66d2e3f4a5b6c7d8e9f0a1b2",
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f",
"role": "editor",
"joined_at": "2026-02-28T12:00:00.000Z"
}
Ejemplos de Código
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"role": "editor"
}'
Actualizar Rol de Miembro
/api/v1/teams/:teamId/members/:memberIdActualiza el rol de un miembro del equipo. Requiere rol owner o admin. No puedes cambiar el rol del propietario.
Parámetros de Ruta
teamIdstringEl ID del equipo
memberIdstringEl ID del miembro del equipo
Cuerpo de Solicitud
rolestringNuevo rol: "admin", "editor", "viewer"
Ejemplo de Solicitud
{
"role": "admin"
}
Respuesta
{
"id": "66d2e3f4a5b6c7d8e9f0a1b2",
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f",
"role": "admin",
"joined_at": "2026-01-15T14:30:00.000Z"
}
Ejemplos de Código
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "role": "admin" }'
Eliminar Miembro
/api/v1/teams/:teamId/members/:memberIdElimina un miembro de un equipo. Requiere rol owner o admin. El propietario del equipo no puede ser eliminado.
Parámetros de Ruta
teamIdstringEl ID del equipo
memberIdstringEl ID del miembro del equipo
Respuesta
{
"success": true
}
Ejemplos de Código
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
-H "Authorization: Bearer YOUR_API_KEY"
Listar Invitaciones
/api/v1/teams/:teamId/invitationsDevuelve todas las invitaciones pendientes de un equipo. Requiere rol owner o admin.
Parámetros de Ruta
teamIdstringEl ID del equipo
Respuesta
{
"invitations": [
{
"id": "66e1f2a3b4c5d6e7f8a9b0c1",
"email": "carol@example.com",
"role": "editor",
"invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
"status": "pending",
"expires_at": "2026-03-07T12:00:00.000Z",
"created_at": "2026-02-28T12:00:00.000Z"
}
]
}
Ejemplos de Código
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
-H "Authorization: Bearer YOUR_API_KEY"
Crear Invitación
/api/v1/teams/:teamId/invitationsEnvía una invitación por email para unirse a un equipo. La invitación incluye un token único y expira después de 7 días. Requiere rol owner o admin.
Parámetros de Ruta
teamIdstringEl ID del equipo
Cuerpo de Solicitud
emailstringDirección de email a invitar
rolestringRol a asignar al aceptar: "admin", "editor", "viewer" (por defecto: "editor")
Ejemplo de Solicitud
{
"email": "carol@example.com",
"role": "editor"
}
Respuesta
{
"id": "66e1f2a3b4c5d6e7f8a9b0c1",
"email": "carol@example.com",
"role": "editor",
"invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
"status": "pending",
"expires_at": "2026-03-07T12:00:00.000Z",
"created_at": "2026-02-28T12:00:00.000Z"
}
Ejemplos de Código
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "carol@example.com",
"role": "editor"
}'
Cancelar Invitación
/api/v1/teams/:teamId/invitations/:invIdCancela una invitación pendiente. Requiere rol owner o admin. El token de la invitación dejará de ser válido.
Parámetros de Ruta
teamIdstringEl ID del equipo
invIdstringEl ID de la invitación
Respuesta
{
"success": true
}
Ejemplos de Código
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations/66e1f2a3b4c5d6e7f8a9b0c1" \
-H "Authorization: Bearer YOUR_API_KEY"
Respuestas de Error
Respuestas de error estándar devueltas por los endpoints de la API de Equipos.
Códigos de Error
400Bad RequestCampos requeridos faltantes, rol inválido
401UnauthorizedAPI key faltante o inválida
403ForbiddenRol insuficiente para la acción
404Not FoundEquipo, miembro o invitación no encontrados
409ConflictEl usuario ya es miembro, invitación duplicada
500Server ErrorError interno del servidor
Ejemplo de Error
{
"error": "Not authorized to manage team members"
}