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

# Catálogo de /api/v1

> Todos los endpoints del dashboard administrativo, por módulo.

Estos endpoints son los que consume el dashboard. Piden sesión de Better Auth, resuelven el tenant por subdominio y validan el acceso del usuario. **No son una API para terceros**: cambian con el producto y no tienen contrato de compatibilidad. Para integrar un sistema externo, usa el [Client API](/client-api/inicio-rapido).

<Info>
  **612 endpoints** en 55 grupos. Catálogo generado desde `apps/web/src/server/app.ts` en el commit `6a1f89d4`.
</Info>

### `/api/v1/academic-grading-scales`

3 endpoints · [`apps/web/src/server/routes/v1/academic-grading-scales.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/academic-grading-scales.ts)

| Método  | Ruta                                   |
| ------- | -------------------------------------- |
| `GET`   | `/api/v1/academic-grading-scales`      |
| `POST`  | `/api/v1/academic-grading-scales`      |
| `PATCH` | `/api/v1/academic-grading-scales/{id}` |

### `/api/v1/academic-groups`

9 endpoints · [`apps/web/src/server/routes/v1/academic-groups.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/academic-groups.ts)

| Método  | Ruta                                         |
| ------- | -------------------------------------------- |
| `GET`   | `/api/v1/academic-groups`                    |
| `POST`  | `/api/v1/academic-groups`                    |
| `GET`   | `/api/v1/academic-groups/{id}`               |
| `PATCH` | `/api/v1/academic-groups/{id}`               |
| `GET`   | `/api/v1/academic-groups/{id}/candidates`    |
| `GET`   | `/api/v1/academic-groups/{id}/members`       |
| `PUT`   | `/api/v1/academic-groups/{id}/members`       |
| `POST`  | `/api/v1/academic-groups/generation/apply`   |
| `POST`  | `/api/v1/academic-groups/generation/preview` |

### `/api/v1/academic-periods`

4 endpoints · [`apps/web/src/server/routes/v1/academic-periods.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/academic-periods.ts)

| Método  | Ruta                                                  |
| ------- | ----------------------------------------------------- |
| `GET`   | `/api/v1/academic-periods`                            |
| `POST`  | `/api/v1/academic-periods`                            |
| `PATCH` | `/api/v1/academic-periods/{id}`                       |
| `GET`   | `/api/v1/academic-periods/{id}/grade-closing-summary` |

### `/api/v1/academic-years`

3 endpoints · [`apps/web/src/server/routes/v1/academic-years.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/academic-years.ts)

| Método  | Ruta                          |
| ------- | ----------------------------- |
| `GET`   | `/api/v1/academic-years`      |
| `POST`  | `/api/v1/academic-years`      |
| `PATCH` | `/api/v1/academic-years/{id}` |

### `/api/v1/academy`

3 endpoints · [`apps/web/src/server/routes/v1/academy.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/academy.ts)

| Método  | Ruta                                             |
| ------- | ------------------------------------------------ |
| `PATCH` | `/api/v1/academy/announcements/{announcementId}` |
| `PATCH` | `/api/v1/academy/lessons/{lessonSlug}/progress`  |
| `GET`   | `/api/v1/academy/state`                          |

### `/api/v1/admissions/applications`

17 endpoints · [`apps/web/src/server/routes/v1/admissions-applications.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/admissions-applications.ts)

| Método   | Ruta                                                                                        |
| -------- | ------------------------------------------------------------------------------------------- |
| `GET`    | `/api/v1/admissions/applications`                                                           |
| `POST`   | `/api/v1/admissions/applications`                                                           |
| `GET`    | `/api/v1/admissions/applications/{applicationId}`                                           |
| `PATCH`  | `/api/v1/admissions/applications/{applicationId}`                                           |
| `GET`    | `/api/v1/admissions/applications/{applicationId}/activity`                                  |
| `POST`   | `/api/v1/admissions/applications/{applicationId}/contacts`                                  |
| `PATCH`  | `/api/v1/admissions/applications/{applicationId}/contacts/{linkId}`                         |
| `DELETE` | `/api/v1/admissions/applications/{applicationId}/contacts/{linkId}`                         |
| `GET`    | `/api/v1/admissions/applications/{applicationId}/conversations`                             |
| `POST`   | `/api/v1/admissions/applications/{applicationId}/hide`                                      |
| `POST`   | `/api/v1/admissions/applications/{applicationId}/notes`                                     |
| `DELETE` | `/api/v1/admissions/applications/{applicationId}/notes/{noteId}`                            |
| `GET`    | `/api/v1/admissions/applications/{applicationId}/notes/attachments/{attachmentId}/download` |
| `POST`   | `/api/v1/admissions/applications/{applicationId}/notes/upload-intent`                       |
| `POST`   | `/api/v1/admissions/applications/bulk-status`                                               |
| `POST`   | `/api/v1/admissions/applications/export`                                                    |
| `GET`    | `/api/v1/admissions/applications/status-counts`                                             |

### `/api/v1/admissions/contacts`

1 endpoint · [`apps/web/src/server/routes/v1/admissions-contacts.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/admissions-contacts.ts)

| Método | Ruta                                 |
| ------ | ------------------------------------ |
| `GET`  | `/api/v1/admissions/contacts/search` |

### `/api/v1/admissions/imports`

3 endpoints · [`apps/web/src/server/routes/v1/admissions-imports.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/admissions-imports.ts)

| Método | Ruta                                        |
| ------ | ------------------------------------------- |
| `GET`  | `/api/v1/admissions/imports/{runId}`        |
| `POST` | `/api/v1/admissions/imports/{runId}/commit` |
| `POST` | `/api/v1/admissions/imports/preview`        |

### `/api/v1/admissions/management-reason-codes`

3 endpoints · [`apps/web/src/server/routes/v1/admissions-management-reason-codes.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/admissions-management-reason-codes.ts)

| Método  | Ruta                                                    |
| ------- | ------------------------------------------------------- |
| `GET`   | `/api/v1/admissions/management-reason-codes`            |
| `POST`  | `/api/v1/admissions/management-reason-codes`            |
| `PATCH` | `/api/v1/admissions/management-reason-codes/{reasonId}` |

### `/api/v1/admissions/pipeline/statuses`

4 endpoints · [`apps/web/src/server/routes/v1/admissions-pipeline-statuses.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/admissions-pipeline-statuses.ts)

| Método  | Ruta                                              |
| ------- | ------------------------------------------------- |
| `GET`   | `/api/v1/admissions/pipeline/statuses`            |
| `POST`  | `/api/v1/admissions/pipeline/statuses`            |
| `PATCH` | `/api/v1/admissions/pipeline/statuses/{statusId}` |
| `PATCH` | `/api/v1/admissions/pipeline/statuses/order`      |

### `/api/v1/admissions/programs`

1 endpoint · [`apps/web/src/server/routes/v1/admissions-programs.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/admissions-programs.ts)

| Método | Ruta                                 |
| ------ | ------------------------------------ |
| `GET`  | `/api/v1/admissions/programs/search` |

### `/api/v1/ai-usage`

3 endpoints · [`apps/web/src/server/routes/v1/ai-usage.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/ai-usage.ts)

| Método  | Ruta                              |
| ------- | --------------------------------- |
| `PATCH` | `/api/v1/ai-usage/controls`       |
| `GET`   | `/api/v1/ai-usage/gateway-report` |
| `GET`   | `/api/v1/ai-usage/summary`        |

