Integration

iQualify integration

iQualify is a learning management system (run by Open Polytechnic) for creating courses, running them as offerings (classes), assessing learners and awarding badges. Through its Management API you can list courses and offerings, activate a course as an offering, enrol, transfer or remove learners, facilitators and markers, create and update users and their permissions, read learner progress, submissions, marks, pulses and Talk channel activity, set task and section dates, grant due date extensions, reset submissions, manage assessment groups, channels, course mappings and metadata, and award or revoke badges. Where the vendor offers a v1 and a v2 version of the same call, only v2 is exposed; the Course Content, Activities and User Groups APIs (24-hour user tokens) and the Event Hub history API are not included. Authentication is the organisation API access token an account owner enables under Account settings, API access, sent as a bearer token in the Authorization header.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in iQualify.Built from the 115 iQualify tools below, on the connection you add once.

What you can do with iQualify

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Assessed, 9 operations

  • list_assessed_quiz_submissionsList assessed quiz submissionsGETLists the assessed quiz submissions in an offering, with their score. Page with $top (default 50), $orderby and $filter.
  • list_assessed_task_submissionsList assessed task submissionsGETLists the assessed task submissions in an offering, with their score. Page with $top (default 50), $orderby and $filter.
  • list_course_assessed_tasksList course assessed tasksGETLists the published assessed tasks of a tasks-enabled course portfolio with their id, title, type, weighting, tags and relative open and due dates. Empty for a legacy course.
  • list_learner_task_due_datesList learner task due datesGETLists a learner's assessed tasks in an offering with their own due date, whether an extension was added and the history of extensions.
  • list_offering_assessed_tasksList offering assessed tasksGETLists the assessed tasks of an offering with their calculated open and due dates, type, weighting and tags.
  • list_unsubmitted_assessed_quizzesList unsubmitted assessed quizzesGETLists, for each assessed quiz of an offering, the learners who have not completed or submitted it yet.
  • list_unsubmitted_assessed_tasksList unsubmitted assessed tasksGETLists, for each assessed task of an offering, the learners who have not completed or submitted it yet.
  • update_task_dateUpdate task datePATCHSets fixed open and due dates on one assessed task of an offering, overriding its relative dates. Not possible while the offering uses relative dates.
  • update_task_datesUpdate task datesPATCHSets fixed open and due dates on several assessed tasks of an offering at once, overriding their relative dates. Not possible while the offering uses relative dates.

Offering, 8 operations

  • add_user_to_offeringsAdd user to offeringsPOSTAdds a user as a learner to one or more offerings, by offering id. Returns the offerings.
  • create_offeringCreate offeringPOSTActivates a course as a new offering (class). Give the course by rootContentId (latest published version, recommended) or contentId (that exact version), and a start date; an end date is required unless useRelativeDates is true.
  • find_offerings_by_metadataFind offerings by metadataGETFinds the offerings whose chosen metadata property (tags, level, category, topic or name, picked with field) exactly matches the given text, ignoring case. current, past and future restrict the search to those offerings.
  • get_offeringGet offeringGETReturns one offering by id: identifier (info), name, overview, dates, contentId, whether it uses relative dates, read-only and early close-off settings, offering settings and metadata (including rootContentId).
  • get_user_offeringGet user offeringGETReturns an offering a user is enrolled in, including the learner's own start and end dates when the offering uses learner relative dates.
  • list_offeringsList offeringsGETLists all offerings (classes activated from a course: current, past and future) with their id, name, dates, contentId, rootContentId and settings. Page through the results with $top, $orderby and $filter.
  • list_user_offeringsList user offeringsGETLists the offering ids a user is enrolled in, grouped by role (learner, facilitator, marker); learners, facilitators and markers filter the roles returned.
  • update_offeringUpdate offeringPATCHUpdates an offering; fields you leave out keep their value. A badge can be added to an offering that has none, but not changed afterwards.

Learner, 6 operations

  • add_assessment_group_learnerAdd assessment group learnerPOSTAdds a learner, by email, to an assessment group. Returns the learner.
  • add_channel_learnersAdd channel learnersPOSTAdds learners, by email, to a group channel.
  • list_assessment_group_learnersList assessment group learnersGETLists the learners of an assessment group.
  • list_channel_learnersList channel learnersGETLists the learners who have access to a group channel.
  • remove_assessment_group_learnerRemove assessment group learnerDELETERemoves a learner from an assessment group.
  • remove_channel_learnersRemove channel learnersDELETERemoves learners, by email, from a group channel, for example to move them to another group channel.

