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

# Profile Endpoints

> Profile management, address lookup, and miscellaneous inline endpoints

> **Source:** `equa-server/modules/api/src/endpoints.ts` (inline `privateEndpoints`, lines 52–97)

# Profile Endpoints

These endpoints are defined inline in the main endpoint registration file rather than in a dedicated module. They cover profile management, address records, an admin test endpoint, and a bulk member upload.

All endpoints require authentication. Some require specific permissions.

**Endpoint count:** 7

## Upload Profile Document

```
POST /v1/profile/:profile/file
```

| Field        | Value                |
| ------------ | -------------------- |
| Auth         | Required             |
| Permission   | `canUpdateProfile`   |
| Request Type | `ProfileFileRequest` |

Upload a file to a profile. Uses `multipart/form-data` with a configurable size limit (default 10 MB, set via `AWS_S3_UPLOAD_SIZE_LIMIT_MB`).

**Path Parameters:**

| Parameter | Type   | Description |
| --------- | ------ | ----------- |
| `profile` | `uuid` | Profile ID  |

***

## Update Profile

```
PATCH /v1/profile/:profile
```

| Field        | Value                  |
| ------------ | ---------------------- |
| Auth         | Required               |
| Permission   | `canUpdateProfile`     |
| Request Type | `UpdateProfileRequest` |

Update profile fields.

**Path Parameters:**

| Parameter | Type   | Description |
| --------- | ------ | ----------- |
| `profile` | `uuid` | Profile ID  |

***

## Get Profile

```
GET /v1/profile/:profile
```

| Field        | Value                     |
| ------------ | ------------------------- |
| Auth         | Required                  |
| Permission   | None (authenticated only) |
| Request Type | `GetProfileRequest`       |

Get a profile by ID. Requires authentication but no specific permission.

**Path Parameters:**

| Parameter | Type   | Description |
| --------- | ------ | ----------- |
| `profile` | `uuid` | Profile ID  |

***

## Get Address

```
GET /v1/address/:address
```

| Field        | Value                     |
| ------------ | ------------------------- |
| Auth         | Required                  |
| Permission   | None (authenticated only) |
| Request Type | `AddressRequest`          |

Retrieve a single address record.

**Path Parameters:**

| Parameter | Type   | Description       |
| --------- | ------ | ----------------- |
| `address` | `uuid` | Address record ID |

***

## Update Address

```
PATCH /v1/address/:id
```

| Field        | Value                        |
| ------------ | ---------------------------- |
| Auth         | Required                     |
| Permission   | `canUpdateRecord(Addresses)` |
| Request Type | `UpdateAddressRequest`       |

Update an existing address record.

**Path Parameters:**

| Parameter | Type   | Description       |
| --------- | ------ | ----------------- |
| `id`      | `uuid` | Address record ID |

***

## Admin Test

```
GET /v1/admin/test
```

| Field        | Value          |
| ------------ | -------------- |
| Auth         | Required       |
| Permission   | `canReadSite`  |
| Request Type | `EmptyRequest` |

Simple endpoint that returns `{ "isAdmin": true }` to verify site-level admin access.

***

## Upload Member Details (Bulk)

```
POST /v1/organization/member/upload
```

| Field        | Value                 |
| ------------ | --------------------- |
| Auth         | Required              |
| Permission   | `canEditOrganization` |
| Request Type | `UploadRequest`       |

Bulk upload member details via file. Uses the organization's file storage middleware for upload processing.