### `/api/v1/apps`

11 endpoints · [`apps/web/src/server/routes/v1/apps.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/apps.ts)

| Método   | Ruta                                |
| -------- | ----------------------------------- |
| `GET`    | `/api/v1/apps`                      |
| `DELETE` | `/api/v1/apps/elevenlabs`           |
| `PUT`    | `/api/v1/apps/elevenlabs/settings`  |
| `POST`   | `/api/v1/apps/elevenlabs/speech`    |
| `POST`   | `/api/v1/apps/elevenlabs/test`      |
| `DELETE` | `/api/v1/apps/notion`               |
| `POST`   | `/api/v1/apps/notion/connect-token` |
| `POST`   | `/api/v1/apps/notion/oauth/start`   |
| `GET`    | `/api/v1/apps/notion/pages`         |
| `POST`   | `/api/v1/apps/notion/save-report`   |
| `PATCH`  | `/api/v1/apps/notion/settings`      |

### `/api/v1/assistant`

10 endpoints · [`apps/web/src/server/routes/v1/assistant.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/assistant.ts)

| Método  | Ruta                                                 |
| ------- | ---------------------------------------------------- |
| `POST`  | `/api/v1/assistant`                                  |
| `GET`   | `/api/v1/assistant/conversations`                    |
| `GET`   | `/api/v1/assistant/conversations/{id}`               |
| `POST`  | `/api/v1/assistant/conversations/{id}/clear-context` |
| `GET`   | `/api/v1/assistant/memories`                         |
| `PATCH` | `/api/v1/assistant/memories/{id}`                    |
| `POST`  | `/api/v1/assistant/memories/{id}/approve`            |
| `POST`  | `/api/v1/assistant/memories/{id}/archive`            |
| `GET`   | `/api/v1/assistant/mentions`                         |
| `POST`  | `/api/v1/assistant/stream`                           |

### `/api/v1/assistant/research-runs`

5 endpoints · [`apps/web/src/server/routes/v1/assistant-research-runs.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/assistant-research-runs.ts)

| Método | Ruta                                          |
| ------ | --------------------------------------------- |
| `GET`  | `/api/v1/assistant/research-runs`             |
| `POST` | `/api/v1/assistant/research-runs`             |
| `GET`  | `/api/v1/assistant/research-runs/{id}`        |
| `POST` | `/api/v1/assistant/research-runs/{id}/cancel` |
| `POST` | `/api/v1/assistant/research-runs/{id}/start`  |

### `/api/v1/attendance`

3 endpoints · [`apps/web/src/server/routes/v1/attendance.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/attendance.ts)

| Método  | Ruta                      |
| ------- | ------------------------- |
| `GET`   | `/api/v1/attendance`      |
| `POST`  | `/api/v1/attendance`      |
| `PATCH` | `/api/v1/attendance/{id}` |

### `/api/v1/automations/conversation-bots`

19 endpoints · [`apps/web/src/server/routes/v1/conversation-bots.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/conversation-bots.ts)

| Método   | Ruta                                                                             |
| -------- | -------------------------------------------------------------------------------- |
| `GET`    | `/api/v1/automations/conversation-bots`                                          |
| `POST`   | `/api/v1/automations/conversation-bots`                                          |
| `GET`    | `/api/v1/automations/conversation-bots/:id`                                      |
| `PUT`    | `/api/v1/automations/conversation-bots/:id`                                      |
| `PUT`    | `/api/v1/automations/conversation-bots/:id/binding`                              |
| `POST`   | `/api/v1/automations/conversation-bots/:id/disable`                              |
| `POST`   | `/api/v1/automations/conversation-bots/:id/enable`                               |
| `GET`    | `/api/v1/automations/conversation-bots/:id/knowledge-sources`                    |
| `DELETE` | `/api/v1/automations/conversation-bots/:id/knowledge-sources/:sourceId`          |
| `POST`   | `/api/v1/automations/conversation-bots/:id/knowledge-sources/:sourceId/attach`   |
| `GET`    | `/api/v1/automations/conversation-bots/:id/knowledge-sources/catalog`            |
| `POST`   | `/api/v1/automations/conversation-bots/:id/knowledge-sources/document`           |
| `POST`   | `/api/v1/automations/conversation-bots/:id/knowledge-sources/preview/document`   |
| `POST`   | `/api/v1/automations/conversation-bots/:id/knowledge-sources/preview/structured` |
| `POST`   | `/api/v1/automations/conversation-bots/:id/knowledge-sources/structured`         |
| `POST`   | `/api/v1/automations/conversation-bots/:id/publish`                              |
| `POST`   | `/api/v1/automations/conversation-bots/:id/versions/:versionId/approve`          |
| `POST`   | `/api/v1/automations/conversation-bots/:id/versions/:versionId/restore`          |
| `GET`    | `/api/v1/automations/conversation-bots/catalog`                                  |

### `/api/v1/automations/notifications`

16 endpoints · [`apps/web/src/server/routes/v1/automations-notifications.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/automations-notifications.ts)

| Método   | Ruta                                                              |
| -------- | ----------------------------------------------------------------- |
| `GET`    | `/api/v1/automations/notifications/analytics`                     |
| `GET`    | `/api/v1/automations/notifications/catalog`                       |
| `GET`    | `/api/v1/automations/notifications/context/admissions-pipeline`   |
| `GET`    | `/api/v1/automations/notifications/context/appointment-types`     |
| `GET`    | `/api/v1/automations/notifications/context/forms`                 |
| `GET`    | `/api/v1/automations/notifications/context/vault`                 |
| `POST`   | `/api/v1/automations/notifications/preview-email`                 |
| `GET`    | `/api/v1/automations/notifications/rules`                         |
| `POST`   | `/api/v1/automations/notifications/rules`                         |
| `PATCH`  | `/api/v1/automations/notifications/rules/{ruleId}`                |
| `DELETE` | `/api/v1/automations/notifications/rules/{ruleId}`                |
| `GET`    | `/api/v1/automations/notifications/tenant-variables`              |
| `POST`   | `/api/v1/automations/notifications/tenant-variables`              |
| `PATCH`  | `/api/v1/automations/notifications/tenant-variables/{variableId}` |
| `DELETE` | `/api/v1/automations/notifications/tenant-variables/{variableId}` |
| `GET`    | `/api/v1/automations/notifications/variables`                     |

### `/api/v1/automations/whatsapp-meta`

