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

# Conventions

> Shared patterns across the BlobHub REST API

## Identifiers

Most API resources support two types of identifiers in path parameters:

| Type  | Format                           | Example        |
| :---- | :------------------------------- | :------------- |
| UUID  | System-generated unique ID       | `usr_a1b2c3d4` |
| Alias | User-chosen globally unique name | `janedoe`      |

Either form can be used wherever a path parameter accepts a resource ID (e.g. `{user_id}`,
`{org_id}`).

## The "me" Alias

User endpoints accept the special value `me` as the `{user_id}` path parameter. It resolves
to the authenticated user's ID before any authorization checks are applied.

```bash theme={null}
# These are equivalent when authenticated as usr_a1b2c3d4
GET /v1/users/me
GET /v1/users/usr_a1b2c3d4
```

The `me` alias works with both bearer token and API key authentication.

## Permissions

Access to user resources depends on whether the caller is the target user (self) or a
different user (other).

| Endpoint                      | Self                                 | Other                     |
| :---------------------------- | :----------------------------------- | :------------------------ |
| `GET /users/{user_id}`        | Full profile                         | Public fields only        |
| `PATCH /users/{user_id}`      | Allowed                              | Forbidden (403)           |
| `GET /users/{user_id}/orgs`   | All organizations (public + private) | Public organizations only |
| `GET /users/{user_id}/limits` | Allowed                              | Forbidden (403)           |

See each endpoint's documentation for details.
