---
title: "Set Module Availability"
method: PUT
path: "/api/admin/modules/{connector_key}"
tags: ["admin"]
---

# Set Module Availability

`PUT /api/admin/modules/{connector_key}`

## 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/{connector_key}`
- Auth: none declared

Move one module to available, soon, or off.

Recorded twice over: ``set_by`` on the override row says who holds the
current state, and ``admin_audit_log`` says who moved it and from what
(ZEISO-302). The second is the one that answers "who took Trendyol down on
Tuesday", because the first is overwritten by whoever changes it next.

## Path parameters

- `connector_key` string, required

## Headers

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

## Request body

- ModuleAvailabilityIn
  - `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``.

## Response `200`

Successful Response

- ModuleOut: One connector, as the admin screen needs to see it. Both availabilities, not one: a reader has to be able to tell "this is what the catalog says" from "somebody overrode it", or the screen cannot show what resetting would do.
  - `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)