24 endpoints · [`apps/web/src/server/routes/v1/whatsapp-meta.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/whatsapp-meta.ts)

| Método  | Ruta                                                                     |
| ------- | ------------------------------------------------------------------------ |
| `GET`   | `/api/v1/automations/whatsapp-meta/catalog`                              |
| `GET`   | `/api/v1/automations/whatsapp-meta/flows`                                |
| `POST`  | `/api/v1/automations/whatsapp-meta/flows`                                |
| `GET`   | `/api/v1/automations/whatsapp-meta/flows/:id`                            |
| `PATCH` | `/api/v1/automations/whatsapp-meta/flows/:id`                            |
| `POST`  | `/api/v1/automations/whatsapp-meta/flows/:id/data-endpoint`              |
| `POST`  | `/api/v1/automations/whatsapp-meta/flows/:id/deactivate`                 |
| `POST`  | `/api/v1/automations/whatsapp-meta/flows/:id/deprecate`                  |
| `POST`  | `/api/v1/automations/whatsapp-meta/flows/:id/duplicate`                  |
| `POST`  | `/api/v1/automations/whatsapp-meta/flows/:id/publish`                    |
| `POST`  | `/api/v1/automations/whatsapp-meta/flows/:id/reactivate`                 |
| `POST`  | `/api/v1/automations/whatsapp-meta/flows/import`                         |
| `GET`   | `/api/v1/automations/whatsapp-meta/flows/import/preview`                 |
| `GET`   | `/api/v1/automations/whatsapp-meta/inbox-settings`                       |
| `PATCH` | `/api/v1/automations/whatsapp-meta/inbox-settings`                       |
| `GET`   | `/api/v1/automations/whatsapp-meta/templates`                            |
| `POST`  | `/api/v1/automations/whatsapp-meta/templates`                            |
| `GET`   | `/api/v1/automations/whatsapp-meta/templates/:id`                        |
| `PATCH` | `/api/v1/automations/whatsapp-meta/templates/:id`                        |
| `POST`  | `/api/v1/automations/whatsapp-meta/templates/:id/submit`                 |
| `POST`  | `/api/v1/automations/whatsapp-meta/templates/header-image/upload-intent` |
| `POST`  | `/api/v1/automations/whatsapp-meta/templates/import`                     |
| `GET`   | `/api/v1/automations/whatsapp-meta/templates/import/preview`             |
| `POST`  | `/api/v1/automations/whatsapp-meta/templates/sync`                       |

### `/api/v1/campaigns`

7 endpoints · [`apps/web/src/server/routes/v1/campaigns.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/campaigns.ts)

| Método   | Ruta                                     |
| -------- | ---------------------------------------- |
| `GET`    | `/api/v1/campaigns`                      |
| `POST`   | `/api/v1/campaigns`                      |
| `GET`    | `/api/v1/campaigns/:id/aliases`          |
| `POST`   | `/api/v1/campaigns/:id/aliases`          |
| `DELETE` | `/api/v1/campaigns/:id/aliases/:aliasId` |
| `GET`    | `/api/v1/campaigns/identifiers`          |
| `GET`    | `/api/v1/campaigns/overview`             |

### `/api/v1/client-api`

7 endpoints · [`apps/web/src/server/routes/v1/client-api-keys.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/client-api-keys.ts)

| Método  | Ruta                                  |
| ------- | ------------------------------------- |
| `GET`   | `/api/v1/client-api/audit-events`     |
| `GET`   | `/api/v1/client-api/keys`             |
| `POST`  | `/api/v1/client-api/keys`             |
| `PATCH` | `/api/v1/client-api/keys/{id}`        |
| `POST`  | `/api/v1/client-api/keys/{id}/revoke` |
| `POST`  | `/api/v1/client-api/keys/{id}/rotate` |
| `GET`   | `/api/v1/client-api/overview`         |

### `/api/v1/client-api`

6 endpoints · [`apps/web/src/server/routes/v1/client-api-webhooks.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/client-api-webhooks.ts)

| Método | Ruta                                                |
| ------ | --------------------------------------------------- |
| `GET`  | `/api/v1/client-api/webhooks`                       |
| `POST` | `/api/v1/client-api/webhooks`                       |
| `POST` | `/api/v1/client-api/webhooks/{id}/rotate-secret`    |
| `POST` | `/api/v1/client-api/webhooks/{id}/test`             |
| `GET`  | `/api/v1/client-api/webhooks/deliveries`            |
| `POST` | `/api/v1/client-api/webhooks/deliveries/{id}/retry` |

### `/api/v1/communications`

62 endpoints · [`apps/web/src/server/routes/v1/communications.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/communications.ts)

| Método   | Ruta                                                                   |
| -------- | ---------------------------------------------------------------------- |
| `GET`    | `/api/v1/communications/adapters/health`                               |
| `GET`    | `/api/v1/communications/agents`                                        |
| `PATCH`  | `/api/v1/communications/agents/{userId}`                               |
| `PATCH`  | `/api/v1/communications/agents/me/status`                              |
| `GET`    | `/api/v1/communications/audit/export`                                  |
| `GET`    | `/api/v1/communications/composer-resources`                            |
| `POST`   | `/api/v1/communications/composer-resources/refresh`                    |
| `POST`   | `/api/v1/communications/contacts/{contactId}/automation/resume`        |
| `GET`    | `/api/v1/communications/inbox/stream`                                  |
| `GET`    | `/api/v1/communications/messages/:messageId/attachments/:attachmentId` |
| `GET`    | `/api/v1/communications/notes`                                         |
| `PATCH`  | `/api/v1/communications/notes/{noteId}`                                |
| `DELETE` | `/api/v1/communications/notes/{noteId}`                                |
| `GET`    | `/api/v1/communications/notifications`                                 |
| `POST`   | `/api/v1/communications/notifications/{notificationId}/click`          |
| `POST`   | `/api/v1/communications/notifications/{notificationId}/read`           |
| `GET`    | `/api/v1/communications/queues`                                        |
| `POST`   | `/api/v1/communications/queues`                                        |
| `PATCH`  | `/api/v1/communications/queues/{queueId}`                              |
| `GET`    | `/api/v1/communications/queues/{queueId}/members`                      |
| `PUT`    | `/api/v1/communications/queues/{queueId}/members`                      |
| `GET`    | `/api/v1/communications/quick-replies`                                 |
| `POST`   | `/api/v1/communications/quick-replies`                                 |
| `PATCH`  | `/api/v1/communications/quick-replies/{quickReplyId}`                  |
| `DELETE` | `/api/v1/communications/quick-replies/{quickReplyId}`                  |
| `GET`    | `/api/v1/communications/staff`                                         |
| `POST`   | `/api/v1/communications/start-conversation`                            |
| `GET`    | `/api/v1/communications/threads`                                       |
| `POST`   | `/api/v1/communications/threads/:threadId/document-request-draft`      |
| `POST`   | `/api/v1/communications/threads/:threadId/media`                       |
| `GET`    | `/api/v1/communications/threads/:threadId/media/limits`                |
| `POST`   | `/api/v1/communications/threads/:threadId/media/upload-intent`         |
| `POST`   | `/api/v1/communications/threads/:threadId/signature-draft`             |
| `GET`    | `/api/v1/communications/threads/{threadId}`                            |
| `GET`    | `/api/v1/communications/threads/{threadId}/admission`                  |
| `POST`   | `/api/v1/communications/threads/{threadId}/admission/application`      |
| `PUT`    | `/api/v1/communications/threads/{threadId}/admission/link`             |
| `PATCH`  | `/api/v1/communications/threads/{threadId}/assignee`                   |
| `POST`   | `/api/v1/communications/threads/{threadId}/assistant/draft`            |
| `GET`    | `/api/v1/communications/threads/{threadId}/automation/history`         |
| `POST`   | `/api/v1/communications/threads/{threadId}/automation/pause`           |
| `POST`   | `/api/v1/communications/threads/{threadId}/automation/resume`          |
| `POST`   | `/api/v1/communications/threads/{threadId}/claim`                      |
| `GET`    | `/api/v1/communications/threads/{threadId}/composer-resources`         |
| `POST`   | `/api/v1/communications/threads/{threadId}/messages`                   |
| `POST`   | `/api/v1/communications/threads/{threadId}/notes`                      |
| `POST`   | `/api/v1/communications/threads/{threadId}/read`                       |
| `PATCH`  | `/api/v1/communications/threads/{threadId}/sla`                        |
| `PATCH`  | `/api/v1/communications/threads/{threadId}/status`                     |
| `GET`    | `/api/v1/communications/threads/{threadId}/stream`                     |
| `GET`    | `/api/v1/communications/threads/{threadId}/templates`                  |
| `POST`   | `/api/v1/communications/threads/{threadId}/typing`                     |
| `POST`   | `/api/v1/communications/threads/{threadId}/unassign`                   |
| `POST`   | `/api/v1/communications/threads/{threadId}/unread`                     |
| `GET`    | `/api/v1/communications/threads/counts`                                |
| `GET`    | `/api/v1/communications/threads/time-buckets`                          |
| `GET`    | `/api/v1/communications/whatsapp/ad-campaigns`                         |
| `GET`    | `/api/v1/communications/whatsapp/ad-campaigns/detail`                  |
| `GET`    | `/api/v1/communications/whatsapp/ad-filter-options`                    |
| `GET`    | `/api/v1/communications/whatsapp/link-campaigns`                       |
| `GET`    | `/api/v1/communications/whatsapp/link-campaigns/detail`                |
| `GET`    | `/api/v1/communications/whatsapp/thread-groups`                        |

### `/api/v1/communications/inboxes`

15 endpoints · [`apps/web/src/server/routes/v1/communications-inboxes.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/communications-inboxes.ts)