User, 6 operations

  • add_offering_usersAdd offering usersPOSTAdds users to an offering. An existing user needs only email; a new user also needs firstName and lastName and gets an account. Each user can be added as a learner, facilitator, main facilitator or marker.
  • create_userCreate userPOSTCreates a user account. firstName, lastName and email are required; the email is the unique user identifier. sendInvite (default true) emails an invitation to set a password; with false the password setup URL is returned instead.
  • get_userGet userGETReturns a user by email: names, person id, profile and first and last access times.
  • list_offering_usersList offering usersGETLists the users of an offering (learners, facilitators and markers) with their email, names, person id, profile and role flags; learners, facilitators and markers filter by role.
  • remove_offering_userRemove offering userDELETERemoves one user (learner, facilitator or marker) from an offering.
  • update_userUpdate userPATCHUpdates a user's first name, last name, email, person id, profile or tags. To change the email, pass the current one in the path and the new one in email.

Permission, 5 operations

  • list_course_accessList course accessGETLists the users who have builder (author) or reviewer access to a course portfolio, by rootContentId, with their name, email, profile and access type.
  • list_course_usersList course usersGETLists the users who have builder (author) or reviewer access to a course, by contentId, with their name, email and access type.
  • list_user_course_accessList user course accessGETLists the course portfolios (rootContentIds) a user can edit as author and review as reviewer.
  • update_user_course_accessUpdate user course accessPOSTGives a user builder (author) or reviewer access to one or more course portfolios, listed by rootContentId; set isBuilder or isReviewer to false to remove that access. Builder access needs the user to hold the builder permission already.
  • update_user_permissionsUpdate user permissionsPATCHGrants or removes a user's builder, manager, insights and user admin permissions.

Assessment, 4 operations

  • list_offering_assessmentsList offering assessmentsGETLists the assessments of an offering with their title, type, points, open and due dates, documents and quiz settings.
  • reset_learner_assessmentReset learner assessmentDELETEResets a learner's submitted assessment to a draft so they can edit and resubmit it; the content is kept.
  • update_learner_quiz_due_dateUpdate learner quiz due datePATCHExtends one learner's due date for an assessed quiz in an offering.
  • update_offering_assessmentUpdate offering assessmentPATCHUpdates an assessment of an offering: mark type, mark number, open date, due date or content. Returns the assessment.

Course mapping, 4 operations

  • delete_course_mappingDelete course mappingDELETERemoves a course mapping from an offering.
  • find_course_mapping_by_offeringFind course mapping by offeringGETFinds the course mapping assigned to an offering.
  • list_course_mappingsList course mappingsGETLists every course mapping of the environment (persistent course links), each external course id with the offering it points to.
  • set_course_mappingSet course mappingPUTAssigns a course mapping (an external course id used in persistent course links) to an offering. An offering holds one mapping and a mapping value is unique: assigning it here removes it from any other offering.

Non assessed, 4 operations

  • list_non_assessed_quiz_submissionsList non assessed quiz submissionsGETLists the non-assessed quiz submissions in an offering. Page with $top (default 50), $orderby and $filter.
  • list_non_assessed_task_submissionsList non assessed task submissionsGETLists the non-assessed task submissions in an offering. Page with $top (default 50), $orderby and $filter.
  • list_unsubmitted_non_assessed_quizzesList unsubmitted non assessed quizzesGETLists, for each non-assessed quiz of an offering, the learners who have not completed or submitted it yet.
  • list_unsubmitted_non_assessed_tasksList unsubmitted non assessed tasksGETLists, for each non-assessed task of an offering, the learners who have not completed or submitted it yet.

Assignment, 3 operations

  • get_learner_assessment_submissionGet learner assessment submissionGETReturns a learner's submission to one assessment in an offering, with its content and any mark.
  • list_assessment_marksList assessment marksGETLists every mark given to assessment submissions in an offering, with the assessment, the learner, the mark, the feedback and who marked it.
  • list_assessment_submissionsList assessment submissionsGETLists every assessment submission in an offering, with its mark when it has been marked.

Channel, 3 operations

  • create_offering_channelsCreate offering channelsPOSTAdds one or more Talk channels to an offering. Each channel is one type: general, broadcast only, private support or group discussion.
  • list_offering_channelsList offering channelsGETLists the Talk channels of an offering; the isBroadcastOnly, privateSupport and groupDiscussion flags tell their type (all false for a general channel).
  • update_offering_channelUpdate offering channelPATCHUpdates a Talk channel's title or type; a channel can have only one type enabled, and a group channel cannot be turned back.

Mark, 3 operations

  • add_coach_learnersAdd coach learnersPOSTAssigns learners, by email, to a marker (coach) in an offering. Returns the learners the marker now marks.
  • list_coach_learnersList coach learnersGETLists the learners a marker (coach) marks in an offering.
  • remove_coach_learnersRemove coach learnersDELETERemoves learners, by email, from a marker's (coach's) marking list in an offering. Returns the learners the marker still marks.

