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

# GET /profiles

> Liste profiles dentro de un workflow o recupere un profile específico.

## Listar profiles

```
GET /v1/workflows/{workflowId}/profiles
```

### Solicitud

```bash theme={null}
curl -X GET "http://client-omni-api.argosidentity.com/v1/workflows/{workflowId}/profiles?sort=createdAt&order=desc&limit=20" \
  -H "x-api-key: your-api-key-here"
```

### Query Parameters

| Parameter | Type   | Default     | Descripción                                                |
| --------- | ------ | ----------- | ---------------------------------------------------------- |
| `search`  | string |             | Buscar por nombre del profile                              |
| `sort`    | string | `createdAt` | Campo de ordenación: `name`, `createdAt`, `lastAnalysisAt` |
| `order`   | string | `desc`      | Orden: `asc`, `desc`                                       |
| `cursor`  | string |             | Cursor de paginación de la respuesta anterior              |
| `limit`   | number | 10          | Elementos por página (máx. 100)                            |

### Respuesta

```json theme={null}
{
  "count": 10,
  "nextCursor": "dXNlcjpVMDYxTkZUVDI",
  "items": [
    {
      "id": "pf_a1b2c3d4",
      "workflowId": "wf_7a3f9c2e",
      "name": "Acme Corp - KYB Verification",
      "description": "KYB verification for Acme Corp",
      "metadata": {
        "region": "KR",
        "riskProfile": "standard"
      },
      "itemsCount": 3,
      "foldersCount": 1,
      "lastAnalysisAt": "2026-03-15T10:30:00Z",
      "createdAt": "2026-03-15T10:00:00Z",
      "updatedAt": "2026-03-15T10:30:00Z"
    }
  ]
}
```

<ResponseField name="count" type="number" required>
  Número total de elementos en la respuesta actual
</ResponseField>

<ResponseField name="nextCursor" type="string | null" required>
  Cursor para la siguiente página (`null` si no hay más resultados)
</ResponseField>

<ResponseField name="items[].id" type="string" required>
  ID del profile
</ResponseField>

<ResponseField name="items[].workflowId" type="string" required>
  ID del workflow padre
</ResponseField>

<ResponseField name="items[].name" type="string" required>
  Nombre visible del profile
</ResponseField>

<ResponseField name="items[].description" type="string | null">
  Descripción del profile
</ResponseField>

<ResponseField name="items[].metadata" type="object | null">
  Metadata personalizado
</ResponseField>

<ResponseField name="items[].itemsCount" type="number" required>
  Cantidad total de items en todos los folders
</ResponseField>

<ResponseField name="items[].foldersCount" type="number" required>
  Cantidad de folders
</ResponseField>

<ResponseField name="items[].lastAnalysisAt" type="string | null">
  Hora del último análisis (ISO 8601)
</ResponseField>

<ResponseField name="items[].createdAt" type="string" required>
  Hora de creación (ISO 8601)
</ResponseField>

<ResponseField name="items[].updatedAt" type="string" required>
  Hora de última actualización (ISO 8601)
</ResponseField>

<Note>
  Use paginación basada en cursor para obtener resultados consistentes. Pase el valor `nextCursor` de la respuesta como parámetro `cursor` en la siguiente solicitud.
</Note>

***

## Obtener profile por ID

```
GET /v1/profiles/{profileId}
```

### Solicitud

```bash theme={null}
curl -X GET "http://client-omni-api.argosidentity.com/v1/profiles/{profileId}" \
  -H "x-api-key: your-api-key-here"
```

### Respuesta

```json theme={null}
{
  "id": "pf_a1b2c3d4",
  "workflowId": "wf_7a3f9c2e",
  "name": "Acme Corp - KYB Verification",
  "description": "KYB verification for Acme Corp",
  "metadata": {
    "region": "KR",
    "riskProfile": "standard"
  },
  "itemsCount": 3,
  "lastAnalysisAt": "2026-03-15T10:30:00Z",
  "folders": [
    {
      "id": "fld_default001",
      "name": "default",
      "isDefault": true,
      "itemsCount": 2,
      "createdAt": "2026-03-15T10:00:00Z"
    }
  ],
  "createdAt": "2026-03-15T10:00:00Z",
  "updatedAt": "2026-03-15T10:30:00Z"
}
```

### Códigos de error

| Status | Code                | Descripción           |
| ------ | ------------------- | --------------------- |
| 404    | `PROFILE_NOT_FOUND` | Profile no encontrado |

***

## Obtener estado de items

```
GET /v1/profiles/{profileId}/items/status
```

Devuelve un resumen del estado de procesamiento de items en todos los folders del profile.

```bash theme={null}
curl -X GET "http://client-omni-api.argosidentity.com/v1/profiles/{profileId}/items/status" \
  -H "x-api-key: your-api-key-here"
```

```json theme={null}
{
  "profileId": "pf_a1b2c3d4",
  "summary": {
    "total": 3,
    "pending": 0,
    "active": 3,
    "failed": 0
  },
  "isRagReady": true,
  "items": [
    {
      "id": "item_abc123",
      "name": "business_registration.pdf",
      "type": "file",
      "status": "ACTIVE",
      "processedAt": "2026-03-15T10:02:00Z"
    }
  ]
}
```

<ResponseField name="profileId" type="string" required>
  ID del profile
</ResponseField>

<ResponseField name="summary.total" type="number" required>
  Cantidad total de items
</ResponseField>

<ResponseField name="summary.pending" type="number" required>
  Items en estado PENDING
</ResponseField>

<ResponseField name="summary.active" type="number" required>
  Items en estado ACTIVE
</ResponseField>

<ResponseField name="summary.failed" type="number" required>
  Items en estado FAILED
</ResponseField>

<ResponseField name="isRagReady" type="boolean" required>
  `true` cuando todos los items están en ACTIVE (listos para análisis)
</ResponseField>

<Tip>
  Haga polling de este endpoint cada **1 segundo** hasta que `isRagReady` sea `true` antes de disparar el análisis.
</Tip>
