Zum Inhalt springen

Developer & API

SwissMentor exposes a single GraphQL endpoint that covers every operation the web client performs. Any integration — CRM sync, course portals, payroll exports — uses the same endpoint with the same schema.

  • Courses — create Course records and publish them through CourseListing (Kursausschreibung)
  • Persons — create, update, import, addresses
  • Enrollment — course registrations, participants, public sign-up without authentication
  • All public IDs are UID, a GUID string. Internal numeric IDs are never exposed through the API.
  • Queries and mutations follow CRUD naming: person / persons (list) / createPerson / updatePerson / deletePerson.
  • Mutations return a result wrapper with status, message, id, and the created/updated entity — not the entity directly.
  • Parent-child structure: most objects are subordinated to a parentID which drives ACL and object hierarchy.
  • Most mutations require authentication; a small curated set (publicEnrollToCourse, login, systemInfo) is intentionally public.
Use caseEndpointAuth
Anonymous course catalogue / detail pagepublicListingPlatform / publicCourseListings / publicCourseNone
Anonymous course sign-up from websitepublicEnrollToCourseNone (signupToken for OTP)
Anonymous Beratung / KontaktformularcreatePublicLeadNone (rate-limited + honeypot)
Public CMS-Block contentpublicCmsBlocksByParent(parentID)None
Authenticated user registers for a courseenrollToCourse / enrollCourseJWT
Staff creates a full course registrationcreateCourseRegistrationJWT + ACL
Staff books a participant into a coursecreateCourseParticipantJWT + ACL
Staff creates a new person recordcreatePersonJWT + ACL

See Public API for the complete list of anonymous endpoints, rate-limit ceilings and anti-spam safeguards. End-to-end examples for enrollment live under Enrollment.