Progress, 3 operations

  • get_learner_offering_progressGet learner offering progressGETReturns a learner's completion percentage in one offering.
  • get_learner_progressGet learner progressGETReturns a learner's completion percentage in each of their offerings.
  • list_all_learner_progressList all learner progressGETLists the progress of every learner across all offerings. Page through the results with $top (at most 50), $orderby and $filter.

Response, 3 operations

  • list_open_response_attemptsList open response attemptsGETLists learners' attempts on open response activities in an offering, with the response text, uploaded files and any feedback.
  • list_pulse_responsesList pulse responsesGETLists learners' responses to every pulse in an offering, optionally filtered by pulse type and response time.
  • list_pulse_responses_by_pulseList pulse responses by pulseGETLists learners' responses to one pulse in an offering.

Section, 3 operations

  • list_offering_sectionsList offering sectionsGETLists the sections of an offering with their calculated open and close dates.
  • update_section_dateUpdate section datePATCHSets a fixed open date on one section of a tasks-enabled offering. Not possible while the offering uses relative dates.
  • update_section_datesUpdate section datesPATCHSets fixed open dates on several sections of a tasks-enabled offering at once. Not possible while the offering uses relative dates.

Badge, 2 operations

  • get_offering_badgeGet offering badgeGETReturns the badge of an offering, if it has one: title, description, criteria and expiry rules.
  • list_user_badgesList user badgesGETLists every badge awarded to a user, with title, description, expiry, public badge URL and award date.

Category, 2 operations

  • update_course_categoryUpdate course categoryPUTSets the category in a course's metadata. Returns the course.
  • update_offering_categoryUpdate offering categoryPUTSets the category in an offering's metadata. Returns the offering.

Course, 2 operations

  • get_courseGet courseGETReturns one published course by contentId: name, cover image, whether tasks are enabled, and its metadata (rootContentId, tags, category, topic, level, overview and task counts).
  • list_published_coursesList published coursesGETLists the published courses (the current published version of each course portfolio) with their contentId, name, creation date, cover image and metadata. Page through the results with $top, $orderby and $filter.

Group, 2 operations

  • create_assessment_groupCreate assessment groupPOSTCreates an assessment group in an offering. Returns its id, needed to add learners.
  • list_assessment_groupsList assessment groupsGETLists the assessment groups of an offering (groups whose members share one submission and mark on group open response assessments).

Level, 2 operations

  • update_course_levelUpdate course levelPUTSets the level in a course's metadata. Returns the course.
  • update_offering_levelUpdate offering levelPUTSets the level in an offering's metadata. Returns the offering.

Marked, 2 operations

  • reset_marked_submissionReset marked submissionDELETEResets a learner's marked assessed task submission, by submission id, so they can resubmit it.
  • reset_marked_taskReset marked taskDELETEResets a learner's marked assessed task or quiz attempt, by task id, so they can resubmit it.

Open response, 2 operations

  • list_learner_open_response_submissionsList learner open response submissionsGETLists a learner's submissions to open response assessments in an offering, with their content; marks are not included.
  • list_open_response_submissionsList open response submissionsGETLists the submissions to one open response assessment in an offering, with their content and any mark.

Submission, 2 operations

  • list_quiz_submissionsList quiz submissionsGETLists every quiz submission (assessed and non-assessed) in an offering. Page with $top (default 50), $orderby and $filter.
  • list_task_submissionsList task submissionsGETLists every task submission (assessed and non-assessed) in a tasks-enabled offering. Page with $top (default 50), $orderby and $filter.

Tag, 2 operations

  • update_course_tagsUpdate course tagsPUTReplaces the tags in a course's metadata. Returns the course.
  • update_offering_tagsUpdate offering tagsPUTReplaces the tags in an offering's metadata. Returns the offering.

Task, 2 operations

  • extend_task_due_dateExtend task due datePOSTGives a learner an extension on an assessed task: adds dueDateDaysExtension days to their current due date (on top of any earlier extension).
  • remove_task_extensionsRemove task extensionsDELETERemoves every extension a learner has on an assessed task, putting their due date back to the default.

Topic, 2 operations

  • update_course_topicUpdate course topicPUTSets the topic in a course's metadata. Returns the course.
  • update_offering_topicUpdate offering topicPUTSets the topic in an offering's metadata. Returns the offering.

Unmarked, 2 operations

  • reset_unmarked_submissionReset unmarked submissionDELETERe-opens a learner's submitted but unmarked assessed task submission, by submission id, as a draft.
  • reset_unmarked_taskReset unmarked taskDELETERe-opens a learner's submitted but unmarked assessed task, by task id, as a draft.