| Método   | Ruta                                                                      |
| -------- | ------------------------------------------------------------------------- |
| `GET`    | `/api/v1/communications/inboxes`                                          |
| `POST`   | `/api/v1/communications/inboxes`                                          |
| `GET`    | `/api/v1/communications/inboxes/{inboxId}`                                |
| `PATCH`  | `/api/v1/communications/inboxes/{inboxId}`                                |
| `DELETE` | `/api/v1/communications/inboxes/{inboxId}`                                |
| `POST`   | `/api/v1/communications/inboxes/{inboxId}/rotate`                         |
| `POST`   | `/api/v1/communications/inboxes/whatsapp`                                 |
| `POST`   | `/api/v1/communications/inboxes/whatsapp/{inboxId}/replay-event`          |
| `POST`   | `/api/v1/communications/inboxes/whatsapp/{inboxId}/rotate-api-key`        |
| `POST`   | `/api/v1/communications/inboxes/whatsapp/{inboxId}/rotate-webhook-secret` |
| `POST`   | `/api/v1/communications/inboxes/whatsapp/{inboxId}/test`                  |
| `GET`    | `/api/v1/communications/inboxes/whatsapp/health`                          |
| `GET`    | `/api/v1/communications/inboxes/whatsapp/managed-config`                  |
| `DELETE` | `/api/v1/communications/inboxes/widget/contacts/{contactId}`              |
| `GET`    | `/api/v1/communications/inboxes/widget/health`                            |

### `/api/v1/communications/inboxes/email`

4 endpoints · [`apps/web/src/server/routes/v1/communications-email.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/communications-email.ts)

| Método   | Ruta                                                        |
| -------- | ----------------------------------------------------------- |
| `GET`    | `/api/v1/communications/inboxes/email/{inboxId}/connection` |
| `DELETE` | `/api/v1/communications/inboxes/email/{inboxId}/connection` |
| `POST`   | `/api/v1/communications/inboxes/email/{inboxId}/reconnect`  |
| `POST`   | `/api/v1/communications/inboxes/email/oauth/start`          |

### `/api/v1/communications/tags`

5 endpoints · [`apps/web/src/server/routes/v1/communication-tags.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/communication-tags.ts)

| Método   | Ruta                                             |
| -------- | ------------------------------------------------ |
| `GET`    | `/api/v1/communications/tags`                    |
| `POST`   | `/api/v1/communications/tags`                    |
| `PATCH`  | `/api/v1/communications/tags/{tagId}`            |
| `DELETE` | `/api/v1/communications/tags/{tagId}`            |
| `PUT`    | `/api/v1/communications/tags/threads/{threadId}` |

### `/api/v1/contacts`

15 endpoints · [`apps/web/src/server/routes/v1/contacts.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/contacts.ts)

| Método   | Ruta                                                   |
| -------- | ------------------------------------------------------ |
| `GET`    | `/api/v1/contacts`                                     |
| `POST`   | `/api/v1/contacts`                                     |
| `GET`    | `/api/v1/contacts/{contactId}`                         |
| `PATCH`  | `/api/v1/contacts/{contactId}`                         |
| `GET`    | `/api/v1/contacts/{contactId}/admissions`              |
| `POST`   | `/api/v1/contacts/{contactId}/admissions/application`  |
| `GET`    | `/api/v1/contacts/{contactId}/email-conflicts`         |
| `POST`   | `/api/v1/contacts/{contactId}/identities`              |
| `PATCH`  | `/api/v1/contacts/{contactId}/identities/{identityId}` |
| `DELETE` | `/api/v1/contacts/{contactId}/identities/{identityId}` |
| `POST`   | `/api/v1/contacts/{contactId}/merge`                   |
| `POST`   | `/api/v1/contacts/{contactId}/merge/preview`           |
| `GET`    | `/api/v1/contacts/{contactId}/timeline`                |
| `GET`    | `/api/v1/contacts/duplicates`                          |
| `GET`    | `/api/v1/contacts/search`                              |

### `/api/v1/course-sections`

11 endpoints · [`apps/web/src/server/routes/v1/course-sections.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/course-sections.ts)

| Método  | Ruta                                                         |
| ------- | ------------------------------------------------------------ |
| `GET`   | `/api/v1/course-sections`                                    |
| `POST`  | `/api/v1/course-sections`                                    |
| `GET`   | `/api/v1/course-sections/{id}`                               |
| `PATCH` | `/api/v1/course-sections/{id}`                               |
| `GET`   | `/api/v1/course-sections/{id}/final-grades`                  |
| `GET`   | `/api/v1/course-sections/{id}/grade-categories`              |
| `POST`  | `/api/v1/course-sections/{id}/grade-categories`              |
| `PATCH` | `/api/v1/course-sections/{id}/grade-categories/{categoryId}` |
| `GET`   | `/api/v1/course-sections/{id}/grade-items`                   |
| `POST`  | `/api/v1/course-sections/{id}/grade-items`                   |
| `PATCH` | `/api/v1/course-sections/{id}/grade-items/{itemId}`          |

### `/api/v1/courses`

4 endpoints · [`apps/web/src/server/routes/v1/courses.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/courses.ts)

| Método  | Ruta                   |
| ------- | ---------------------- |
| `GET`   | `/api/v1/courses`      |
| `POST`  | `/api/v1/courses`      |
| `GET`   | `/api/v1/courses/{id}` |
| `PATCH` | `/api/v1/courses/{id}` |

### `/api/v1/dashboard`

2 endpoints · [`apps/web/src/server/routes/v1/dashboard.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/dashboard.ts)

| Método  | Ruta                           |
| ------- | ------------------------------ |
| `PATCH` | `/api/v1/dashboard/activation` |
| `GET`   | `/api/v1/dashboard/home`       |

### `/api/v1/enrollments`

4 endpoints · [`apps/web/src/server/routes/v1/enrollments.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/enrollments.ts)

| Método  | Ruta                                  |
| ------- | ------------------------------------- |
| `GET`   | `/api/v1/enrollments`                 |
| `POST`  | `/api/v1/enrollments`                 |
| `PATCH` | `/api/v1/enrollments/{id}`            |
| `GET`   | `/api/v1/enrollments/section-options` |

### `/api/v1/finance`

2 endpoints · [`apps/web/src/server/routes/v1/finance.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/finance.ts)

