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

> List profiles under a workflow or retrieve a specific profile.

## List Profiles

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

### Request

```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     | Description                                       |
| --------- | ------ | ----------- | ------------------------------------------------- |
| `search`  | string |             | Search by profile name                            |
| `sort`    | string | `createdAt` | Sort field: `name`, `createdAt`, `lastAnalysisAt` |
| `order`   | string | `desc`      | Sort order: `asc`, `desc`                         |
| `cursor`  | string |             | Pagination cursor from previous response          |
| `limit`   | number | 10          | Items per page (max 100)                          |

### Response

```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>
  Total items in current response
</ResponseField>

<ResponseField name="nextCursor" type="string | null" required>
  Cursor for next page (`null` if no more results)
</ResponseField>

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

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

<ResponseField name="items[].name" type="string" required>
  Profile display name
</ResponseField>

<ResponseField name="items[].description" type="string | null">
  Profile description
</ResponseField>

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

<ResponseField name="items[].itemsCount" type="number" required>
  Total item count across all folders
</ResponseField>

<ResponseField name="items[].foldersCount" type="number" required>
  Folder count
</ResponseField>

<ResponseField name="items[].lastAnalysisAt" type="string | null">
  Last analysis time (ISO 8601)
</ResponseField>

<ResponseField name="items[].createdAt" type="string" required>
  Creation time (ISO 8601)
</ResponseField>

<ResponseField name="items[].updatedAt" type="string" required>
  Last update time (ISO 8601)
</ResponseField>

<Note>
  Use cursor-based pagination for consistent results. Pass the `nextCursor` value from the response as the `cursor` parameter in the next request.
</Note>

***

## Get Profile by ID

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

### Request

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

### Response

```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"
}
```

### Error Codes

| Status | Code                | Description       |
| ------ | ------------------- | ----------------- |
| 404    | `PROFILE_NOT_FOUND` | Profile not found |

***

## Get Items Status

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

Returns a summary of item processing status across all folders in the 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>
  Profile ID
</ResponseField>

<ResponseField name="summary.total" type="number" required>
  Total item count
</ResponseField>

<ResponseField name="summary.pending" type="number" required>
  Items in PENDING status
</ResponseField>

<ResponseField name="summary.active" type="number" required>
  Items in ACTIVE status
</ResponseField>

<ResponseField name="summary.failed" type="number" required>
  Items in FAILED status
</ResponseField>

<ResponseField name="isRagReady" type="boolean" required>
  `true` when all items are ACTIVE (ready for analysis)
</ResponseField>

<Tip>
  Poll this endpoint at **1-second intervals** until `isRagReady` is `true` before triggering analysis.
</Tip>
