Saltar al contenido
Esc
↑↓navegar↵abrir⌘Jvista previa

List modules

Returns a cursor-paginated catalog of Modules and Submodules. Omit kind to keep the unfiltered legacy list and pagination. kind=module returns isSubmodule=false. kind=submodule returns reusable catalog Submodules (isSubmodule=true) and requires Module Hierarchy; otherwise the API returns 409 Conflict. This is not the parent-version connection list — use GET /modules/{id}/versions/{versionId}/submodules for attached connections. Each item includes the latest version summary. Scoped to your integration’s institution via Basic Auth credentials.

GET/modules
Authorization
AuthorizationBasic auth · headerrequired

Basic Auth with clientId as username and clientSecret as password

Query parameters
cursorstring
limitinteger
default: 10
searchstring
showArchivedboolean
kindstring

Optional catalog filter. Omit to preserve the unfiltered list. Invalid values return 422.

Allowed:modulesubmodule
Responses
200

List of modules

dataModule[]required
Show properties
Array of Module
idstringrequired
namestringrequired
institutionIdstringrequired
codestring | null
isArchivedboolean | null
nameTranslationsobject | null
isSubmoduleboolean

Catalog classification. false is a Module; true is a reusable catalog Submodule.

versionsModuleVersion[]

Latest version only (at most one item). Summary fields; no nested exams or files.

Show properties
Array of ModuleVersion
idstringrequired
versionstringrequired
namestringrequired
descriptionstring | nullrequired

May be an empty string when not set.

iconstring | nullrequired
iconTypestring | nullrequired
bannerstring | nullrequired
createdAtstring<date-time>required
updatedAtstring<date-time>required
requiredAttendancePercentageintegerrequired
ectsPointsnumberrequired

ECTS credit points. Halves only (0, 0.5, 1, 1.5, …). Breaking change: previously integer-only.

min 0
courseModuleIdstringrequired
statusstringrequired
Allowed:DRAFTACTIVEARCHIVED
timePlanIdstring | nullrequired
isDefaultbooleanrequired
earlyAssessmentEnabledbooleanrequired
isCurrentlyElectablebooleanrequired
capacityinteger | nullrequired
colorinteger | nullrequired
courseChatFileAttachmentsDefaultbooleanrequired
courseChatReadOnlyDefaultbooleanrequired
courseFeatureDefaultsobject | nullrequired
moduleNamestring | nullrequired
attemptRulesobject | nullrequired
paginationCursorPaginationrequired
Show properties
next_cursorstring | nullrequired
has_morebooleanrequired
limitintegerrequired
metaResponseMetarequired
Show properties
requestIdstringrequired
timestampstring<date-time>required
versionstringrequired
Allowed:v4
watermarkstring<date-time>

Present on GET /users?updatedSince= pages. Taken at the first page minus a 60s overlap. Bound into pagination.next_cursor. Use it as the next updatedSince after deduping by user id. Delivery is inclusive >= and at-least-once.

401

Unauthorized

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
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)

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
422

Unprocessable Entity — validation or business rule error

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
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).

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
500

Internal Server Error

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
Try it
Server
Authorization
Parameters
Request
curl -X GET 'https://fuxam.app/api/v4/modules' \
  -H 'Authorization: Basic YOUR_CREDENTIALS' \
  -H 'Accept: application/json'
Response
{
  "data": [
    {
      "id": "cmqevazrw05p34pi9wv9w3mks",
      "name": "Business Administration",
      "institutionId": "inst_123",
      "code": "BA-101",
      "isArchived": false,
      "nameTranslations": null,
      "isSubmodule": false,
      "versions": [
        {
          "id": "cmqevazu005pb4pi9zp2zthd1",
          "version": "2.0.0",
          "name": "Business Administration Basics",
          "description": "",
          "icon": null,
          "iconType": "emoji",
          "banner": null,
          "createdAt": "2026-06-15T07:04:18.408Z",
          "updatedAt": "2026-06-15T07:04:18.408Z",
          "requiredAttendancePercentage": 80,
          "ectsPoints": 5,
          "courseModuleId": "cmqevazrw05p34pi9wv9w3mks",
          "status": "ACTIVE",
          "timePlanId": "cmqevazr905p14pi9st41ex1w",
          "isDefault": false,
          "earlyAssessmentEnabled": false,
          "isCurrentlyElectable": true,
          "capacity": null,
          "color": null,
          "courseChatFileAttachmentsDefault": true,
          "courseChatReadOnlyDefault": false,
          "courseFeatureDefaults": null,
          "moduleName": null,
          "attemptRules": null
        }
      ]
    }
  ],
  "pagination": {
    "next_cursor": null,
    "has_more": false,
    "limit": 10
  },
  "meta": {
    "requestId": "req_abc123",
    "timestamp": "2026-06-26T00:00:00.000Z",
    "version": "v4"
  }
}

¿Te ha resultado útil esta página?