---
title: "Users — Endpoints API v3 de AllSign"
type: reference
canonical_url: "https://allsign.io/developers/docs/endpoints/users"
api_version: "2026-07-11"
---

# Users

Dos endpoints para conocer **quién eres** frente a la API y **quién más** está en tu tenant. `GET /v3/users/me` identifica al principal detrás de la credencial (útil para verificar scopes y entorno); `GET /v3/users/team` lista a los miembros del equipo.

Las respuestas usan **camelCase** en el wire e ids opacos con prefijo (`usr_`, `ten_`). Los errores siguen **problem+json** (RFC 9457) con un `code` en `UPPER_SNAKE`. `GET /v3/users/team` es una **colección acotada** (`object: "list"`, `hasMore` siempre `false`): su tamaño lo limitan los asientos del tenant, nunca necesita cursor. Cada respuesta trae headers `RateLimit-*`.

Los ejemplos usan `$ALLSIGN_API_KEY`. Defínela una vez con tu key de sandbox: `export ALLSIGN_API_KEY="allsign_test_sk_…"` (en PowerShell: `$env:ALLSIGN_API_KEY="allsign_test_sk_…"`).

[Descargar OpenAPI](https://allsign.io/developers/docs/openapi.public.json)[Colección de Postman](https://allsign.io/developers/docs/allsign-api-v3.postman_collection.json)

Endpoints

-   [GET`/users/me`](#get-current-user)
-   [GET`/users/team`](#list-team-members)

## El objeto UserMe

#### Atributos

-   `livemode` boolean requerido
    
    `true` en entorno `live`, `false` en `test`/`dev` (marca de agua, sin validez legal).
    
-   `id` string requerido
    
    ID opaco del usuario detrás de la credencial (`usr_…`).
    
-   `email` string puede ser null
    
    Correo del usuario, si está disponible.
    
-   `fullName` string puede ser null
    
    Nombre para mostrar del usuario; si su perfil no tiene nombre, la parte local del correo.
    
-   `tenantId` string requerido
    
    ID opaco del tenant (`ten_…`).
    
-   `orgId` string puede ser null
    
    ID opaco de la organización del usuario (`org_…`), o `null` si no pertenece a ninguna.
    
-   `scopes` array de string requerido
    
    Los scopes que trae tu API key (ej. `["document:read", "document:write"]`).
    
-   `environment` string requerido
    
    Entorno de la key: `live`, `dev` o `test`. Sólo `live` opera sobre datos reales, consume créditos y trae `livemode: true`; `dev` y `test` son de prueba.
    
-   `authMode` string requerido
    
    Modo de autenticación con el que se resolvió la petición (ej. `api_key`).
    

**El objeto UserMe**

```
{
  "livemode": false,
  "id": "usr_1fac1e055ae544ac9f9620b42b5ad98d",
  "email": "ana@ejemplo.com",
  "fullName": "Ana Torres",
  "tenantId": "ten_0831aa4e33224c3bbc71f396d736d34c",
  "orgId": "org_8f4afda0323e478985538d5ccee18821",
  "scopes": [
    "document:read",
    "document:write",
    "document:delete",
    "signature:read",
    "webhook:read",
    "webhook:write",
    "webhook:delete",
    "constancia:read",
    "constancia:write",
    "embedded:write",
    "analytics:read",
    "user:read"
  ],
  "environment": "test",
  "authMode": "api_key"
}
```

Grabado en el entorno interno de AllSign con una key de sandbox · backend `24c0469` · 8 oct 2026, 06:16 (hora CDMX) · test `docs-checks-v3/tests/ejemplos/usuarios.ejemplos.spec.ts`

## Get current user

GET `/users/me`

Devuelve el tenant y el usuario detrás de tu credencial, junto con los scopes que tiene tu API key y el entorno en que opera. Usa este endpoint como sonda de salud de tu credencial antes de una integración. **Responde `200` (autenticado) o `401` (sin credencial válida) — nunca `403`.** Solo confirma tu propia identidad, así que no está protegido por ningún scope.

#### Parámetros

-   `AllSign-Version` enum header
    
    Fecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400 `UNSUPPORTED_API_VERSION`.
    
    Valores: `2026-07-11`
    

#### Devuelve

**200** El usuario y tenant detrás de la credencial, con sus scopes y entorno. — [el objeto UserMe](#objeto-userme)

Errores posibles (problem+json): [401](https://allsign.io/developers/docs/errors) [422](https://allsign.io/developers/docs/errors) [429](https://allsign.io/developers/docs/errors)

**cURL**

```
curl 'https://api.allsign.io/v3/users/me' \
  -H "Authorization: Bearer $ALLSIGN_API_KEY" \
  -H "AllSign-Version: 2026-07-11"
```

**Node**

```
const respuesta = await fetch('https://api.allsign.io/v3/users/me', {
    headers: {
        Authorization: `Bearer ${process.env.ALLSIGN_API_KEY}`,
        'AllSign-Version': '2026-07-11',
    },
});
console.log(respuesta.status, await respuesta.json());
```

**Python**

```
import os

import requests

respuesta = requests.get(
    "https://api.allsign.io/v3/users/me",
    headers={
        "Authorization": f"Bearer {os.environ['ALLSIGN_API_KEY']}",
        "AllSign-Version": "2026-07-11",
    },
)
print(respuesta.status_code, respuesta.json())
```

**Respuesta · 200**

```
{
  "livemode": false,
  "id": "usr_1fac1e055ae544ac9f9620b42b5ad98d",
  "email": "ana@ejemplo.com",
  "fullName": "Ana Torres",
  "tenantId": "ten_0831aa4e33224c3bbc71f396d736d34c",
  "orgId": "org_8f4afda0323e478985538d5ccee18821",
  "scopes": [
    "document:read",
    "document:write",
    "document:delete",
    "signature:read",
    "webhook:read",
    "webhook:write",
    "webhook:delete",
    "constancia:read",
    "constancia:write",
    "embedded:write",
    "analytics:read",
    "user:read"
  ],
  "environment": "test",
  "authMode": "api_key"
}
```

Grabado en el entorno interno de AllSign con una key de sandbox · backend `24c0469` · 8 oct 2026, 06:16 (hora CDMX) · test `docs-checks-v3/tests/ejemplos/usuarios.ejemplos.spec.ts`

## List team members

GET `/users/team`

Lista a cada miembro de tu tenant con su rol. A diferencia de `/users/me`, este endpoint **sí está protegido por un scope**: expone datos de otras personas, así que requiere `user:read`.

#### Parámetros

-   `AllSign-Version` enum header
    
    Fecha del contrato contra la que quieres resolver la petición. Si la omites se sirve la versión vigente; una fecha desconocida responde 400 `UNSUPPORTED_API_VERSION`.
    
    Valores: `2026-07-11`
    

#### Devuelve

**200** Colección acotada (`object: "list"`, `hasMore` siempre `false`) con los miembros del tenant.

Ver los 6 atributos de la respuesta

-   `object` string, siempre "list"
    
    Siempre `"list"`.
    
-   `data` array de objetos requerido
    
    Miembros del tenant.
    
    Ver 4 atributos hijos
    
    -   `data[].id` string requerido
        
        ID opaco del miembro (`usr_…`).
        
    -   `data[].name` string requerido
        
        Nombre del miembro.
        
    -   `data[].email` string requerido
        
        Correo del miembro.
        
    -   `data[].role` string requerido
        
        Rol del miembro en el tenant (ej. `owner`, `admin`, `member`).
        
    
-   `hasMore` boolean
    
    Siempre `false` — colección acotada por los asientos del tenant, sin cursor.
    
    default false
    
-   `nextCursor` null
    
    Siempre `null` — esta colección no pagina.
    
-   `previousCursor` null
    
    Siempre `null` — esta colección no pagina.
    
-   `limit` null
    
    Siempre `null` — sin parámetro `limit` en este endpoint.
    

Errores posibles (problem+json): [401](https://allsign.io/developers/docs/errors) [403](https://allsign.io/developers/docs/errors) [422](https://allsign.io/developers/docs/errors) [429](https://allsign.io/developers/docs/errors)

**cURL**

```
curl 'https://api.allsign.io/v3/users/team' \
  -H "Authorization: Bearer $ALLSIGN_API_KEY" \
  -H "AllSign-Version: 2026-07-11"
```

**Node**

```
const respuesta = await fetch('https://api.allsign.io/v3/users/team', {
    headers: {
        Authorization: `Bearer ${process.env.ALLSIGN_API_KEY}`,
        'AllSign-Version': '2026-07-11',
    },
});
console.log(respuesta.status, await respuesta.json());
```

**Python**

```
import os

import requests

respuesta = requests.get(
    "https://api.allsign.io/v3/users/team",
    headers={
        "Authorization": f"Bearer {os.environ['ALLSIGN_API_KEY']}",
        "AllSign-Version": "2026-07-11",
    },
)
print(respuesta.status_code, respuesta.json())
```

**Respuesta · 200**

```
{
  "object": "list",
  "data": [
    {
      "id": "usr_550487c74d4a4061ba2af6b802dcacde",
      "name": "Sofía Herrera",
      "email": "sofia@ejemplo.com",
      "role": "owner"
    },
    {
      "id": "usr_b478f972e8574a739be5fb7364382c33",
      "name": "Carlos Méndez",
      "email": "carlos@ejemplo.com",
      "role": "developer"
    }
  ],
  "hasMore": false,
  "nextCursor": null,
  "previousCursor": null,
  "limit": null
}
```

Grabado en el entorno interno de AllSign con una key de sandbox · backend `24c0469` · 8 oct 2026, 06:18 (hora CDMX) · test `docs-checks-v3/tests/recetas/observadores-y-transferencia.receta.spec.ts`
