---
title: "List Modules"
method: GET
path: "/api/admin/modules"
tags: ["admin"]
---

# List Modules

`GET /api/admin/modules`

## Request

- Base URL: `https://api.heymetra.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.heymetra.com/api/admin/modules`
- Auth: none declared

Every module HeyMetra ships, with what the catalog says and what is in force.

## Headers

- `authorization` string, nullable
- `x-workspace-id` string, nullable

## Response `200`

Successful Response

- ModuleOut[]
  - `key` string, required
  - `name` string, required
  - `category` string, required
  - `kind` string, required
  - `catalog_availability` string, required
  - `availability` 'available' | 'soon' | 'disabled', required: What a superadmin may say about one module (= connector), overriding the catalog's own ``availability``. Three values, and the third is the one this enum exists for. ``available`` and ``soon`` mirror ``core.catalog.connectors.Availability`` so an override can put a connector back exactly where the catalog would have had it; ``disabled`` has no catalog equivalent because a connector nobody may see is not a state source code should have to carry — it is an operational decision, taken at 2am when a provider's API breaks, and it must not wait for a deploy. ``disabled`` means gone, not hidden: absent from the public catalog, from the dashboard, from the MCP tool listing, and refused on call. Rows already in the database are untouched — see ``core.catalog.availability``.
  - `overridden` boolean, required
  - `live_connections` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/heymetra/apis/heymetra-api.md) · [All operations](https://skmtc.dev/heymetra/apis/heymetra-api/llms.txt) · [OpenAPI document](https://skmtc.dev/heymetra/apis/heymetra-api/revisions/488ce9683884?raw)