Activation, 1 operation

  • list_course_activationsList course activationsGETLists every offering (class) activated from a course, by contentId, with its offering id, name, dates and learner count.

Award, 1 operation

  • award_offering_badgeAward offering badgePOSTAwards an offering's badge to a user enrolled in it. The offering needs an enabled badge. Returns the badge id and its public URL.

Comment, 1 operation

  • list_channel_commentsList channel commentsGETLists the comments on posts of a Talk channel; postId gives the post each comment belongs to.

Current, 1 operation

  • list_current_offeringsList current offeringsGETLists the current offerings (end date in the future). Page through the results with $top, $orderby and $filter.

Date, 1 operation

  • get_course_datesGet course datesGETReturns the course length and the relative open dates of each section for the latest published version of a course portfolio.

Document, 1 operation

  • delete_assessment_documentDelete assessment documentDELETERemoves a document file from an assessment of an offering.

Draft, 1 operation

  • list_draft_coursesList draft coursesGETLists the draft courses of the environment with their contentId, name and metadata. Page through the results with $top, $orderby and $filter.

Externalcourse, 1 operation

  • find_course_mapping_by_external_idFind course mapping by external idGETFinds the course mapping for an external course id and the offering it is assigned to.

Future, 1 operation

  • list_future_offeringsList future offeringsGETLists the scheduled offerings (start date today or later). Page through the results with $top, $orderby and $filter.

Info, 1 operation

  • find_offerings_by_infoFind offerings by infoGETFinds the offerings whose info (the sub-header that tells apart offerings of the same course, such as Trimester 1) matches a text pattern of at least 3 characters.

Invite, 1 operation

  • resend_user_invitesResend user invitesPOSTResends the invitation email to several users, or with sendInvite false returns a password setup URL for each user instead.

Invite email, 1 operation

  • resend_user_inviteResend user invitePOSTResends the iQualify invitation email to a user so they can set up their account or a new password.

Learners progress, 1 operation

  • list_offering_learner_progressList offering learner progressGETLists every learner of an offering with their completion percentage through the course.

Openresponse, 1 operation

  • list_open_response_activitiesList open response activitiesGETLists the open response activities of an offering with their id, title and time.

Org, 1 operation

  • get_organisationGet organisationGETReturns the iQualify organisation (environment) the API token belongs to: its id and name.

Past, 1 operation

  • list_past_offeringsList past offeringsGETLists the past offerings (end date in the past). Page through the results with $top, $orderby and $filter.

Pending submission, 1 operation

  • list_learners_pending_submissionList learners pending submissionGETLists the assessments due in exactly the given number of days (default 3) in an offering, each with the learners who have not submitted yet.

Post, 1 operation

  • list_channel_postsList channel postsGETLists the posts of a Talk channel in an offering.

Pulse, 1 operation

  • list_pulse_idsList pulse idsGETLists the ids of the pulses (facilitator polls) learners have responded to in an offering.

Quizz, 1 operation

  • list_quiz_marksList quiz marksGETLists the marks of learners' attempts on assessed quizzes in an offering: quiz, learner, mark (a percentage of correct answers), number of attempts and last attempt time.

Reply, 1 operation

  • list_channel_repliesList channel repliesGETLists the replies to comments in a Talk channel; parentCommentId and postId give the comment and post replied to.

Revoke, 1 operation

  • revoke_offering_badgeRevoke offering badgeDELETERevokes the badge a user was awarded in an offering. Returns the badge id and URL.

Social note, 1 operation

  • list_social_notesList social notesGETLists the shared social notes posted in an offering, with the author, the page and paragraph and the note content.

Summary, 1 operation

  • list_offerings_summaryList offerings summaryGETLists a compact summary of every offering (id, name, info, dates, learner count). Page through the results with $top (at most 50), $orderby and $filter.

Suspend, 1 operation

  • suspend_userSuspend userPUTSuspends (suspended true) or restores (false) a user's access to the environment; restoring brings back their course and class access.

Transfer, 1 operation

  • transfer_userTransfer userPATCHMoves a learner and their progress from one offering to another; both offerings must share the same contentId. Social activity is not transferred.

Unit reaction, 1 operation

  • list_unit_reactionsList unit reactionsGETLists the thumbs up and thumbs down reactions to each unit (page) of an offering.

Use iQualify from Claude Code, Cursor or Codex

Connect iQualify in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its iQualify operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect iQualify

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect iQualify once

    Add your iQualify connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

iQualify integration FAQ

What can you do with the iQualify integration?

LiveContext exposes 115 operations on iQualify, covering assessed, offering, learner and user.

Popular integrations

Browse the whole catalog