> ## 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.

# Usuarios

> Crea y administra usuarios, roles y acceso a proyectos.

Usa la API de usuarios para gestionar personas en tu espacio de trabajo. Puedes crear usuarios vinculados a cuentas existentes, actualizar perfiles y roles, y ver proyectos o artefactos asociados.

## Solicitud básica y respuesta

Usa `GET /api/v1/app/me` para verificar tu token y contexto.

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

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "id": "user_4b7c2a1d9e5f3c8b",
    "org_id": "org_2f3a9d1c7b5e4a8f",
    "account_id": "acct_6c8a1f3b2d4e5f7a",
    "name": "Sasha Patel",
    "email": "sasha@auroralabs.com",
    "job_position_name": "Product Ops Lead",
    "job_position_description": "Owns release coordination and analytics.",
    "state": "Active",
    "roles": ["AppAdmin"],
    "created_at": "2026-02-08T14:12:45Z"
  }
  ```
</Accordion>

## Listar usuarios

<Accordion title="Parametros del endpoint">
  | Tipo  | Nombre        | Obligatorio | Notas                                                   |
  | ----- | ------------- | ----------- | ------------------------------------------------------- |
  | 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/user?page=1&page_size=20" \
  -H "Authorization: Bearer {API_TOKEN}"
  -H "x-org: {org_slug}"
```

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "data": [
      {
        "id": "user_4b7c2a1d9e5f3c8b",
        "org_id": "org_2f3a9d1c7b5e4a8f",
        "account_id": "acct_6c8a1f3b2d4e5f7a",
        "name": "Sasha Patel",
        "email": "sasha@auroralabs.com",
        "state": "Active",
        "roles": ["AppAdmin"],
        "created_at": "2026-02-08T14:12:45Z"
      }
    ],
    "has_next_page": false,
    "has_previous_page": false,
    "total_count": 1
  }
  ```
</Accordion>

## Crear un usuario

```bash theme={null}
curl -X POST "https://{BASE_URL}/api/v1/app/user" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "x-org: {org_slug}" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "{accountID}",
    "role": "AppMember",
    "user_info": {
      "email": "sasha@auroralabs.com",
      "name": "Sasha Patel",
      "given_name": "Sasha",
      "family_name": "Patel"
    }
  }'
```

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "id": "user_4b7c2a1d9e5f3c8b",
    "org_id": "org_2f3a9d1c7b5e4a8f",
    "account_id": "acct_6c8a1f3b2d4e5f7a",
    "name": "Sasha Patel",
    "email": "sasha@auroralabs.com",
    "state": "Active",
    "roles": ["AppMember"],
    "created_at": "2026-02-08T14:12:45Z"
  }
  ```
</Accordion>

## Obtener o actualizar un usuario

<Tabs>
  <Tab title="Obtener usuario">
    ```bash theme={null}
    curl "https://{BASE_URL}/api/v1/app/user/{userID}" \
      -H "Authorization: Bearer {API_TOKEN}"
      -H "x-org: {org_slug}"
    ```

    <Accordion title="Ejemplo de respuesta">
      ```json theme={null}
      {
        "id": "user_4b7c2a1d9e5f3c8b",
        "org_id": "org_2f3a9d1c7b5e4a8f",
        "account_id": "acct_6c8a1f3b2d4e5f7a",
        "name": "Sasha Patel",
        "email": "sasha@auroralabs.com",
        "state": "Active",
        "roles": ["AppMember"],
        "created_at": "2026-02-08T14:12:45Z"
      }
      ```
    </Accordion>
  </Tab>

  <Tab title="Actualizar usuario">
    <Accordion title="Parametros del endpoint">
      | Tipo | Nombre   | Obligatorio | Notas                       |
      | ---- | -------- | ----------- | --------------------------- |
      | Path | `userID` | Si          | Identificador del usuario.  |
      | Body | `name`   | No          | Nombre visible del usuario. |
      | Body | `role`   | No          | Rol de Workspace a asignar. |
    </Accordion>

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

    <Accordion title="Ejemplo de respuesta">
      ```json theme={null}
      {
        "id": "user_4b7c2a1d9e5f3c8b",
        "org_id": "org_2f3a9d1c7b5e4a8f",
        "account_id": "acct_6c8a1f3b2d4e5f7a",
        "name": "Sasha Patel",
        "email": "sasha@auroralabs.com",
        "state": "Active",
        "roles": ["AppAdmin"],
        "created_at": "2026-02-08T14:12:45Z"
      }
      ```
    </Accordion>
  </Tab>
</Tabs>

## Activar o desactivar un usuario

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

    <Accordion title="Ejemplo de respuesta">
      ```json theme={null}
      {
        "id": "user_9d1c3b5a7f2e4c6d",
        "state": "Inactive"
      }
      ```
    </Accordion>
  </Tab>

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

    <Accordion title="Ejemplo de respuesta">
      ```json theme={null}
      {
        "id": "user_9d1c3b5a7f2e4c6d",
        "state": "Active"
      }
      ```
    </Accordion>
  </Tab>
</Tabs>

## Listar proyectos de un usuario

```bash theme={null}
curl "https://{BASE_URL}/api/v1/app/user/{userID}/project" \
  -H "Authorization: Bearer {API_TOKEN}"
  -H "x-org: {org_slug}"
```

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  {
    "data": [
      {
        "id": "proj_7a5c3e1b9d2f4a6c",
        "name": "Customer Insights",
        "goal": "Summarize weekly support trends.",
        "deadline": "2026-03-01T00:00:00Z",
        "visibility": "Private",
        "member_count": 4,
        "default_member_role": "Editor",
        "default_role_enabled": true,
        "project_context": "Support analytics for Q1.",
        "answer_context": "Use approved templates.",
        "is_pinned": true
      }
    ],
    "has_next_page": false,
    "has_previous_page": false,
    "total_count": 1
  }
  ```
</Accordion>

## Últimos artefactos de un usuario

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

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  [
    {
      "id": "artifact_2b4d6f8a1c3e5a7b",
      "project_id": "proj_7a5c3e1b9d2f4a6c",
      "name": "Q1 Support Summary",
      "type": "Document",
      "source": "User",
      "state": "Published",
      "ingest_status": "Done",
      "has_content": true,
      "created_at": "2026-02-08T14:30:12Z"
    }
  ]
  ```
</Accordion>

## Integraciones del usuario

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

<Accordion title="Ejemplo de respuesta">
  ```json theme={null}
  [
    {
      "id": "conf_8a7b6c5d4e3f2a1b",
      "user_id": "user_4b7c2a1d9e5f3c8b",
      "org_id": "org_2f3a9d1c7b5e4a8f",
      "type": "Confluence",
      "created_at": "2026-02-05T09:10:00Z",
      "updated_at": "2026-02-08T10:02:11Z"
    }
  ]
  ```
</Accordion>

## Errores y casos límite

* **409**: correo electrónico duplicado o cuenta ya vinculada.
* **400**: rol inválido.
* **404**: usuario no encontrado.
