> This page is for Plataforma, version Heredado.
> For other versions, use one of these documentation indexes:
> - V4 (default): https://next.developer.frame.io/platform/v4/llms.txt
> - V4 experimental: https://next.developer.frame.io/platform/v4-experimental/llms.txt
> - Heredado: https://next.developer.frame.io/platform/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://next.developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server.

# Administración de usuarios

## Información general

En este tutorial se explica la administración básica de usuarios a través de la API de Frame.io. Se asume que el lector ya ha configurado la [autenticación](/getting-started/authentication) mediante OAuth 2.0 o con un token de desarrollador.

### Conceptos fundamentales




Dejando de lado los matices específicos de las diferentes funciones y permisos de los integrantes del equipo, hay dos claves importantes que se deben entender al administrar usuarios a través de la API de Frame.io:




1. **Los integrantes del equipo pertenecen a equipos** y tienen acceso a todos los proyectos no privados dentro de esos equipos. Los responsables de equipos y los administradores son extensiones de la función de integrante del equipo.
2. **Los colaboradores del proyecto pertenecen a proyectos individuales**. Según cómo estén configurados esos proyectos, podrán o no podrán crear presentaciones, descargar activos o invitar a otros colaboradores.

Para obtener más información, consulte nuestra documentación de asistencia para [integrantes del equipo frente a colaboradores](https://support.frame.io/getting-started/sharing-with-your-team-or-clients/difference-between-team-members-vs-collaborators) y las [funciones de administración de cuentas](https://support.frame.io/enterprise-accounts/enterprise-account-management-roles).

### Cómo se unen los usuarios a las cuentas





En general, los usuarios nuevos se unen mediante una invitación por parte de usuarios actuales, ya sea directamente o a través de una URL única de unión al proyecto. Los integrantes del equipo también pueden:



1. Añadirse a sí mismos a proyectos no privados dentro de equipos públicos en su cuenta
2. Añadirse a sí mismos a equipos públicos dentro de su cuenta
3. Solicitar unirse a equipos privados dentro de su cuenta





En todos los casos, las actividades de unión pasarán por una serie de pasos lógicos, entre los que se incluyen comprobar el arrendamiento previo, crear registros &quot;pendientes&quot; y enviar correos electrónicos de invitación o de solicitud de unión cuando corresponda.





La buena noticia es que toda esa lógica está abstraída por la API de Frame.io. Si desea añadir a alguien a un proyecto, use las rutas de colaborador; si desea invitar a alguien a un equipo, use las rutas de integrante del equipo.





### Ámbitos necesarios




| Ámbito | Motivo |
| ---------- | ---------- |
| **Equipos:** Actualización | Añadir y quitar integrantes del equipo. |
| **Proyectos:** Actualización | Añadir y quitar colaboradores del proyecto. |




## Administrar integrantes del equipo




### Añadir integrantes al equipo




Para añadir un integrante del equipo nuevo a un equipo, necesitará:



1. El `id` del equipo de destino
2. El correo electrónico del usuario de destino.

A partir de ahí, simplemente realice una solicitud `POST` autorizada a `https://api.frame.io/v2/teams/:id/members` con el correo electrónico del usuario de destino en la carga útil del cuerpo de la siguiente manera:

```json
{
    "email": "user@example.com"
}
```

**Si el usuario al que ha invitado ya es un integrante del equipo en su organización**, la respuesta de la API lo indicará:

```json
{
    "_type": "team_member",
    "id": "<team-member-record-id>",
    "role": "member",
    "team_id": "<team-id>",
    "user_id": "<user-id>"
}
```

**Si el usuario al que ha invitado aún no está en su organización**, su solicitud activará un flujo de invitación, y la respuesta de la API tendrá un aspecto similar al siguiente:

```json
{
    "_type": "pending_team_member",
    "email": "user@example.com",
    "id": "<oending-team-member-record-id>",
    "role": "member",
    "team_id": "<team-id>
}
```

**Nota**: Dado que el usuario aún no se ha creado o reconocido, no habrá un `user_id` asignable en la respuesta `pending_team_member`.

### Quitar a integrantes del equipo




Para quitar un integrante de un equipo, necesitará:



1. El `id` del equipo de destino
2. El correo electrónico del usuario de destino.

A partir de ahí, realizará una llamada `DELETE` a la misma URL que usaría para añadir un integrante del equipo, y le pasará una cadena de consulta especial: `DELETE` [`https://api.frame.io/v2/teams/:id/members/_?email=user@example.com`](ref:post_teams-teamid-members)
<Info title="¿Qué es el patrón &quot;include&quot;?">
  **Observe** la construcción `/_?email=`: este es un patrón especial en la API de Frame.io llamado &quot;include&quot; que le permite solicitar datos adicionales en su solicitud de API, en este caso, el correo electrónico del usuario.
</Info>
 En una llamada correcta, la API devolverá una carga útil similar a la adición de integrantes del equipo. Si el integrante del equipo se va a eliminar por primera vez, verá un atributo `updated_at` que coincide con la hora de su llamada. Si el integrante del equipo ya se ha eliminado anteriormente, esa marca de tiempo no se actualizará (es decir, reflejará la hora en que se quitó inicialmente el integrante del equipo).

```json
{
    "_type": "team_member",
    "id": "<team-member-record-id>",
    "role": "member",
    "team_id": "<team-id>",
    "user_id": "<user-id>",
    "updated_at": "<timestamp>"
}
```





Los intentos de quitar integrantes del equipo que no existen o que nunca estuvieron asociados con el equipo devolverán errores 404.





## Administrar colaboradores del proyecto




### Añadir colaboradores del proyecto




La administración de colaboradores es muy similar a la administración de integrantes del equipo. Para añadir un colaborador nuevo a un equipo, necesitará:




1. El `id` del proyecto de destino
2. El correo electrónico del usuario de destino.

A partir de ahí, realice una solicitud `POST` autorizada a [ `https://api.frame.io/v2/projects/:id/collaborators`](ref:post_projects-projectid-collaborators), con el correo electrónico del usuario de destino en la carga útil del cuerpo:

```json
{
    "email": "user@example.com"
}
```

**Si el usuario al que ha invitado se reconoce** y la función de colaborador se puede instanciar inmediatamente, la respuesta de la API lo indicará y enviará de vuelta un objeto de usuario completo:

```json
{
    "_type": "collaborator",
    "creator_id": "<inviting-user-id>",
    "id": "<collaborator-record-id>",
    "project_id": "<project-id>",
    "user": {
        "_type": "user",
       <...>
    },
    "user_id": "<user-id>"
}
```




<Info title="Abono al equipo">
  


Si el usuario ya es integrante del equipo en su organización, pero no es miembro del proyecto de destino, aún puede usar la ruta de colaboración, y la API responderá como se indicó anteriormente. En segundo plano, el integrante del equipo se añadirá a su proyecto de destino, y seguirá siendo integrante del equipo. En otras palabras, no puede &quot;disminuir de nivel&quot; de manera accidental a los integrantes del equipo con esta ruta.



</Info>
 **Si el usuario al que ha invitado es nuevo en su organización**, su solicitud activará un flujo de invitación, y la API responderá con un registro `pending_collaborator`, de la siguiente manera:

```json
{
    "_type": "pending_collaborator",
    "email": "user@example.com",
    "id": "<pending-collaborator-record-id>",
    "project_id": "<project-id>"
}
```





### Quitar colaboradores del proyecto

**Nota:** Este proceso es fundamentalmente idéntico a cómo se gestionan los integrantes del equipo (que se ha descrito anteriormente).

Para quitar un colaborador de un proyecto, necesitará:



1. El `id` del proyecto de destino.
2. El correo electrónico del usuario de destino.

A partir de ahí, realizará una llamada `DELETE` a la misma URL que utilizaría para añadir un colaborador, y le pasará una cadena de consulte especial. `DELETE` [`https://api.frame.io/v2/projects/:id/collaborators/_?email=user@example.com`](ref:post_teams-teamid-members)

En una llamada correcta, la API devolverá una carga útil similar a la adición de colaborador de proyecto:





```json
{
    "_type": "collaborator",
    "creator_id": "<inviting-user-id>",
    "id": "<collaborator-record-id>",
    "project_id": "<project-id>",
    "user": {
        "_type": "user",
       <...>
    },
    "user_id": "<user-id>"
}
```





Los intentos de quitar colaboradores que no existen o que nunca estuvieron asociados con el proyecto devolverán errores 404.




<Warning title="Advertencia: La eliminación de colaboradores no es idempotente">
  


A diferencia de la eliminación de integrantes del equipo, los intentos de quitar colaboradores que ya se han eliminado devolverán errores 404



</Warning>