GetCourse integration
GetCourse is a Russian online-school platform; its Tech API reads and changes an existing school: users and their profiles, custom fields, groups, balances, achievement points, diplomas, purchases, trainings and schedules; orders (status, positions, comments, custom fields, tags); offers; the Inbox and HelpDesk conversations (read history, send messages, notes, move, close); lesson answers; calls; mailings and their statistics; webinars and their chat moderation; and webhook subscriptions. It creates no users or orders and has no user search: a user is named by id, email or phone, and order ids come from list_user_orders or list_order_tags. Bulk user and order exports and imports are GetCourse's separate Import/Export API, not included (it authenticates with the school key alone, and its imports send base64-encoded JSON parameters in a form body). Several tools act on real people: they send messages through email, SMS or messengers, publish in webinar chats, or change balances, group membership and access. Every answer carries status (false means GetCourse refused the call), except the webhook subscription list and unsubscribe tools, which answer success. Authentication is a Bearer token made of the integrator's developer key and the school's API key joined by an underscore, on the school's own host.
Say what should happen.
The workflow builds itself.
What you can do with GetCourse
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.
Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
User, 8 operations
get_userGet userGETAgents: ask firstReturns a user's profile by userId, email or phone: name, email, phone, country, city, birthday, gender, status, manager, partner and messenger bot links. Personal data. data may also be a list of profiles (the vendor documents both).get_user_by_chat_idGet user by chat idGETAgents: ask firstFinds the school user linked to a messenger chat (messengerType tg, vk or max plus chatId) and returns their profile. Personal data.get_user_by_telegram_chat_idGet user by telegram chat idGETAgents: ask firstFinds the school user linked to a Telegram chatId and returns their profile. Personal data.get_user_custom_fieldsGet user custom fieldsGETAgents: ask firstReturns every custom field the account defines for users with this user's values, keyed by custom field id (name, value, type, units). Personal data.list_personal_managersList personal managersGETAgents: ask firstLists every user with manager rights in the school, with profile fields (name, email, phone). Personal data.set_user_personal_managerSet user personal managerPOSTAgents: ask firstAssigns a personal manager (managerId, from list_personal_managers) to a user.update_userUpdate userPOSTAgents: ask firstChanges a user's profile fields (name, gender, country, city, birthday, phone, note); fields left out keep their value.update_user_custom_fieldsUpdate user custom fieldsPOSTAgents: ask firstSets custom field values on a user: customFields maps a custom field id to its new value; fields not named keep their value. Returns the user's custom fields.
Order, 6 operations
get_orderGet orderGETAgents: ask firstReturns one order (dealId): buyer user_id, cost, currency, status, paid flags and amounts, manager, partner, payment link, positions and tags.get_order_custom_fieldsGet order custom fieldsGETAgents: ask firstReturns the custom fields of an order (dealId) with their values: name, value, type and units for each, passed through as GetCourse sends them (a list, or an object keyed by custom field id).list_order_tagsList order tagsGETAgents: ask firstLists orders with their tags (dealId and tags). Page with limit and offset.list_user_ordersList user ordersGETAgents: ask firstLists a user's orders: cost, currency, status, paid flags and amounts, manager, payment link and positions.update_orderUpdate orderPOSTAgents: ask firstChanges an order (dealId): status, manager or tags; fields left out keep their value. Cancelling an order cancels the purchases linked to it, so the buyer loses that access.update_order_custom_fieldsUpdate order custom fieldsPOSTAgents: ask firstSets custom field values on an order (dealId): customFields maps a custom field id to its new value; fields not named keep their value.
User group, 5 operations
add_user_to_groupsAdd user to groupsPOSTAgents: ask firstAdds a user to groups (group ids from list_groups), keeping their other groups. Group membership is what the school may base access, processes and mailings on.list_groupsList groupsGETAgents: ask firstLists every user group of the school (id and name), the ids the group tools take.list_user_groupsList user groupsGETAgents: ask firstLists the groups a user belongs to, with the date each was joined.remove_user_from_groupsRemove user from groupsPOSTAgents: ask firstRemoves a user from the given groups (ids from list_groups), keeping their other groups. Group membership is what the school may base access, processes and mailings on.set_user_groupsSet user groupsPOSTAgents: ask firstReplaces a user's whole group membership with the groups given: every group not listed is removed. Use add_user_to_groups or remove_user_from_groups to change only some.
Call, 4 operations
list_callsList callsGETAgents: ask firstLists the account's calls, newest first, filtered by creation interval or manager: direction, status, contact, recordings and the call's phone legs. Page with limit (max 1000) and offset.list_order_callsList order callsGETAgents: ask firstLists every call linked to an order (dealId), with direction, status, contact, recordings and phone legs.set_call_descriptionSet call descriptionPOSTAgents: ask firstWrites the Description field of a call (callId). Overwrites: a second call replaces the text rather than appending.set_call_transcriptionSet call transcriptionPOSTAgents: ask firstWrites the Transcription field of a call (callId). Overwrites: a second call replaces the text rather than appending.
Dialog, 3 operations
change_dialog_departmentChange dialog departmentPOSTAgents: ask firstMoves an Inbox dialog (dialogId) to another department (newDepartmentId from list_departments).close_dialogClose dialogPOSTAgents: ask firstCloses an Inbox dialog (dialogId) once the conversation with the client is over.list_user_dialogsList user dialogsGETAgents: ask firstLists a user's Inbox dialogs with their messages (dialog_id is what the dialog tools take). limit up to 100 (vendor default 50), offset.
Helpdesk ticket, 3 operations
change_helpdesk_departmentChange helpdesk departmentPOSTAgents: ask firstMoves a HelpDesk ticket (ticketId) to another department (newDepartmentId from list_departments).close_helpdesk_ticketClose helpdesk ticketPOSTAgents: ask firstCloses a HelpDesk ticket (ticketId) with a closing reason (closedReason 1 to 5) and an optional comment.list_user_helpdesk_ticketsList user helpdesk ticketsGETAgents: ask firstLists a user's HelpDesk tickets with their messages (dialog_id is the ticketId the HelpDesk tools take). limit up to 100 (vendor default 50), offset.
Lesson answer, 3 operations
list_lesson_answersList lesson answersGETAgents: ask firstLists the answers students left on a lesson (lessonId): text, status, reviewer and review, training, comments, additional fields and test results. Personal data.list_user_lesson_answersList user lesson answersGETAgents: ask firstLists a user's answers and comments in lessons: text, status, review, training, comments, additional fields and test results.set_lesson_answer_statusSet lesson answer statusPOSTAgents: ask firstSets the status of a lesson answer (lessonAnswerId): new, accepted or declined for an assignment, new, accepted or viewed for a comment. Accepting or declining affects the student's progress.
Offer, 3 operations
get_offerGet offerGETAgents: ask firstReturns one offer (offerId): title, code, price, discount, final price, currency, status, products with their training and stream, VAT and tags.list_offersList offersGETAgents: ask firstLists the school's offers: title, code, price, discount, final price, currency, status, products, VAT and tags. Page with limit and offset.list_offer_tagsList offer tagsGETAgents: ask firstLists offers with their tags (offerId and tags). Page with limit and offset.
Webhook subscription, 3 operations
list_webhook_subscriptionsList webhook subscriptionsGETAgents: ask firstLists every webhook subscription of the developer key across all its schools: school system domain (account), uri, event_object_id and event_id. School API keys are never returned.set_webhook_subscriptionSet webhook subscriptionPOSTAgents: ask firstSubscribes (subscribe 1) or unsubscribes (subscribe 0) a uri for one GetCourse event, chosen by event_object_id and event_id. The vendor documents no signing secret, so deliveries cannot be verified.unsubscribe_webhooksUnsubscribe webhooksPOSTAgents: ask firstUnsubscribes webhooks: send the hooks from list_webhook_subscriptions with subscribe set to 0 on the ones to stop; items left at 1 are unchanged. Returns what was unsubscribed and what was not found.
Dialog message, 2 operations
list_dialog_messagesList dialog messagesGETAgents: ask firstReturns an Inbox dialog's messages (dialogId), newest first: author, type, department, channels, text and attached files. limit up to 1000 (vendor default 100). Personal data.send_dialog_messageSend dialog messagePOSTAgents: ask firstSends a message in an Inbox dialog on behalf of a staff member (userId) to the student, through the channels in transport (site, email, SMS, Telegram...). Opens a dialog when given recipientId.
Diploma, 2 operations
issue_user_diplomaIssue user diplomaPOSTAgents: ask firstIssues a diploma from a template (templateId) to a user; sendNotify decides whether the user is notified. Returns the diploma id.list_user_diplomasList user diplomasGETAgents: ask firstLists the diplomas issued to a user: number, template, training, issue date, image and title.
Helpdesk message, 2 operations
list_helpdesk_messagesList helpdesk messagesGETAgents: ask firstReturns a HelpDesk ticket's messages (ticketId), newest first: author, type, department, channels, text and attached files. limit up to 1000 (vendor default 100). Personal data.send_helpdesk_messageSend helpdesk messagePOSTAgents: ask firstSends a message in a HelpDesk ticket on behalf of a staff member (userId) to the client, through the channels in transport (site, email, SMS...). Opens a ticket when given recipientId.
Mailing, 2 operations
get_mailing_contentGet mailing contentGETAgents: ask firstReturns one mailing's content by id: subject, HTML or text body, and attached files (a JSON string).list_mailingsList mailingsGETAgents: ask firstLists the school's mailings newest first: title, type, channel (transport), category and parent; showInfo=true adds sending settings. Filter by title, category, type, channel or ids[]; limit max 1000.
Order comment, 2 operations
add_order_commentAdd order commentPOSTAgents: ask firstAdds a comment to an order (dealId) on behalf of the user given in userId.list_order_commentsList order commentsGETAgents: ask firstLists every comment of an order (dealId) as contact-activity records.
Order position, 2 operations
add_order_positionsAdd order positionsPOSTAgents: ask firstAdds positions (offerId, price, quantity) to an existing order (dealId), which changes what the order costs.remove_order_positionsRemove order positionsPOSTAgents: ask firstRemoves positions (positionIds) from an order (dealId), which changes what the order costs. Position ids are in get_order's positions.
Purchase, 2 operations
list_user_purchasesList user purchasesGETAgents: ask firstLists a user's purchases (access to products): product, period, start and finish, actual flag, amount, paid flag and state; filter by productId.update_purchaseUpdate purchasePOSTAgents: ask firstChanges a purchase (user_product_id, the id in list_user_purchases): responsible teacher, period type and start or finish date, which changes the user's access period.
Survey answer, 2 operations
list_survey_answersList survey answersGETAgents: ask firstReturns the answers to one survey (surveyId): the questions keyed by id, and each answer with respondent name, email, date and answers keyed by question id. Personal data.list_user_survey_answersList user survey answersGETAgents: ask firstLists a user's answers to the school's surveys (questionnaires).
Training, 2 operations
list_trainingsList trainingsGETAgents: ask firstLists every training (course) of the school: id, title, description, status, lesson count and creation date.list_user_trainingsList user trainingsGETAgents: ask firstLists the trainings (courses) a user has: id, title, description, status, lesson count and creation date.
User balance, 2 operations
add_user_balanceAdd user balancePOSTAgents: ask firstTops up a user's balance of the given type (virtual or points) by value, with a comment; returns the user's balances. This changes a balance the user holds in the school.get_user_balanceGet user balanceGETAgents: ask firstReturns a user's balances (value, currency, type), filtered by type: normal, virtual (vendor default) or points.
Webinar, 2 operations
get_webinarsGet webinarsPOSTAgents: ask firstReturns the webinars with the given ids: name, status, type, scenario, access type, chat settings and title or teaser. A read, sent as POST.list_webinarsList webinarsGETAgents: ask firstLists every webinar of the school: name, status, type, scenario, access type, chat settings and title or teaser.
Webinar comment, 2 operations
moderate_webinar_commentModerate webinar commentPOSTAgents: ask firstModerates a webinar chat message (commentId): delete removes it for good; premoderation_accept, premoderation_reject and premoderation_reject_all decide messages awaiting premoderation.post_webinar_commentPost webinar commentPOSTAgents: ask firstPosts a message in a webinar chat as a moderator (moderatorId), visible to the viewers; isPrivateReply with replyToUserId and replyToUserType sends it privately to one viewer instead.
Cancel reason, 1 operation
list_cancel_reasonsList cancel reasonsGETAgents: ask firstLists the order cancellation reasons (id and name), the cancel_reason_id that update_order takes.
Department, 1 operation
list_departmentsList departmentsGETAgents: ask firstLists the school's departments (id and title), the ids that change_dialog_department and change_helpdesk_department take.
Dialog note, 1 operation
add_dialog_noteAdd dialog notePOSTAgents: ask firstAdds an internal note to an Inbox dialog (dialogId, the dialog_id of the Inbox webhook events).
Helpdesk note, 1 operation
add_helpdesk_noteAdd helpdesk notePOSTAgents: ask firstAdds an internal note (not sent to the client) to a HelpDesk ticket (ticketId) on behalf of a staff member (userId).
Lesson answer comment, 1 operation
add_lesson_answer_commentAdd lesson answer commentPOSTAgents: ask firstAdds a comment to a student's lesson answer (lessonAnswerId) on behalf of userId; the student sees it in the lesson.
Mailing stat, 1 operation
list_mailing_statsList mailing statsGETAgents: ask firstReturns mailing statistics keyed by mailing id: state, recipients, sent, viewed, clicked, answered, errors, unsubscribed and queue counters. Filter by category, type, channel or ids[].
Scale points, 1 operation
change_user_scale_pointsChange user scale pointsPOSTAgents: ask firstAwards (positive value) or deducts (negative value) achievement scale points for a user (userId, scaleId); returns the points history entry.
Scale result, 1 operation
list_scale_resultsList scale resultsGETAgents: ask firstLists every user's accumulated points on every achievement scale of the account (scale_id, user_id, value). Page with limit (max 1000) and offset.
Schedule, 1 operation
get_user_scheduleGet user scheduleGETAgents: ask firstReturns a user's schedule: lessons and events with training, title, type, state, start time, image and teacher.
User comment, 1 operation
add_user_commentAdd user commentPOSTAgents: ask firstAdds a comment to a user's card (userId) on behalf of another user (authorId).
User goal, 1 operation
list_user_goalsList user goalsGETAgents: ask firstLists a user's goal records: name, value, type and units.
Webinar user, 1 operation
moderate_webinar_userModerate webinar userPOSTAgents: ask firstIsolates (bans) a viewer in a webinar chat (action isolation) or lifts the ban (isolation_remove).
Use GetCourse from Claude Code, Cursor or Codex
Connect GetCourse in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its GetCourse operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect GetCourse
- Create your workspace
Sign up free. Nothing to install.
- Connect GetCourse once
Add your GetCourse connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- 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.
GetCourse integration FAQ
What can you do with the GetCourse integration?
LiveContext exposes 74 operations on GetCourse, covering user, order, user group and call.