| Método | Ruta                                    |
| ------ | --------------------------------------- |
| `GET`  | `/api/v1/finance/receipts/:id/document` |
| `GET`  | `/api/v1/finance/reports/export`        |

### `/api/v1/finance/collections`

18 endpoints · [`apps/web/src/server/routes/v1/finance-collections.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/finance-collections.ts)

| Método  | Ruta                                                              |
| ------- | ----------------------------------------------------------------- |
| `GET`   | `/api/v1/finance/collections/assignees`                           |
| `GET`   | `/api/v1/finance/collections/attachments/:attachmentId/download`  |
| `GET`   | `/api/v1/finance/collections/board`                               |
| `GET`   | `/api/v1/finance/collections/cases`                               |
| `GET`   | `/api/v1/finance/collections/cases/:id`                           |
| `PATCH` | `/api/v1/finance/collections/cases/:id`                           |
| `POST`  | `/api/v1/finance/collections/cases/:id/activities`                |
| `POST`  | `/api/v1/finance/collections/cases/:id/assign`                    |
| `POST`  | `/api/v1/finance/collections/cases/:id/attachments/upload-intent` |
| `POST`  | `/api/v1/finance/collections/cases/:id/outbox`                    |
| `GET`   | `/api/v1/finance/collections/cases/:id/promise-preview`           |
| `GET`   | `/api/v1/finance/collections/outbox`                              |
| `POST`  | `/api/v1/finance/collections/outbox/:outboxId/discard`            |
| `POST`  | `/api/v1/finance/collections/outbox/:outboxId/dispatch`           |
| `GET`   | `/api/v1/finance/collections/reason-codes`                        |
| `GET`   | `/api/v1/finance/collections/strategy`                            |
| `PUT`   | `/api/v1/finance/collections/strategy`                            |
| `GET`   | `/api/v1/finance/collections/template-variables`                  |

### `/api/v1/finance/siigo`

28 endpoints · [`apps/web/src/server/routes/v1/finance-siigo.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/finance-siigo.ts)

| Método   | Ruta                                             |
| -------- | ------------------------------------------------ |
| `GET`    | `/api/v1/finance/siigo/catalogs/{kind}`          |
| `GET`    | `/api/v1/finance/siigo/catalogs/products`        |
| `GET`    | `/api/v1/finance/siigo/connection`               |
| `POST`   | `/api/v1/finance/siigo/connection`               |
| `DELETE` | `/api/v1/finance/siigo/connection`               |
| `POST`   | `/api/v1/finance/siigo/connection/mode`          |
| `PATCH`  | `/api/v1/finance/siigo/connection/settings`      |
| `POST`   | `/api/v1/finance/siigo/connection/stamp`         |
| `POST`   | `/api/v1/finance/siigo/identities/apply`         |
| `POST`   | `/api/v1/finance/siigo/identities/apply-bulk`    |
| `GET`    | `/api/v1/finance/siigo/identities/coverage`      |
| `POST`   | `/api/v1/finance/siigo/identities/import`        |
| `GET`    | `/api/v1/finance/siigo/mappings`                 |
| `PUT`    | `/api/v1/finance/siigo/mappings`                 |
| `POST`   | `/api/v1/finance/siigo/mappings/apply-programs`  |
| `GET`    | `/api/v1/finance/siigo/mappings/propose`         |
| `GET`    | `/api/v1/finance/siigo/payment-methods`          |
| `PUT`    | `/api/v1/finance/siigo/payment-methods`          |
| `GET`    | `/api/v1/finance/siigo/queue`                    |
| `POST`   | `/api/v1/finance/siigo/queue/{id}/{action}`      |
| `POST`   | `/api/v1/finance/siigo/queue/{id}/reconcile`     |
| `POST`   | `/api/v1/finance/siigo/queue/drain`              |
| `POST`   | `/api/v1/finance/siigo/queue/enqueue-customers`  |
| `POST`   | `/api/v1/finance/siigo/queue/release`            |
| `POST`   | `/api/v1/finance/siigo/queue/rollback-customers` |
| `POST`   | `/api/v1/finance/siigo/receipts/status`          |
| `POST`   | `/api/v1/finance/siigo/sync/enqueue`             |
| `POST`   | `/api/v1/finance/siigo/sync/preview`             |

### `/api/v1/forms`

27 endpoints · [`apps/web/src/server/routes/v1/forms.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/forms.ts)

| Método   | Ruta                                                                              |
| -------- | --------------------------------------------------------------------------------- |
| `GET`    | `/api/v1/forms/categories`                                                        |
| `POST`   | `/api/v1/forms/categories`                                                        |
| `PATCH`  | `/api/v1/forms/categories/{categoryId}`                                           |
| `DELETE` | `/api/v1/forms/categories/{categoryId}`                                           |
| `GET`    | `/api/v1/forms/dynamic-options/academic-programs`                                 |
| `GET`    | `/api/v1/forms/submissions`                                                       |
| `POST`   | `/api/v1/forms/submissions/:submissionId/uploads`                                 |
| `POST`   | `/api/v1/forms/submissions/:submissionId/uploads/:documentId/:versionId/complete` |
| `GET`    | `/api/v1/forms/submissions/:submissionId/uploads/:documentId/:versionId/download` |
| `GET`    | `/api/v1/forms/submissions/{submissionId}`                                        |
| `PATCH`  | `/api/v1/forms/submissions/{submissionId}`                                        |
| `DELETE` | `/api/v1/forms/submissions/{submissionId}`                                        |
| `GET`    | `/api/v1/forms/templates`                                                         |
| `POST`   | `/api/v1/forms/templates`                                                         |
| `GET`    | `/api/v1/forms/templates/:templateId/submissions/export`                          |
| `POST`   | `/api/v1/forms/templates/:templateId/uploads`                                     |
| `POST`   | `/api/v1/forms/templates/:templateId/uploads/:documentId/:versionId/complete`     |
| `GET`    | `/api/v1/forms/templates/:templateId/uploads/:documentId/:versionId/download`     |
| `GET`    | `/api/v1/forms/templates/{templateId}`                                            |
| `PATCH`  | `/api/v1/forms/templates/{templateId}`                                            |
| `GET`    | `/api/v1/forms/templates/{templateId}/analytics`                                  |
| `POST`   | `/api/v1/forms/templates/{templateId}/archive`                                    |
| `POST`   | `/api/v1/forms/templates/{templateId}/duplicate`                                  |
| `PUT`    | `/api/v1/forms/templates/{templateId}/public-page`                                |
| `POST`   | `/api/v1/forms/templates/{templateId}/publish`                                    |
| `GET`    | `/api/v1/forms/templates/{templateId}/submissions`                                |
| `POST`   | `/api/v1/forms/templates/{templateId}/submissions`                                |

### `/api/v1/grades`

4 endpoints · [`apps/web/src/server/routes/v1/grades.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/grades.ts)

| Método  | Ruta                        |
| ------- | --------------------------- |
| `GET`   | `/api/v1/grades`            |
| `POST`  | `/api/v1/grades`            |
| `PATCH` | `/api/v1/grades/{id}`       |
| `GET`   | `/api/v1/grades/{id}/audit` |

### `/api/v1/invitations`

