# Entity IDs

Every entity on the DNAnexus Platform has a unique ID.

Users and organizations have unique handles, or names, that cannot be changed. For these entities, entity IDs are made out of the entity's class and the handle.

When all other entities are created, they are assigned unique IDs by the system that are also fixed for the lifetime of the entities. These are of the form `class-xxxx`. The second part (referred to as `xxxx`) consists of 24 case-sensitive characters from 0123456789BFGJKPQVXYZbfgjkpqvxyz, for example, `project-j47b1k3z8Jqqv001213v312j1`, or `file-47jK67093475061g3v95369p`. When a data object is copied from one data container to another, its ID remains the same even though its metadata may change in the different data containers in which it resides.

Apps are special in that they have an associated name under which multiple versions can be published. Each version is also assigned a unique ID of the form `app-xxxx`, but it can also be uniquely referred to as `app-appname/alias`, where `alias` can be the `version` or a `tag` that the developer has attached to a particular version.

Examples of the entity IDs are provided below.

| Entity         | Format of entity ID                                                                                                                | Examples                                                                                                                                          |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| User           | `user-userhandle`                                                                                                                  | `user-joesmith`                                                                                                                                   |
| Organization   | `org-orghandle`                                                                                                                    | `org-umbrellacorp`                                                                                                                                |
| TRE            | `tre-trehandle`                                                                                                                    | `tre-genomics`                                                                                                                                    |
| Data container | `class-xxxx`                                                                                                                       | <p><code>project-j47b1k3z8Jqqv001213v312j1</code><br><code>container-9zGPKyvvbJ3Q3P8J7bx00005</code></p>                                          |
| Data object    | `class-xxxx`                                                                                                                       | <p><code>file-47jK67093475061g3v95369p</code><br><code>applet-B0VJ0vK4Zg2KbPvQg9fQ000f</code><br><code>record-B0FJgXy4Zg231jgbQ9zQ0003</code></p> |
| App            | <p><code>app-xxxx</code><br><code>app-apphandle</code><br><code>app-apphandle/version</code><br><code>app-apphandle/tag</code></p> | <p><code>app-9z80yBpyjv967GgZjkz00001</code><br><code>app-bwa</code><br><code>app-bwa/1.3</code><br><code>app-bwa/unstable</code></p>             |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.dnanexus.com/developer/api/entity-ids.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
