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

# Identifiers

> What v1 IDs look like and the values that aren't UUIDs.

Most v1 resources carry a UUID string in their `id` field, such as
`1a2b3c4d-5e6f-7890-abcd-ef1234567890`. Store it as a string and send it unchanged. The table below
lists the few identifiers that aren't UUIDs.

Path parameters are named per resource: `app_uuid`, `entitlement_uuid`, `account_uuid`,
`workflow_id`, `user_id`, `group_id`, `task_id`, `access_policy_id`, and plain `id` on access
requests. Whatever the suffix, each one takes that resource's `id`, so `workflow_id` takes a UUID,
as `app_uuid` does.

Fields that point at another object follow the same rule. `app_id` on an entitlement or an access
request is the app's `id`, and `entitlement_ids` on
[Create Access Request](https://docs.lumos.com/api-reference/v1/access-requests/create-access-request.md) takes entitlement
`id`s.

## Values that aren't UUIDs

| Value | Where it appears | What it is |
| - | - | - |
| `app_class_id` | [List Integrations](https://docs.lumos.com/api-reference/v1/integrations/list-integrations.md), the integration paths, and `app_class_id` on apps | The integration's catalog identifier, such as `okta.com`. Custom apps report `custom`. |
| App category `label` | [List App Categories](https://docs.lumos.com/api-reference/v1/app-categories/list-app-categories.md), and `category` on apps | The category name. Send it as `category_override` when you create or update an app. |
| Custom attribute definition `label` | [List Custom Attribute Definitions](https://docs.lumos.com/api-reference/v1/custom-attribute-definitions/list-custom-attribute-definitions.md) | The attribute's display name. It keys `custom_attributes` on a user. The definition also has an `id`. |
| Built-in role `id` | [List User Roles](https://docs.lumos.com/api-reference/v1/users/list-user-roles.md), and `role_id` in the paths of [Add User Role](https://docs.lumos.com/api-reference/v1/users/add-user-role.md) and [Remove User Role](https://docs.lumos.com/api-reference/v1/users/remove-user-role.md) | A kebab-case name, such as `app-admin`. A custom role's `id` is a UUID. |
| Operation `id` | [Get Operation](https://docs.lumos.com/api-reference/v1/operations/get-operation.md) | Opaque. Use the ID from the response of the call that started the work. Don't decode it or build one. |

You can't fetch a single activity log entry or identity event by ID. An activity log entry carries
`event_hash` instead of an `id`, and no endpoint takes an identity event's `id`.

## Malformed IDs

If you send a malformed value in a body field that must be a UUID, the call returns `400`. `code`
is `validation_error`, and `errors` names the field.

A well-formed ID in the path that matches nothing in your organization returns `404`.
