---
search:
  tags:
    - Modules
    - GET
seo:
  description: >-
    Returns the exact catalog Submodule connections for one… Reference for the
    GET /modules/{id}/versions/{versionId}/submodules endpoint in the Fuxam API
    v4.
sidebar:
  label: List Submodules for a Module version
  badge: GET
title: List Submodules for a Module version
type: openapi-operation
---
Returns the exact catalog Submodule connections for one parent Module version. Ordinary Modules return an empty list. Requires Module Hierarchy to be enabled; otherwise the API returns 409 Conflict. `id` must own `versionId`. Curriculum term-specific rows are cascade output and are not listed here. Scoped to your integration's institution via Basic Auth credentials.

`GET /modules/{id}/versions/{versionId}/submodules`

**Responses**

- `200` — Cursor-paginated Submodule connections
- `401` — Unauthorized
- `404` — Not Found
- `409` — Conflict — duplicate email or membership code (body includes \`existingUserId\` when known), a time-tracking session that is already running (\`activeSession\`), a time-tracking interval that overlaps an existing log (\`conflictingLog\`), idempotency key reused with a different body (\`idempotency\_key\_reused\`), or concurrent request with the same key still in progress (\`idempotency\_key\_in\_progress\`)
- `422` — Unprocessable Entity — validation or business rule error
- `429` — Too Many Requests — 1000 requests per minute per institution. Includes \`X-RateLimit-Limit\`, \`X-RateLimit-Remaining\`, \`X-RateLimit-Reset\` (ISO-8601), and \`Retry-After\` (seconds).
- `500` — Internal Server Error

Response example, 200:

```json
{
  "data": [
    {
      "connectionId": "cmc_parent_child_a",
      "parentModuleId": "cm_qa_api_parent",
      "parentModuleVersionId": "cmv_qa_api_parent_1",
      "childModuleId": "cm_qa_api_child_a",
      "childModuleVersionId": "cmv_qa_api_child_a_1",
      "childModuleName": "QA API Child A",
      "childModuleCode": "QA-CHILD-A",
      "childVersion": "1.0",
      "ectsContributionMode": "CONTRIBUTE_TO_PARENT",
      "isRequiredForPass": true,
      "createdAt": "2026-08-23T10:00:00.000Z",
      "updatedAt": "2026-08-23T10:00:00.000Z"
    }
  ],
  "pagination": {
    "next_cursor": null,
    "has_more": false,
    "limit": 10
  },
  "meta": {
    "requestId": "req_abc123",
    "timestamp": "2026-06-26T00:00:00.000Z",
    "version": "v4"
  }
}
```
