> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zylon.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Miembros del espacio de trabajo

> Crea y administra membresías, roles, acceso a proyectos y actividad.

<Warning>
  **Próxima versión — Zylon 1.58**

  Esta documentación se publica antes del lanzamiento para que puedas preparar tus integraciones de API. La imagen de la versión todavía no está disponible. Para instalaciones con 1.57, consulta la [documentación de 1.57](/es/v1.57/overview).
</Warning>

<Warning>
  Las antiguas rutas `/app/user` y el modelo de perfil de miembro cambian en 1.58. Consulta [Migración de API 1.57 → 1.58](/es/v1.58/developer-manual/build-with-zylon/workspace-api/api-migration-1-57-to-1-58#miembros-del-espacio-de-trabajo) antes de actualizar tu integración.
</Warning>

Usa la API de miembros del espacio de trabajo para gestionar la membresía de una cuenta en un espacio de trabajo. Una cuenta representa a una persona en Zylon, mientras que un miembro almacena el estado y los roles de esa cuenta dentro del espacio de trabajo.

Las respuestas de miembro contienen `id`, `org_id`, `account_id`, `state`, `roles` y `created_at`. `id` es el ID de miembro del espacio de trabajo; `account_id` identifica la cuenta asociada y está disponible sin `include`. Conserva ambos valores separados. Si guardaste un ID de usuario antiguo para comparaciones o filtros de creador, sigue la [migración de IDs de usuario guardados](/es/v1.58/developer-manual/build-with-zylon/workspace-api/api-migration-1-57-to-1-58#migrar-ids-de-usuario-guardados). Usa `include=Account` en los endpoints compatibles para incluir la cuenta relacionada en `account`.

`GET /api/v1/account/{accountId}` incluye las membresías de la cuenta en `workspace_members`. Para los listados de cuentas, solicita la misma relación con `GET /api/v1/account?include=WorkspaceMembers`. Los objetos `account` anidados que devuelven los endpoints de miembros la omiten.

Los roles válidos del espacio de trabajo son `AppGuest`, `AppMember`, `AppAdmin` y `AppOwner`.

<Note>Los nombres y las imágenes de perfil pertenecen a la cuenta, no a su membresía. Actualiza esos campos mediante `POST /api/v1/account/{accountId}`; usa `me` como ID para actualizar la cuenta autenticada. `PUT /api/v1/app/member/{wsMemberId}` solo cambia el rol del espacio de trabajo.</Note>

## Obtener el miembro actual

Usa `GET /api/v1/app/me` para verificar tu token y el contexto del miembro del espacio de trabajo.

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Query | `include` | No | Datos relacionados que se incluirán, separados por comas. Valor compatible: `Account`. |
</Accordion>

```bash theme={null}
curl "https://{BASE_URL}/api/v1/app/me?include=Account" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}"
```

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "id": "{wsMemberId}",
    "org_id": "{orgId}",
    "account_id": "{accountId}",
    "state": "Active",
    "roles": ["AppAdmin"],
    "created_at": "2026-02-08T14:12:45Z",
    "account": {
      "id": "{accountId}",
      "state": "Active",
      "email": "sasha@example.com",
      "name": "Sasha Patel",
      "profile_picture": "https://{BASE_URL}/files/profile-picture.png",
      "provider": "Credentials",
      "roles": ["Workspace"],
      "created_at": "2026-01-10T09:00:00Z",
      "updated_at": "2026-02-08T14:12:45Z"
    }
  }
  ```
</Accordion>

## Listar miembros del espacio de trabajo

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Query | `state` | No | Estados separados por comas: `Active` e `Inactive`. Ambos se incluyen por defecto. |
  | Query | `include` | No | Datos relacionados que se incluirán, separados por comas. Valor compatible: `Account`. |
  | Query | `page` | No | Número de página absoluto, empezando en 1. |
  | Query | `page_size` | No | Número de elementos por página. |
  | Query | `page_order` | No | `ASC` o `DESC`. |
  | Query | `after` | No | Cursor o valor desde el que paginar hacia delante. |
  | Query | `before` | No | Cursor o valor desde el que paginar hacia atrás. |
  | Query | `first` | No | Limita a los primeros N elementos después de un cursor. |
  | Query | `last` | No | Limita a los últimos N elementos antes de un cursor. |
  | Query | `total_count` | No | Incluye el total de resultados en la respuesta. |
</Accordion>

```bash theme={null}
curl "https://{BASE_URL}/api/v1/app/member?state=Active&include=Account&page=1&page_size=20&total_count=true" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}"
```

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "data": [
      {
        "id": "{wsMemberId}",
        "org_id": "{orgId}",
        "account_id": "{accountId}",
        "state": "Active",
        "roles": ["AppAdmin"],
        "created_at": "2026-02-08T14:12:45Z",
        "account": {
          "id": "{accountId}",
          "state": "Active",
          "email": "sasha@example.com",
          "name": "Sasha Patel",
          "profile_picture": "https://{BASE_URL}/files/profile-picture.png",
          "provider": "Credentials",
          "roles": ["Workspace"],
          "created_at": "2026-01-10T09:00:00Z",
          "updated_at": "2026-02-08T14:12:45Z"
        }
      }
    ],
    "has_next_page": false,
    "has_previous_page": false,
    "total_count": 1
  }
  ```
