Zum Inhalt springen
Docs
Deutsch
Esc
navigateopen⌘Jpreview
Auf dieser Seite

Fuxam API v4

Fuxam API v4

Industry-standard public REST API with cursor pagination, RFC 7807 errors with machine-readable codes, sparse fieldsets, and idempotent creates.

Migration from v3

Area v3 v4
Base path /api/v3 /api/v4
Courses addressed by code in path addressed by id; use GET /courses?code=
Lists page / pageSize cursor / limit with pagination.next_cursor
Content block lists { contentBlocks: [...] } { data: [...] }
Creates no idempotency Idempotency-Key header required on POST
Errors RFC 7807 RFC 7807 + stable code field (e.g. validation_failed)
Auth Basic Auth clientId:clientSecret unchanged

v3 remains available until the published Sunset date (see response headers). Bug-fixes only on v3 after v4 GA.

Authentication

All endpoints require Basic Auth using integration credentials:

Authorization: Basic <base64-encoded-clientId:clientSecret>

Interactive documentation (Try it)

Use the same origin as the app you are testing (so cookies and CORS match the deployment you mean).

  1. Scalar (full reference) — open /api/v4/docs on your environment (for example https://fuxam.app/api/v4/docs or https://fuxam.appapi/v4/docs). The spec is loaded from /api/v4/openapi. Under Servers, select the base URL that points at that same environment (for local runs use https://fuxam.appapi/v4). Open AuthenticationBasic Auth: set username to your integration client ID and password to your client secret (from Organization → API integrations in the dashboard).

  2. Docs hub (by tag) — browse /en/docs or /de/docs for the same operations with the embedded playground; set the server URL and Basic Auth the same way.

Response Format

Success (single resource)

{
  "data": { ... },
  "meta": { "requestId": "req_...", "timestamp": "...", "version": "v4" }
}

Success (list)

{
  "data": [ ... ],
  "pagination": { "next_cursor": "...", "has_more": true, "limit": 10 },
  "meta": { "requestId": "req_...", "timestamp": "...", "version": "v4" }
}

Error (RFC 7807)

{
  "type": "error",
  "code": "resource_not_found",
  "title": "Not Found",
  "status": 404,
  "detail": "Course not found",
  "instance": "req_..."
}

HTTP status codes

Status When
400 Malformed JSON body, missing Idempotency-Key, invalid cursor encoding, or delete blocked by foreign-key relations
401 Missing or invalid Basic Auth credentials
404 Resource not found (or not accessible in your institution)
409 Conflict — duplicate unique field, idempotency key reused with a different request body
422 Request validation failed — invalid or out-of-range query/body fields. Response includes an errors array with field and message per issue
429 Rate limit exceeded

422 vs 400: Use 422 for semantic validation (Zod schema failures, e.g. invalid limit, missing required fields, date format without timezone offset). Use 400 for transport-level issues (unparseable JSON, bad cursor token).

Query conventions:

  • limit must be an integer between 1 and 100 (default 10). Out-of-range or non-numeric values return 422.
  • Boolean filters (e.g. includeInactive, showArchived) must be the string "true" or "false".
  • date-time request fields must include a timezone offset (Z or ±HH:MM).
Version 4.0.0
Base URLhttps://fuxam.app/api/v4

Users

Core profile, membership, lifecycle, and institution demographics

Users/Roles & access

Institution roles, scoped role grants, primary role, and access packages

Users/Data fields

Custom data field values and collection requests

Users/Invites

Pending invites and resend

Users/Contact details

Emails, phones, and addresses

Room Management

Rooms, locations, amenities, and utilization statistics.

Campus Management/Organization terms

Institution-wide academic terms (semesters). Used by curriculum version term mappings and cohort scheduling. Distinct from curriculum version terms under /curricula/.../versions/.../terms.

Users/User groups

User groups and group memberships

Campus Management/Modules

Course modules and their versions (create, read, update, archive). List responses include summary fields; use GET by ID for full detail.

Campus Management/Module groups

Groups of module versions. Optional moduleIds on create/update attach modules by resolving each module’s default version.

Campus Management/Curricula

Curricula and versions: curriculum CRUD, version management, study terms, module-to-term mappings, and elective pathways. Optional moduleIds on create/update attach modules to the default version.

Campus Management/Study programs

Study programs (Bachelor, Master, etc.) including versions, cohorts, cohort members, connected curricula, and responsible users.

Campus Management/Continuing education

Continuing education programs (type=CONTINUING_EDUCATION) — same capabilities as study programs: CRUD, versions, cohorts, curriculum attachment, and cohort members.

Courses

Course resources and completion certificates

Appointments

Appointments and scheduling. Course IDs: list/create bodies use layer IDs (layerId from GET /courses), not course entity id. Use course entity id only in /courses/{id}/appointments. Create: appointments are recorded under an institution admin/moderator as creator (not the integration itself). Online/hybrid: isOnline and isHybrid may be adjusted server-side from rooms, address, and onlineAddress. Not supported via API: recurring series creation, attendance, appointment-type listing.

Courses/Content blocks

Content blocks, conditions, and progress tracking

Courses/Workbenches

Workbench resources

Courses/User progress

User progress across course content

War diese Seite hilfreich?