1 endpoint · [`apps/web/src/server/routes/v1/invitations.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/invitations.ts)

| Método | Ruta                  |
| ------ | --------------------- |
| `POST` | `/api/v1/invitations` |

### `/api/v1/payments`

2 endpoints · [`apps/web/src/server/routes/v1/payments.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/payments.ts)

| Método | Ruta               |
| ------ | ------------------ |
| `GET`  | `/api/v1/payments` |
| `POST` | `/api/v1/payments` |

### `/api/v1/pqrs`

23 endpoints · [`apps/web/src/server/routes/v1/pqrs.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/pqrs.ts)

| Método   | Ruta                                         |
| -------- | -------------------------------------------- |
| `GET`    | `/api/v1/pqrs`                               |
| `POST`   | `/api/v1/pqrs`                               |
| `GET`    | `/api/v1/pqrs/:id`                           |
| `PATCH`  | `/api/v1/pqrs/:id`                           |
| `PATCH`  | `/api/v1/pqrs/:id/attachments/:documentId`   |
| `GET`    | `/api/v1/pqrs/:id/notes`                     |
| `POST`   | `/api/v1/pqrs/:id/notes`                     |
| `POST`   | `/api/v1/pqrs/:id/response`                  |
| `GET`    | `/api/v1/pqrs/areas`                         |
| `GET`    | `/api/v1/pqrs/settings/areas`                |
| `POST`   | `/api/v1/pqrs/settings/areas`                |
| `PATCH`  | `/api/v1/pqrs/settings/areas/:id`            |
| `PATCH`  | `/api/v1/pqrs/settings/areas/order`          |
| `GET`    | `/api/v1/pqrs/settings/notifications`        |
| `PATCH`  | `/api/v1/pqrs/settings/notifications`        |
| `POST`   | `/api/v1/pqrs/settings/statuses`             |
| `PATCH`  | `/api/v1/pqrs/settings/statuses/:id`         |
| `PATCH`  | `/api/v1/pqrs/settings/statuses/order`       |
| `GET`    | `/api/v1/pqrs/settings/type-durations`       |
| `PATCH`  | `/api/v1/pqrs/settings/type-durations/:type` |
| `DELETE` | `/api/v1/pqrs/settings/type-durations/:type` |
| `GET`    | `/api/v1/pqrs/staff`                         |
| `GET`    | `/api/v1/pqrs/statuses`                      |

### `/api/v1/print-formats`

5 endpoints · [`apps/web/src/server/routes/v1/print-formats.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/print-formats.ts)

| Método   | Ruta                               |
| -------- | ---------------------------------- |
| `GET`    | `/api/v1/print-formats`            |
| `POST`   | `/api/v1/print-formats`            |
| `PATCH`  | `/api/v1/print-formats/{formatId}` |
| `DELETE` | `/api/v1/print-formats/{formatId}` |
| `GET`    | `/api/v1/print-formats/resolve`    |

### `/api/v1/programs`

4 endpoints · [`apps/web/src/server/routes/v1/programs.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/programs.ts)

| Método  | Ruta                    |
| ------- | ----------------------- |
| `GET`   | `/api/v1/programs`      |
| `POST`  | `/api/v1/programs`      |
| `GET`   | `/api/v1/programs/{id}` |
| `PATCH` | `/api/v1/programs/{id}` |

### `/api/v1/public-pages`

12 endpoints · [`apps/web/src/server/routes/v1/public-pages.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/public-pages.ts)

| Método   | Ruta                                          |
| -------- | --------------------------------------------- |
| `GET`    | `/api/v1/public-pages`                        |
| `POST`   | `/api/v1/public-pages`                        |
| `GET`    | `/api/v1/public-pages/:id`                    |
| `PATCH`  | `/api/v1/public-pages/:id`                    |
| `DELETE` | `/api/v1/public-pages/:id`                    |
| `GET`    | `/api/v1/public-pages/:id/deliveries`         |
| `POST`   | `/api/v1/public-pages/:id/link-draft`         |
| `POST`   | `/api/v1/public-pages/:id/publish`            |
| `GET`    | `/api/v1/public-pages/:id/report`             |
| `PATCH`  | `/api/v1/public-pages/:id/sections/:position` |
| `POST`   | `/api/v1/public-pages/:id/unpublish`          |
| `POST`   | `/api/v1/public-pages/:id/uploaded`           |

### `/api/v1/pwa`

3 endpoints · [`apps/web/src/server/routes/v1/pwa.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/pwa.ts)

| Método   | Ruta                             |
| -------- | -------------------------------- |
| `GET`    | `/api/v1/pwa/push-config`        |
| `POST`   | `/api/v1/pwa/push-subscriptions` |
| `DELETE` | `/api/v1/pwa/push-subscriptions` |

### `/api/v1/reports`

8 endpoints · [`apps/web/src/server/routes/v1/reports.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/reports.ts)

| Método | Ruta                                    |
| ------ | --------------------------------------- |
| `GET`  | `/api/v1/reports/bots`                  |
| `GET`  | `/api/v1/reports/bots/failures`         |
| `GET`  | `/api/v1/reports/communications`        |
| `GET`  | `/api/v1/reports/communications/export` |
| `GET`  | `/api/v1/reports/pipeline`              |
| `GET`  | `/api/v1/reports/pipeline/export`       |
| `GET`  | `/api/v1/reports/signatures`            |
| `GET`  | `/api/v1/reports/signatures/analytics`  |

### `/api/v1/scheduling`