</Accordion>

## Crear un miembro del espacio de trabajo

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Body | `account_id` | Si | ID de la cuenta que se añadirá al espacio de trabajo. |
  | Body | `role` | Si | Rol del espacio de trabajo que se asignará. |
</Accordion>

```bash theme={null}
curl -X POST "https://{BASE_URL}/api/v1/app/member" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "{accountId}",
    "role": "AppMember"
  }'
```

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "id": "{wsMemberId}",
    "org_id": "{orgId}",
    "account_id": "{accountId}",
    "state": "Active",
    "roles": ["AppMember"],
    "created_at": "2026-02-08T14:12:45Z"
  }
  ```
</Accordion>

## Obtener o actualizar un miembro del espacio de trabajo

`GET /member/{wsMemberId}` acepta `me` en lugar del ID del miembro. `PUT /member/{wsMemberId}` requiere un ID de miembro explícito.

<Tabs>
  <Tab title="Obtener miembro">
    <Accordion title="Parametros del endpoint">
      | Tipo | Nombre | Obligatorio | Notas |
      | - | - | - | - |
      | Path | `wsMemberId` | Si | ID del miembro, o `me` para el miembro autenticado. |
      | Query | `include` | No | Datos relacionados que se incluirán, separados por comas. Valor compatible: `Account`. |
    </Accordion>

    ```bash theme={null}
    curl "https://{BASE_URL}/api/v1/app/member/{wsMemberId}?include=Account" \
      -H "Authorization: Bearer {API_TOKEN}" \
      -H "x-org: {org_slug}"
    ```

    <Accordion title="Ejemplo de respuesta">
      ```json theme={null}
      {
        "id": "{wsMemberId}",
        "org_id": "{orgId}",
        "account_id": "{accountId}",
        "state": "Active",
        "roles": ["AppMember"],
        "created_at": "2026-02-08T14:12:45Z",
        "account": {
          "id": "{accountId}",
          "state": "Active",
          "email": "sasha@example.com",
          "name": "Sasha Patel",
          "profile_picture": "https://{BASE_URL}/files/profile-picture.png",
          "provider": "Credentials",
          "roles": ["Workspace"],
          "created_at": "2026-01-10T09:00:00Z",
          "updated_at": "2026-02-08T14:12:45Z"
        }
      }
      ```
    </Accordion>
  </Tab>

  <Tab title="Actualizar miembro">
    <Accordion title="Parametros del endpoint">
      | Tipo | Nombre | Obligatorio | Notas |
      | - | - | - | - |
      | Path | `wsMemberId` | Si | ID del miembro del espacio de trabajo. |
      | Body | `role` | Si | Rol del espacio de trabajo que se asignará. |
    </Accordion>

    ```bash theme={null}
    curl -X PUT "https://{BASE_URL}/api/v1/app/member/{wsMemberId}" \
      -H "Authorization: Bearer {API_TOKEN}" \
      -H "x-org: {org_slug}" \
      -H "Content-Type: application/json" \
      -d '{
        "role": "AppAdmin"
      }'
    ```

    <Accordion title="Ejemplo de respuesta">
      ```json theme={null}
      {
        "id": "{wsMemberId}",
        "org_id": "{orgId}",
        "account_id": "{accountId}",
        "state": "Active",
        "roles": ["AppAdmin"],
        "created_at": "2026-02-08T14:12:45Z"
      }
      ```
    </Accordion>
  </Tab>
</Tabs>

## Activar o desactivar un miembro del espacio de trabajo

Ambos endpoints requieren un ID de miembro explícito y devuelven el miembro actualizado.

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Path | `wsMemberId` | Si | ID del miembro del espacio de trabajo. No se admite el valor `me`. |
</Accordion>

<Tabs>
  <Tab title="Desactivar">
    ```bash theme={null}
    curl -X POST "https://{BASE_URL}/api/v1/app/member/{wsMemberId}/deactivate" \
      -H "Authorization: Bearer {API_TOKEN}" \
      -H "x-org: {org_slug}"
    ```

    <Accordion title="Ejemplo de respuesta">
      ```json theme={null}
      {
        "id": "{wsMemberId}",
        "org_id": "{orgId}",
        "account_id": "{accountId}",
        "state": "Inactive",
        "roles": ["AppMember"],
        "created_at": "2026-02-08T14:12:45Z"
      }
      ```
    </Accordion>
  </Tab>

  <Tab title="Activar">
    ```bash theme={null}
    curl -X POST "https://{BASE_URL}/api/v1/app/member/{wsMemberId}/activate" \
      -H "Authorization: Bearer {API_TOKEN}" \
      -H "x-org: {org_slug}"
    ```

    <Accordion title="Ejemplo de respuesta">
      ```json theme={null}
      {
        "id": "{wsMemberId}",
        "org_id": "{orgId}",
        "account_id": "{accountId}",
        "state": "Active",
        "roles": ["AppMember"],
        "created_at": "2026-02-08T14:12:45Z"
      }
      ```
    </Accordion>
  </Tab>
</Tabs>

## Listar proyectos de un miembro del espacio de trabajo

Usa `me` en lugar de `wsMemberId` para listar los proyectos del miembro autenticado.

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Path | `wsMemberId` | Si | ID del miembro, o `me` para el miembro autenticado. |
  | Query | `include` | No | Datos relacionados que se incluirán, separados por comas. Valor compatible: `Members`. |
  | Query | `order_by` | No | Valor compatible: `Alphabetical`. |
  | Query | `order` | No | `ASC` o `DESC`. |
  | Query | `page` | No | Número de página absoluto, empezando en 1. |
  | Query | `page_size` | No | Número de elementos por página. |
  | Query | `page_order` | No | `ASC` o `DESC`. |
  | Query | `after` | No | Cursor o valor desde el que paginar hacia delante. |
  | Query | `before` | No | Cursor o valor desde el que paginar hacia atrás. |
  | Query | `first` | No | Limita a los primeros N elementos después de un cursor. |
  | Query | `last` | No | Limita a los últimos N elementos antes de un cursor. |
  | Query | `total_count` | No | Incluye el total de resultados en la respuesta. |
</Accordion>

```bash theme={null}
curl "https://{BASE_URL}/api/v1/app/member/{wsMemberId}/project?order_by=Alphabetical&order=ASC&page=1&page_size=20&total_count=true" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}"
```

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "data": [
      {
        "id": "{projectId}",
        "name": "Customer Insights",
        "goal": "Summarize weekly support trends.",
        "visibility": "Private",
        "member_count": 4,
        "default_member_role": "Editor",
        "default_role_enabled": true,
        "project_context": "Support analytics for Q1.",
        "use_citations": true,
        "use_system_prompt": true,
        "is_pinned": true
      }
    ],
    "has_next_page": false,
    "has_previous_page": false,
    "total_count": 1
  }
  ```
</Accordion>

## Últimos artefactos de un miembro del espacio de trabajo

Usa `me` en lugar de `wsMemberId` para obtener los artefactos del miembro autenticado.

<Accordion title="Parametros del endpoint">
  | Tipo | Nombre | Obligatorio | Notas |
  | - | - | - | - |
  | Path | `wsMemberId` | Si | ID del miembro, o `me` para el miembro autenticado. |
  | Query | `latest` | No | Número máximo de artefactos recientes que se devolverán. El valor por defecto es `3`. |
</Accordion>

```bash theme={null}
curl "https://{BASE_URL}/api/v1/app/member/{wsMemberId}/latest-artifacts?latest=5" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}"
```

La respuesta es un array de objetos de artefacto. Consulta [Artefactos](/es/v1.58/developer-manual/build-with-zylon/workspace-api/content/artifacts) para ver los campos de respuesta.

## Errores y casos límite

* **400**: estado, valor de `include`, rol o cuerpo de la solicitud no válidos.
* **400**: un miembro no puede activar ni desactivar su propia membresía.
* **403**: permisos insuficientes para cambiar la membresía o los roles.
* **404**: miembro del espacio de trabajo o cuenta relacionada no encontrados.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.