---
search:
  tags:
    - Curricula
    - POST
seo:
  description: >-
    Creates one or more module slots in a curricula version. Pass… Reference for
    the POST /curricula/{id}/versions/{versionId}/items endpoint in the Fuxam
    API v4.
sidebar:
  label: Attach module slot(s) to a curricula version
  badge: POST
title: Attach module slot(s) to a curricula version
type: openapi-operation
---
Creates one or more module slots in a curricula version. Pass `moduleIds` (resolves each module's default version) or a single `courseModuleVersionId`. Optionally assign `curriculaVersionTermId`, `curriculaVersionPathwayId`, and `parentId` (another item in the same version). Returns a single item when one module is attached, or `{ items, count }` when multiple `moduleIds` are provided. Scoped to your integration's institution via Basic Auth credentials.

`POST /curricula/{id}/versions/{versionId}/items`

**Request body** (`application/json`, required)

- `moduleIds` (string[])
- `courseModuleVersionId` (string)
- `curriculaVersionTermId` (string)
- `curriculaVersionPathwayId` (string)
- `parentId` (string)
- `isCoreModule` (boolean)
- `isFinalModule` (boolean)

Request body example:

```json
{
  "moduleIds": [
    "mod_001"
  ],
  "curriculaVersionTermId": "cvt_001",
  "isCoreModule": true
}
```

**Responses**

- `201` — Item(s) created
- `400` — Bad Request
- `401` — Unauthorized
- `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, 201 · Single module slot created:

```json
{
  "data": {
    "id": "cvi_001",
    "curriculaVersionId": "cv_001",
    "courseModuleId": "mod_001",
    "courseModuleVersionId": "modv_001",
    "curriculaVersionTermId": "cvt_001",
    "curriculaVersionPathwayId": null,
    "parentId": null,
    "isCoreModule": true,
    "isFinalModule": false,
    "moduleGroupId": null,
    "updatedAt": null,
    "courseModule": {
      "id": "mod_001",
      "name": "Introduction to Economics",
      "code": "ECO101"
    },
    "courseModuleVersion": {
      "id": "modv_001",
      "name": "Introduction to Economics",
      "version": "1.0",
      "status": "ACTIVE"
    },
    "curriculaVersionTerm": {
      "id": "cvt_001",
      "name": "Semester 1",
      "position": 1
    },
    "curriculaVersionPathway": null,
    "parentItemId": null,
    "childCount": 0
  },
  "meta": {
    "requestId": "req_abc123",
    "timestamp": "2026-06-26T00:00:00.000Z",
    "version": "v4"
  }
}
```

Response example, 201 · Multiple module slots from moduleIds:

```json
{
  "data": {
    "items": [
      {
        "id": "cvi_001",
        "curriculaVersionId": "cv_001",
        "courseModuleId": "mod_001",
        "courseModuleVersionId": "modv_001",
        "curriculaVersionTermId": "cvt_001",
        "curriculaVersionPathwayId": null,
        "parentId": null,
        "isCoreModule": true,
        "isFinalModule": false,
        "moduleGroupId": null,
        "updatedAt": null,
        "courseModule": {
          "id": "mod_001",
          "name": "Introduction to Economics",
          "code": "ECO101"
        },
        "courseModuleVersion": {
          "id": "modv_001",
          "name": "Introduction to Economics",
          "version": "1.0",
          "status": "ACTIVE"
        },
        "curriculaVersionTerm": {
          "id": "cvt_001",
          "name": "Semester 1",
          "position": 1
        },
        "curriculaVersionPathway": null,
        "parentItemId": null,
        "childCount": 0
      },
      {
        "id": "cvi_001",
        "curriculaVersionId": "cv_001",
        "courseModuleId": "mod_001",
        "courseModuleVersionId": "modv_001",
        "curriculaVersionTermId": "cvt_001",
        "curriculaVersionPathwayId": null,
        "parentId": null,
        "isCoreModule": true,
        "isFinalModule": false,
        "moduleGroupId": null,
        "updatedAt": null,
        "courseModule": {
          "id": "mod_001",
          "name": "Introduction to Economics",
          "code": "ECO101"
        },
        "courseModuleVersion": {
          "id": "modv_001",
          "name": "Introduction to Economics",
          "version": "1.0",
          "status": "ACTIVE"
        },
        "curriculaVersionTerm": {
          "id": "cvt_001",
          "name": "Semester 1",
          "position": 1
        },
        "curriculaVersionPathway": null,
        "parentItemId": null,
        "childCount": 0
      }
    ],
    "count": 2
  },
  "meta": {
    "requestId": "req_abc123",
    "timestamp": "2026-06-26T00:00:00.000Z",
    "version": "v4"
  }
}
```