52 endpoints · [`apps/web/src/server/routes/v1/scheduling.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/scheduling.ts)

| Método   | Ruta                                                                        |
| -------- | --------------------------------------------------------------------------- |
| `GET`    | `/api/v1/scheduling/appointment-types`                                      |
| `POST`   | `/api/v1/scheduling/appointment-types`                                      |
| `PATCH`  | `/api/v1/scheduling/appointment-types/:id`                                  |
| `DELETE` | `/api/v1/scheduling/appointment-types/:id`                                  |
| `GET`    | `/api/v1/scheduling/appointment-types/:id/availability`                     |
| `PUT`    | `/api/v1/scheduling/appointment-types/:id/availability`                     |
| `GET`    | `/api/v1/scheduling/appointment-types/:id/slots`                            |
| `GET`    | `/api/v1/scheduling/appointments`                                           |
| `POST`   | `/api/v1/scheduling/appointments`                                           |
| `GET`    | `/api/v1/scheduling/appointments/:id`                                       |
| `POST`   | `/api/v1/scheduling/appointments/:id/cancel`                                |
| `GET`    | `/api/v1/scheduling/blackout-dates`                                         |
| `PUT`    | `/api/v1/scheduling/blackout-dates`                                         |
| `PATCH`  | `/api/v1/scheduling/blackout-dates/settings`                                |
| `GET`    | `/api/v1/scheduling/calendar-feed`                                          |
| `GET`    | `/api/v1/scheduling/calendar/connection`                                    |
| `PATCH`  | `/api/v1/scheduling/calendar/connection/:connectionId`                      |
| `DELETE` | `/api/v1/scheduling/calendar/connection/:connectionId`                      |
| `GET`    | `/api/v1/scheduling/calendar/connection/calendars`                          |
| `POST`   | `/api/v1/scheduling/calendar/connection/oauth/start`                        |
| `GET`    | `/api/v1/scheduling/events`                                                 |
| `POST`   | `/api/v1/scheduling/events`                                                 |
| `GET`    | `/api/v1/scheduling/events/:eventId`                                        |
| `PATCH`  | `/api/v1/scheduling/events/:eventId`                                        |
| `GET`    | `/api/v1/scheduling/events/:eventId/activity`                               |
| `POST`   | `/api/v1/scheduling/events/:eventId/cancel`                                 |
| `GET`    | `/api/v1/scheduling/events/:eventId/guests`                                 |
| `POST`   | `/api/v1/scheduling/events/:eventId/guests`                                 |
| `PATCH`  | `/api/v1/scheduling/events/:eventId/guests/:guestId`                        |
| `DELETE` | `/api/v1/scheduling/events/:eventId/guests/:guestId`                        |
| `GET`    | `/api/v1/scheduling/events/:eventId/guests/:guestId/admission`              |
| `POST`   | `/api/v1/scheduling/events/:eventId/guests/:guestId/admission/applications` |
| `PUT`    | `/api/v1/scheduling/events/:eventId/guests/:guestId/admission/link`         |
| `POST`   | `/api/v1/scheduling/events/:eventId/guests/:guestId/check-in`               |
| `POST`   | `/api/v1/scheduling/events/:eventId/guests/:guestId/no-show`                |
| `POST`   | `/api/v1/scheduling/events/:eventId/guests/:guestId/resend-invite`          |
| `POST`   | `/api/v1/scheduling/events/:eventId/guests/:guestId/resend-invite-whatsapp` |
| `POST`   | `/api/v1/scheduling/events/:eventId/guests/bulk`                            |
| `POST`   | `/api/v1/scheduling/events/:eventId/guests/import-from-pipeline`            |
| `POST`   | `/api/v1/scheduling/events/:eventId/guests/import-preview`                  |
| `POST`   | `/api/v1/scheduling/events/:eventId/publish`                                |
| `GET`    | `/api/v1/scheduling/events/source-candidates`                               |
| `GET`    | `/api/v1/scheduling/flows`                                                  |
| `POST`   | `/api/v1/scheduling/flows`                                                  |
| `PATCH`  | `/api/v1/scheduling/flows/:id`                                              |
| `POST`   | `/api/v1/scheduling/google-events/cancel`                                   |
| `GET`    | `/api/v1/scheduling/inbox-automation/:inboxId`                              |
| `PATCH`  | `/api/v1/scheduling/inbox-automation/:inboxId`                              |
| `GET`    | `/api/v1/scheduling/overview`                                               |
| `GET`    | `/api/v1/scheduling/settings`                                               |
| `PATCH`  | `/api/v1/scheduling/settings`                                               |
| `GET`    | `/api/v1/scheduling/whatsapp-invite-templates`                              |

### `/api/v1/signatures`

35 endpoints · [`apps/web/src/server/routes/v1/signatures.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/signatures.ts)

| Método   | Ruta                                                          |
| -------- | ------------------------------------------------------------- |
| `GET`    | `/api/v1/signatures/batches`                                  |
| `POST`   | `/api/v1/signatures/batches`                                  |
| `GET`    | `/api/v1/signatures/batches/:batchId`                         |
| `POST`   | `/api/v1/signatures/batches/:batchId/rows/:rowId/retry`       |
| `GET`    | `/api/v1/signatures/batches/candidates`                       |
| `POST`   | `/api/v1/signatures/batches/preview`                          |
| `GET`    | `/api/v1/signatures/entities/search`                          |
| `GET`    | `/api/v1/signatures/me/pending`                               |
| `POST`   | `/api/v1/signatures/participants/:participantId/link`         |
| `GET`    | `/api/v1/signatures/participants/:participantId/preview-file` |
| `GET`    | `/api/v1/signatures/participants/:participantId/signing`      |
| `POST`   | `/api/v1/signatures/participants/:participantId/signing`      |
| `GET`    | `/api/v1/signatures/requests`                                 |
| `POST`   | `/api/v1/signatures/requests`                                 |
| `GET`    | `/api/v1/signatures/requests/:requestId`                      |
| `PATCH`  | `/api/v1/signatures/requests/:requestId`                      |
| `POST`   | `/api/v1/signatures/requests/:requestId/resume`               |
| `POST`   | `/api/v1/signatures/requests/:requestId/revoke`               |
| `POST`   | `/api/v1/signatures/requests/:requestId/send`                 |
| `GET`    | `/api/v1/signatures/team-members`                             |
| `GET`    | `/api/v1/signatures/templates`                                |
| `POST`   | `/api/v1/signatures/templates`                                |
| `GET`    | `/api/v1/signatures/templates/:templateId`                    |
| `PATCH`  | `/api/v1/signatures/templates/:templateId`                    |
| `DELETE` | `/api/v1/signatures/templates/:templateId`                    |
| `POST`   | `/api/v1/signatures/templates/:templateId/archive`            |
| `POST`   | `/api/v1/signatures/templates/:templateId/documents`          |
| `POST`   | `/api/v1/signatures/templates/:templateId/documents/replace`  |
| `POST`   | `/api/v1/signatures/templates/:templateId/duplicate`          |
| `GET`    | `/api/v1/signatures/templates/:templateId/preview-file`       |
| `GET`    | `/api/v1/signatures/templates/:templateId/preview-url`        |
| `PATCH`  | `/api/v1/signatures/templates/:templateId/schema`             |
| `POST`   | `/api/v1/signatures/templates/:templateId/unarchive`          |
| `GET`    | `/api/v1/signatures/templates/:templateId/usage`              |
| `GET`    | `/api/v1/signatures/templates/in-use`                         |

### `/api/v1/student-groups`

9 endpoints · [`apps/web/src/server/routes/v1/student-segments.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/student-segments.ts)

| Método   | Ruta                                    |
| -------- | --------------------------------------- |
| `GET`    | `/api/v1/student-groups`                |
| `POST`   | `/api/v1/student-groups`                |
| `GET`    | `/api/v1/student-groups/{id}`           |
| `PATCH`  | `/api/v1/student-groups/{id}`           |
| `DELETE` | `/api/v1/student-groups/{id}`           |
| `POST`   | `/api/v1/student-groups/{id}/preview`   |
| `POST`   | `/api/v1/student-groups/{id}/snapshots` |
| `GET`    | `/api/v1/student-groups/options`        |
| `POST`   | `/api/v1/student-groups/preview`        |

### `/api/v1/student-program-enrollments`

4 endpoints · [`apps/web/src/server/routes/v1/student-program-enrollments.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/student-program-enrollments.ts)

| Método  | Ruta                                                  |
| ------- | ----------------------------------------------------- |
| `GET`   | `/api/v1/student-program-enrollments`                 |
| `POST`  | `/api/v1/student-program-enrollments`                 |
| `PATCH` | `/api/v1/student-program-enrollments/{id}`            |
| `GET`   | `/api/v1/student-program-enrollments/program-options` |

### `/api/v1/student-segments`

9 endpoints · [`apps/web/src/server/routes/v1/student-segments.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/student-segments.ts)

| Método   | Ruta                                      |
| -------- | ----------------------------------------- |
| `GET`    | `/api/v1/student-segments`                |
| `POST`   | `/api/v1/student-segments`                |
| `GET`    | `/api/v1/student-segments/{id}`           |
| `PATCH`  | `/api/v1/student-segments/{id}`           |
| `DELETE` | `/api/v1/student-segments/{id}`           |
| `POST`   | `/api/v1/student-segments/{id}/preview`   |
| `POST`   | `/api/v1/student-segments/{id}/snapshots` |
| `GET`    | `/api/v1/student-segments/options`        |
| `POST`   | `/api/v1/student-segments/preview`        |

### `/api/v1/students`

12 endpoints · [`apps/web/src/server/routes/v1/students.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/students.ts)

