---
title: "Lists the calling organization's modules and the presented key's permissions."
method: GET
path: "/api/v1/modules"
tags: ["Modules"]
---

# Lists the calling organization's modules and the presented key's permissions.

`GET /api/v1/modules`

## Request

- Base URL: `https://app.flexonthejob.com`
- URL: `https://app.flexonthejob.com/api/v1/modules`
- Auth: HTTP bearer

Requires a valid API key but no specific permission. Module gating on other
endpoints follows the `active` flag returned here.

## Response `200`

Modules with activation state, plus the key's permissions.

- ModulesResponse: Capability discovery for an API key: the org's modules and the key's permissions.
  - `modules` ModuleSummary[]: Every catalog module with its activation state for this organization.
    - `key` string: Stable module key (e.g. `scheduling`). Use this in code, never Name.
    - `name` string: Display name.
    - `active` boolean: True when the organization can use the module (included tier or activated).
  - `permissions` string[]: FlexPermissions names granted to the presented key.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests

---

[API](https://skmtc.dev/flexonthejob/apis/flex-api.md) · [All operations](https://skmtc.dev/flexonthejob/apis/flex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flexonthejob/apis/flex-api/revisions/19c8f4d27acf?raw)