| Método   | Ruta                                                       |
| -------- | ---------------------------------------------------------- |
| `GET`    | `/api/v1/students`                                         |
| `POST`   | `/api/v1/students`                                         |
| `GET`    | `/api/v1/students/{studentId}`                             |
| `PATCH`  | `/api/v1/students/{studentId}`                             |
| `GET`    | `/api/v1/students/{studentId}/academic-progress`           |
| `POST`   | `/api/v1/students/{studentId}/academic-progress/overrides` |
| `POST`   | `/api/v1/students/{studentId}/contacts`                    |
| `PATCH`  | `/api/v1/students/{studentId}/contacts/{linkId}`           |
| `DELETE` | `/api/v1/students/{studentId}/contacts/{linkId}`           |
| `GET`    | `/api/v1/students/{studentId}/report-card`                 |
| `GET`    | `/api/v1/students/{studentId}/report-card-period-options`  |
| `GET`    | `/api/v1/students/by-contact/{contactId}`                  |

### `/api/v1/students/imports`

9 endpoints · [`apps/web/src/server/routes/v1/students-imports.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/students-imports.ts)

| Método | Ruta                                                                 |
| ------ | -------------------------------------------------------------------- |
| `GET`  | `/api/v1/students/imports`                                           |
| `GET`  | `/api/v1/students/imports/{runId}`                                   |
| `POST` | `/api/v1/students/imports/{runId}/commit`                            |
| `GET`  | `/api/v1/students/imports/{runId}/conflicts`                         |
| `POST` | `/api/v1/students/imports/{runId}/conflicts/{conflictId}/resolve`    |
| `GET`  | `/api/v1/students/imports/{runId}/family-reviews`                    |
| `POST` | `/api/v1/students/imports/{runId}/family-reviews/{reviewId}/resolve` |
| `POST` | `/api/v1/students/imports/{runId}/rollback`                          |
| `POST` | `/api/v1/students/imports/preview`                                   |

### `/api/v1/support`

7 endpoints · [`apps/web/src/server/routes/v1/support.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/support.ts)

| Método | Ruta                                                             |
| ------ | ---------------------------------------------------------------- |
| `GET`  | `/api/v1/support/notifications`                                  |
| `POST` | `/api/v1/support/notifications/:id/read`                         |
| `GET`  | `/api/v1/support/tickets`                                        |
| `POST` | `/api/v1/support/tickets`                                        |
| `GET`  | `/api/v1/support/tickets/:id`                                    |
| `GET`  | `/api/v1/support/tickets/:id/attachments/:attachmentId/download` |
| `POST` | `/api/v1/support/tickets/upload-intent`                          |

### `/api/v1/team`

6 endpoints · [`apps/web/src/server/routes/v1/team.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/team.ts)

| Método  | Ruta                                   |
| ------- | -------------------------------------- |
| `GET`   | `/api/v1/team`                         |
| `PATCH` | `/api/v1/team/access-requests/{id}`    |
| `POST`  | `/api/v1/team/invitations`             |
| `POST`  | `/api/v1/team/invitations/{id}/cancel` |
| `POST`  | `/api/v1/team/invitations/{id}/resend` |
| `PATCH` | `/api/v1/team/members/{membershipId}`  |

### `/api/v1/tenants`

9 endpoints · [`apps/web/src/server/routes/v1/tenants.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/tenants.ts)

| Método  | Ruta                                              |
| ------- | ------------------------------------------------- |
| `GET`   | `/api/v1/tenants/current`                         |
| `PATCH` | `/api/v1/tenants/current`                         |
| `PATCH` | `/api/v1/tenants/current/academic-settings`       |
| `GET`   | `/api/v1/tenants/current/academic-settings/usage` |
| `GET`   | `/api/v1/tenants/current/domains`                 |
| `PATCH` | `/api/v1/tenants/current/financial-settings`      |
| `PATCH` | `/api/v1/tenants/current/product-modules`         |
| `PATCH` | `/api/v1/tenants/current/subdomain`               |
| `GET`   | `/api/v1/tenants/current/subdomain/check`         |

### `/api/v1/vault`

39 endpoints · [`apps/web/src/server/routes/v1/vault.ts`](https://github.com/soyandresalcedo/edtools-os/blob/develop/apps/web/src/server/routes/v1/vault.ts)

| Método   | Ruta                                                               |
| -------- | ------------------------------------------------------------------ |
| `GET`    | `/api/v1/vault/communication-attachment-suggestions`               |
| `GET`    | `/api/v1/vault/document-types`                                     |
| `POST`   | `/api/v1/vault/document-types`                                     |
| `PATCH`  | `/api/v1/vault/document-types/:documentTypeId`                     |
| `GET`    | `/api/v1/vault/documents`                                          |
| `GET`    | `/api/v1/vault/documents/:documentId`                              |
| `PATCH`  | `/api/v1/vault/documents/:documentId`                              |
| `DELETE` | `/api/v1/vault/documents/:documentId`                              |
| `POST`   | `/api/v1/vault/documents/:documentId/comments`                     |
| `GET`    | `/api/v1/vault/documents/:documentId/download`                     |
| `POST`   | `/api/v1/vault/documents/:documentId/links`                        |
| `POST`   | `/api/v1/vault/documents/:documentId/restore`                      |
| `POST`   | `/api/v1/vault/documents/:documentId/versions/:versionId/complete` |
| `POST`   | `/api/v1/vault/documents/from-communication-attachment`            |
| `POST`   | `/api/v1/vault/documents/upload-intents`                           |
| `GET`    | `/api/v1/vault/entities/search`                                    |
| `PUT`    | `/api/v1/vault/entity-requirement-profile`                         |
| `GET`    | `/api/v1/vault/expedients`                                         |
| `DELETE` | `/api/v1/vault/expedients/:entityKind/:entityId`                   |
| `POST`   | `/api/v1/vault/expedients/:entityKind/:entityId/restore`           |
| `GET`    | `/api/v1/vault/expedients/activity`                                |
| `GET`    | `/api/v1/vault/request-templates`                                  |
| `POST`   | `/api/v1/vault/request-templates`                                  |
| `PATCH`  | `/api/v1/vault/request-templates/:id`                              |
| `GET`    | `/api/v1/vault/requests`                                           |
| `POST`   | `/api/v1/vault/requests`                                           |
| `GET`    | `/api/v1/vault/requests/:requestId`                                |
| `PATCH`  | `/api/v1/vault/requests/:requestId`                                |
| `POST`   | `/api/v1/vault/requests/:requestId/archive`                        |
| `POST`   | `/api/v1/vault/requests/:requestId/reissue-link`                   |
| `POST`   | `/api/v1/vault/requests/:requestId/restore`                        |
| `GET`    | `/api/v1/vault/requirement-profiles`                               |
| `POST`   | `/api/v1/vault/requirement-profiles`                               |
| `PATCH`  | `/api/v1/vault/requirement-profiles/:id`                           |
| `PUT`    | `/api/v1/vault/requirement-profiles/:id/structure`                 |
| `PATCH`  | `/api/v1/vault/requirement-profiles/order`                         |
| `GET`    | `/api/v1/vault/requirement-rules`                                  |
| `PUT`    | `/api/v1/vault/requirement-rules`                                  |
| `GET`    | `/api/v1/vault/requirements`                                       |
