Earlier pages said eleven, then thirteen. There are fourteen: Events and Courses were added and never written up, and Content is the newest.
The list below is generated from the same declaration the console renders and the API serves, so it cannot drift from the product. Read it live at GET /space-types.
Type
Name
A piece is a
Platform prefix
Default slug
DOCS
Documentation
page
/p/
docs
FORUM
Community
topic
/f/
community
BLOG
Blog
article
/b/
blog
ROADMAP
Roadmap
item
/r/
roadmap
CHANGELOG
Changelog
release
/c/
changelog
STATUS
Status page
monitor
/st/
status
LEGAL
Legal
document
/legal/
legal
FAQ
FAQ
question
/faq/
faq
CAREERS
Careers
role
/jobs/
jobs
CONTACT
Contact
message
/contact/
contact
EVENTS
Events
event
/e/
events
COURSES
Course
lesson
/co/
course
CUSTOM
Custom
page
/x/
custom
CONTENT
Content
entry
none
content
The platform prefix is how a space is addressed on forumulate.com. On your own domain, or under a path of it, the space answers at the root of that address and the prefix disappears — which is the point of a custom domain. Content has no prefix at all: it has no public pages (below).
What each one is for Documentation — guides and reference, in a nested tree. Pages in collections, with a sidebar, versions, locales and search.
Community — questions, answers and discussion. Categories, tags, solutions, votes, moderation.
Blog — announcements and longer writing. Reverse-chronological, with feeds.
Roadmap — what is planned, and what people want. Items in lanes, with voting (including anonymous voting, if you allow it).
Changelog — what shipped, newest first. Releases with version labels.
Status page — is it up? Monitors, uptime history, incidents and subscriptions. See Status monitors .
Legal — terms, privacy and the other documents every site needs. Addressed at the organization rather than under the space, because those documents belong to the company and not to one product surface.
FAQ — the questions you answer over and over, answered once. One page per question. See FAQ spaces .
Careers — open roles, and what it is like to work with you. Declared fields feed Google Jobs. See Careers spaces .
Contact — a way to reach you, and somewhere the messages land.
Custom — a space that starts with no opinion and takes the shape you give it. This is the only type that accepts a free-form shape at creation; see Creating a space .
Content — structured content for your own website: you define content types and their fields, write entries with drafts, review and scheduled publishing, and your site reads them through the delivery API with a key. It has no reader, so no address, and it is always private : creating one as PUBLIC, or changing one to PUBLIC, is refused with a 422. Nothing in it is ever listed in a sitemap, robots.txt, llms.txt, a feed, an embed, public search or a front page — those all read only spaces with a public reader.
Events What is happening and when — webinars, AMAs, meetups, office hours. A piece is an event , which is its own backing kind rather than a page or a topic.
Readers get a list, each event's own page, and a calendar they can subscribe to so the event appears in their own calendar app.
Call
What it does
GET /orgs/{orgId}/spaces/{spaceId}/events
List events.
GET /orgs/{orgId}/spaces/{spaceId}/events/manage
The authoring view, including unpublished events.
POST /orgs/{orgId}/spaces/{spaceId}/events/{id}/rsvp
Record an RSVP.
GET /public/orgs/{orgId}/spaces/{spaceId}/events/calendar.ics
The whole space as an iCalendar feed.
GET /public/orgs/{orgId}/spaces/{spaceId}/events/{handle}/calendar.ics
One event, for an "add to calendar" link.
seed does nothing for an events space — events are not pages, so there is no default collection to create.
Courses Teach something in order — modules of lessons a learner works through. A piece is a lesson , backed by a page, so everything you can do in a documentation page you can do in a lesson.
What makes it a course rather than a tree of pages: an ordered outline, quizzes with recorded attempts, lesson kinds (video, audio, PDF, assignment, live session, SCORM package and more) whose own requirement is what completes them, a learner's progress and a certificate somebody else can verify. Around that sit access and pacing rules, enrolment windows, cohorts and seat groups, selling the course on your own Stripe account, course mail and reports, a catalogue and learning paths, and LTI 1.3 for launching from an LMS.
Call
What it does
GET /orgs/{orgId}/spaces/{spaceId}/course/outline
The modules and their lessons, in order.
PUT /orgs/{orgId}/spaces/{spaceId}/course/enrolment
Enrol, or record the lesson the learner is on.
GET /public/orgs/{orgId}/spaces/{spaceId}/course/certificate/{verifyId}/pdf
A public, verifiable PDF of a certificate.
All of it — the learner rules, access and pacing, selling, the reader's looks and keys — is in Courses spaces .
Front pages Every type's front door is a composed document you can edit; until you do, it is generated from the type's own bands, so it looks as it always did. The two types without a guide of their own:
Courses — the intro band, then the outline band. A courses feed sorts by latest and filters by section; its cards show title and section.
Contact — the intro band, then the form band. A contact space has no list to feed from, so a spaceFeed pointed at one renders nothing.
Docs and Custom spaces have no generated front page under the guide preset — readers land on the first page — but the Landing preset generates intro, search and sections, and a stored front page gives any of them one. A docs feed sorts by latest and filters by section (a collection).
Picking a type, and changing your mind A space's type is chosen at creation and is not editable afterwards. What is editable is its shape — the index layout, the ordering, the navigation and who may create a piece. A named type picks from its own presets; see Creating a space .
If you genuinely chose the wrong type, create the right one and move the content across; there is no conversion.
Slot keys Nine of the fourteen types say a piece has named parts rather than one body: a roadmap item has a problem and a proposal, a release has what was added and what was fixed. Those names are its slot keys , and they are what an agent, the sandbox and the CLI write a piece one part at a time with.
They are declared, not invented, and there are three ways to read them:
GET /api/space-types/{type}/slots # by type, before a space exists
GET /api/space-types/slots # every type at once
GET /api/orgs/{orgId}/spaces/{spaceId}/shape # this space, renames folded inOn the shape response the keys are base.sections[].key — base is the type's declaration with this space's own additions and renames already applied — and jsonSchema beside it is the machine-readable form an agent can validate a body against before sending it.
Type
Slot keys
BLOG
standfirst, body
ROADMAP
problem, proposal, notes, success
CHANGELOG
summary, added, changed, fixed, removed, deprecated, security, downloads, upgrade-notes
FAQ
answer, short-answer, related
CAREERS
summary, responsibilities, requirements, nice-to-have, benefits, process
LEGAL
summary, definitions, terms, subprocessors, contact
CONTACT
intro, response-times, what-to-include, elsewhere
STATUS
impact, timeline, root-cause, resolution
EVENTS
details
DOCS, FORUM, COURSES, CUSTOM and CONTENT declare none: a piece there is one body, and sections comes back as {} with the whole piece under markdown.
Three doors take them:
POST /api/orgs/{orgId}/spaces/{spaceId}/items { "sections": { "problem": "…" } }
PUT /api/orgs/{orgId}/spaces/{spaceId}/items/{itemId}/sections/{key}
GET /api/orgs/{orgId}/spaces/{spaceId}/items/{itemId}The read always carries sections, and contentIn says whether to read it or markdown. On the LIST — GET …/items — slot text is left out until you ask for it with ?include=sections, because a page of whole pieces is a much bigger response.
A key the type does not declare is a 422 that lists the ones it does, so you never have to guess. conformance on a read says which declared slots are filled and which are still empty — that, rather than the absence of an error, is how an agent knows it finished.
A space may rename or add slots on top of its type (that is its shape ), so the shape endpoint is the authority for a particular space and the table above is the default each type starts from.
Several types, one address A site publishes several spaces on one address, each under its own path — documentation at /docs, a community at /community, a changelog at /changelog. The site's sitemap indexes each space inside it, so you submit one address to Search Console. See Publish on your own domain .
In the API Every operation below is also reachable from the other surfaces without a dedicated command. forumulate api <Operation> calls it from the CLI, the JavaScript SDK has a typed method for each one (the last column names it; the Python and Go clients are generated from the same spec), and an agent reaches the organization-scoped ones through the MCP call_api tool. Where a CLI command or MCP tool exists too, the last column names it. Operation names link to the API reference.
Course Access Operation
Request
What it does
Shortcuts
CourseAccess_get
GET /orgs/{orgId}/spaces/{spaceId}/course/authoring/access
Get the access in a space (course authoring)
client.courses.access.get()
CourseAccess_set
PUT /orgs/{orgId}/spaces/{spaceId}/course/authoring/access
Replace the access in a space (course authoring)
client.courses.access.set()
Operation
Request
What it does
Shortcuts
CourseCheckoutExtras_confirmPaypal
POST /orgs/{orgId}/spaces/{spaceId}/course/checkout/paypal/confirm
Confirm the paypal
client.courses.checkoutExtras.confirmPaypal()
CourseCheckoutExtras_upsell
GET /orgs/{orgId}/spaces/{spaceId}/course/upsell
Get the upsell in a space
client.courses.checkoutExtras.upsell()
CourseCheckoutExtras_acceptUpsell
POST /orgs/{orgId}/spaces/{spaceId}/course/upsell
Create the upsell in a space
client.courses.checkoutExtras.acceptUpsell()
CourseCheckoutExtras_redeem
POST /orgs/{orgId}/spaces/{spaceId}/course/gift/redeem
Create the redeem in a space (course gift)
client.courses.checkoutExtras.redeem()
CourseCheckoutExtras_cancel
POST /orgs/{orgId}/spaces/{spaceId}/course/purchase/cancel
Cancel the purchase
client.courses.checkoutExtras.cancel()
CourseCheckoutExtras_resume
POST /orgs/{orgId}/spaces/{spaceId}/course/purchase/resume
Resume the purchase
client.courses.checkoutExtras.resume()
CourseCheckoutExtras_invoices
GET /orgs/{orgId}/spaces/{spaceId}/course/purchase/invoices
List invoices in a space
client.courses.checkoutExtras.invoices()
CourseCheckoutExtras_bundleCheckout
POST /orgs/{orgId}/spaces/{spaceId}/course/bundles/{slug}/checkout
Create the checkout in a space (course bundles)
client.courses.checkoutExtras.bundleCheckout()
Course Cohort Learner Operation
Request
What it does
Shortcuts
CourseCohortLearner_joinWaitlist
POST /orgs/{orgId}/spaces/{spaceId}/course/waitlist
Create the waitlist in a space
client.courses.cohortLearner.joinWaitlist()
CourseCohortLearner_leaveWaitlist
DELETE /orgs/{orgId}/spaces/{spaceId}/course/waitlist
Delete the waitlist in a space
client.courses.cohortLearner.leaveWaitlist()
CourseCohortLearner_join
POST /orgs/{orgId}/spaces/{spaceId}/course/cohorts/{cohortId}/join
Join the cohort
client.courses.cohortLearner.join()
CourseCohortLearner_joinSeat
POST /orgs/{orgId}/spaces/{spaceId}/course/seats/join
Join the seat
client.courses.cohortLearner.joinSeat()
CourseCohortLearner_managed
GET /orgs/{orgId}/spaces/{spaceId}/course/seats/managed
Get the managed in a space
client.courses.cohortLearner.managed()
CourseCohortLearner_invite
POST /orgs/{orgId}/spaces/{spaceId}/course/seats/{groupId}/invite
Invite the seat
client.courses.cohortLearner.invite()
CourseCohortLearner_removeMember
DELETE /orgs/{orgId}/spaces/{spaceId}/course/seats/{groupId}/members/{memberId}
Delete the member (spaces course seats)
client.courses.cohortLearner.removeMember()
CourseCohortLearner_members
GET /orgs/{orgId}/spaces/{spaceId}/course/members
List members in a space (course)
client.courses.cohortLearner.members()
CourseCohortLearner_messages
GET /orgs/{orgId}/spaces/{spaceId}/course/cohort/messages
List messages in a space (cohort)
client.courses.cohortLearner.messages()
CourseCohortLearner_post
POST /orgs/{orgId}/spaces/{spaceId}/course/cohort/messages
Create a message in a space
client.courses.cohortLearner.post()
CourseCohortLearner_deleteMessage
DELETE /orgs/{orgId}/spaces/{spaceId}/course/cohort/messages/{messageId}
Delete the message (spaces course cohort)
client.courses.cohortLearner.deleteMessage()
Course Cohorts Operation
Request
What it does
Shortcuts
CourseCohorts_list
GET /orgs/{orgId}/spaces/{spaceId}/course/cohorts
List cohorts in a space
client.courses.cohorts.list()
CourseCohorts_create
POST /orgs/{orgId}/spaces/{spaceId}/course/cohorts
Create a cohort in a space
client.courses.cohorts.create()
CourseCohorts_update
PUT /orgs/{orgId}/spaces/{spaceId}/course/cohorts/{cohortId}
Replace the cohort
client.courses.cohorts.update()
CourseCohorts_remove
DELETE /orgs/{orgId}/spaces/{spaceId}/course/cohorts/{cohortId}
Delete the cohort
client.courses.cohorts.remove()
CourseCohorts_staffMessages
GET /orgs/{orgId}/spaces/{spaceId}/course/cohorts/{cohortId}/messages
List messages in a space (cohorts)
client.courses.cohorts.staffMessages()
CourseCohorts_move
PUT /orgs/{orgId}/spaces/{spaceId}/course/learners/{userId}/cohort
Replace the cohort in a space
client.courses.cohorts.move()
CourseCohorts_unenrol
DELETE /orgs/{orgId}/spaces/{spaceId}/course/learners/{userId}
Delete the learner
client.courses.cohorts.unenrol()
CourseCohorts_bulk
POST /orgs/{orgId}/spaces/{spaceId}/course/enrolments/bulk
Create the bulk in a space (course enrolments)
client.courses.cohorts.bulk()
CourseCohorts_waitlist
GET /orgs/{orgId}/spaces/{spaceId}/course/waitlist
Get the waitlist in a space
client.courses.cohorts.waitlist()
CourseCohorts_admit
POST /orgs/{orgId}/spaces/{spaceId}/course/waitlist/{entryId}/admit
Create the admit in a space
client.courses.cohorts.admit()
CourseCohorts_dropEntry
DELETE /orgs/{orgId}/spaces/{spaceId}/course/waitlist/{entryId}
Delete the waitlist
client.courses.cohorts.dropEntry()
CourseCohorts_groups
GET /orgs/{orgId}/spaces/{spaceId}/course/seat-groups
List seat groups in a space
client.courses.cohorts.groups()
CourseCohorts_createGroup
POST /orgs/{orgId}/spaces/{spaceId}/course/seat-groups
Create a seat group in a space
client.courses.cohorts.createGroup()
CourseCohorts_updateGroup
PUT /orgs/{orgId}/spaces/{spaceId}/course/seat-groups/{groupId}
Replace the seat group
client.courses.cohorts.updateGroup()
CourseCohorts_deleteGroup
DELETE /orgs/{orgId}/spaces/{spaceId}/course/seat-groups/{groupId}
Delete the seat group
client.courses.cohorts.deleteGroup()
CourseCohorts_report
GET /orgs/{orgId}/spaces/{spaceId}/course/seat-groups/{groupId}/report
Get the report in a space (course seat groups)
client.courses.cohorts.report()
Course Commerce Operation
Request
What it does
Shortcuts
CourseCommerce_terms
GET /orgs/{orgId}/spaces/{spaceId}/course/authoring/commerce
Get the commerce in a space
client.courses.commerce.terms()
CourseCommerce_setTerms
PUT /orgs/{orgId}/spaces/{spaceId}/course/authoring/commerce
Replace the commerce in a space
client.courses.commerce.setTerms()
CourseCommerce_coupons
GET /orgs/{orgId}/spaces/{spaceId}/course/coupons
List coupons in a space
client.courses.commerce.coupons()
CourseCommerce_createCoupon
POST /orgs/{orgId}/spaces/{spaceId}/course/coupons
Create a coupon in a space
client.courses.commerce.createCoupon()
CourseCommerce_patchCoupon
PUT /orgs/{orgId}/spaces/{spaceId}/course/coupons/{couponId}
Replace the coupon
client.courses.commerce.patchCoupon()
CourseCommerce_deleteCoupon
DELETE /orgs/{orgId}/spaces/{spaceId}/course/coupons/{couponId}
Delete the coupon
client.courses.commerce.deleteCoupon()
CourseCommerce_purchases
GET /orgs/{orgId}/spaces/{spaceId}/course/purchases
List purchases in a space
client.courses.commerce.purchases()
CourseCommerce_grant
PUT /orgs/{orgId}/spaces/{spaceId}/course/purchases/grant
Replace the grant in a space
client.courses.commerce.grant()
CourseCommerce_revoke
DELETE /orgs/{orgId}/spaces/{spaceId}/course/purchases/{purchaseId}
Delete the purchase
client.courses.commerce.revoke()
CourseCommerce_refund
POST /orgs/{orgId}/spaces/{spaceId}/course/purchases/{purchaseId}/refund
Create the refund in a space (course purchases)
client.courses.commerce.refund()
Operation
Request
What it does
Shortcuts
CourseCommunity_mine
GET /orgs/{orgId}/spaces/{spaceId}/course/reviews/mine
List mine reviews in a space
client.courses.community.mine()
CourseCommunity_review
PUT /orgs/{orgId}/spaces/{spaceId}/course/reviews/mine
List mine reviews in a space (replace)
client.courses.community.review()
CourseCommunity_unreview
DELETE /orgs/{orgId}/spaces/{spaceId}/course/reviews/mine
List mine reviews in a space (delete)
client.courses.community.unreview()
CourseCommunity_questions
GET /orgs/{orgId}/spaces/{spaceId}/course/questions
List questions in a space (course)
client.courses.community.questions()
CourseCommunity_ask
POST /orgs/{orgId}/spaces/{spaceId}/course/questions
Create a question in a space (course)
client.courses.community.ask()
CourseCommunity_leaderboard
GET /orgs/{orgId}/spaces/{spaceId}/course/leaderboard
Get the leaderboard in a space (course)
client.courses.community.leaderboard()
Operation
Request
What it does
Shortcuts
CourseCommunityAdmin_all
GET /orgs/{orgId}/spaces/{spaceId}/course/reviews/all
Get the all in a space (course reviews)
client.courses.communityAdmin.all()
CourseCommunityAdmin_moderate
PUT /orgs/{orgId}/spaces/{spaceId}/course/reviews/{reviewId}/moderate
Replace the moderate in a space
client.courses.communityAdmin.moderate()
CourseCommunityAdmin_inbox
GET /orgs/{orgId}/spaces/{spaceId}/course/questions/inbox
Get the inbox in a space
client.courses.communityAdmin.inbox()
CourseCommunityAdmin_answer
PUT /orgs/{orgId}/spaces/{spaceId}/course/questions/{questionId}
Replace the question
client.courses.communityAdmin.answer()
CourseCommunityAdmin_broadcasts
GET /orgs/{orgId}/spaces/{spaceId}/course/broadcasts
List broadcasts in a space (course)
client.courses.communityAdmin.broadcasts()
CourseCommunityAdmin_broadcast
POST /orgs/{orgId}/spaces/{spaceId}/course/broadcasts
Create a broadcast in a space (course)
client.courses.communityAdmin.broadcast()
CourseCommunityAdmin_unbroadcast
DELETE /orgs/{orgId}/spaces/{spaceId}/course/broadcasts/{broadcastId}
Delete the broadcast
client.courses.communityAdmin.unbroadcast()
CourseCommunityAdmin_sequences
GET /orgs/{orgId}/spaces/{spaceId}/course/sequences
List sequences in a space
client.courses.communityAdmin.sequences()
CourseCommunityAdmin_createSequence
POST /orgs/{orgId}/spaces/{spaceId}/course/sequences
Create a sequence in a space
client.courses.communityAdmin.createSequence()
CourseCommunityAdmin_updateSequence
PUT /orgs/{orgId}/spaces/{spaceId}/course/sequences/{sequenceId}
Replace the sequence
client.courses.communityAdmin.updateSequence()
CourseCommunityAdmin_deleteSequence
DELETE /orgs/{orgId}/spaces/{spaceId}/course/sequences/{sequenceId}
Delete the sequence
client.courses.communityAdmin.deleteSequence()
CourseCommunityAdmin_schedules
GET /orgs/{orgId}/spaces/{spaceId}/course/report-schedules
List report schedules in a space
client.courses.communityAdmin.schedules()
CourseCommunityAdmin_createSchedule
POST /orgs/{orgId}/spaces/{spaceId}/course/report-schedules
Create a report schedule in a space
client.courses.communityAdmin.createSchedule()
CourseCommunityAdmin_deleteSchedule
DELETE /orgs/{orgId}/spaces/{spaceId}/course/report-schedules/{scheduleId}
Delete the report schedule
client.courses.communityAdmin.deleteSchedule()
CourseCommunityAdmin_preview
GET /orgs/{orgId}/spaces/{spaceId}/course/report-preview
Get the report preview in a space
client.courses.communityAdmin.preview()
Course Feed Operation
Request
What it does
Shortcuts
CourseFeed_address
POST /orgs/{orgId}/spaces/{spaceId}/course/feed
Create the feed in a space
client.courses.feed.address()
Course Landing Variants Operation
Request
What it does
Shortcuts
CourseLandingVariants_list
GET /orgs/{orgId}/spaces/{spaceId}/course/landing-variants
List landing variants in a space
client.courses.landingVariants.list()
CourseLandingVariants_create
POST /orgs/{orgId}/spaces/{spaceId}/course/landing-variants
Create a landing variant in a space
client.courses.landingVariants.create()
CourseLandingVariants_reset
POST /orgs/{orgId}/spaces/{spaceId}/course/landing-variants/reset
Reset the landing variant
client.courses.landingVariants.reset()
CourseLandingVariants_update
PUT /orgs/{orgId}/spaces/{spaceId}/course/landing-variants/{variantId}
Replace the landing variant
client.courses.landingVariants.update()
CourseLandingVariants_remove
DELETE /orgs/{orgId}/spaces/{spaceId}/course/landing-variants/{variantId}
Delete the landing variant
client.courses.landingVariants.remove()
Course Learner Depth Operation
Request
What it does
Shortcuts
CourseLearnerDepth_notes
GET /orgs/{orgId}/spaces/{spaceId}/course/notes
List notes in a space (course)
client.courses.learnerDepth.notes()
CourseLearnerDepth_addNote
POST /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/notes
Create a note in a space (course lessons)
client.courses.learnerDepth.addNote()
CourseLearnerDepth_deleteNote
DELETE /orgs/{orgId}/spaces/{spaceId}/course/notes/{id}
Delete the note (spaces course)
client.courses.learnerDepth.deleteNote()
CourseLearnerDepth_heartbeat
POST /orgs/{orgId}/spaces/{spaceId}/course/heartbeat
Create the heartbeat in a space (course)
client.courses.learnerDepth.heartbeat()
CourseLearnerDepth_setLesson
PUT /orgs/{orgId}/spaces/{spaceId}/course/learners/{userId}/lessons/{slug}
Replace the lesson
client.courses.learnerDepth.setLesson()
CourseLearnerDepth_reset
DELETE /orgs/{orgId}/spaces/{spaceId}/course/learners/{userId}/progress
Delete the progress in a space
client.courses.learnerDepth.reset()
CourseLearnerDepth_issue
POST /orgs/{orgId}/spaces/{spaceId}/course/learners/{userId}/certificate
Create the certificate in a space
client.courses.learnerDepth.issue()
Operation
Request
What it does
Shortcuts
CourseLearnerExtras_positions
GET /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/media
Get the media in a space
client.courses.learnerExtras.positions()
CourseLearnerExtras_savePosition
PUT /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/media
Replace the media in a space
client.courses.learnerExtras.savePosition()
CourseLearnerExtras_stats
GET /orgs/{orgId}/spaces/{spaceId}/course/me/stats
List stats in a space (course me)
client.courses.learnerExtras.stats()
CourseLearnerExtras_mine
GET /orgs/{orgId}/spaces/{spaceId}/course/purchase
Get the purchase in a space
client.courses.learnerExtras.mine()
CourseLearnerExtras_checkout
POST /orgs/{orgId}/spaces/{spaceId}/course/checkout
Create the checkout in a space (course)
client.courses.learnerExtras.checkout()
CourseLearnerExtras_confirm
POST /orgs/{orgId}/spaces/{spaceId}/course/checkout/confirm
Confirm the checkout
client.courses.learnerExtras.confirm()
CourseLearnerExtras_refund
POST /orgs/{orgId}/spaces/{spaceId}/course/purchase/refund
Create the refund in a space (course purchase)
client.courses.learnerExtras.refund()
Course Lesson Kinds Operation
Request
What it does
Shortcuts
CourseLessonKinds_requirement
GET /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/requirement
Get the requirement in a space
client.courses.lessonKinds.requirement()
CourseLessonKinds_watch
POST /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/watch
Create the watch in a space (course lessons)
client.courses.lessonKinds.watch()
CourseLessonKinds_mine
GET /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/assignment
Get the assignment in a space
client.courses.lessonKinds.mine()
CourseLessonKinds_submit
POST /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/assignment
Create the assignment in a space
client.courses.lessonKinds.submit()
CourseLessonKinds_upload
POST /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/assignment-files
Create an assignment file in a space
client.courses.lessonKinds.upload()
CourseLessonKinds_quizFile
POST /orgs/{orgId}/spaces/{spaceId}/course/quizzes/{quizId}/files
Create a file in a space
client.courses.lessonKinds.quizFile()
CourseLessonKinds_queue
GET /orgs/{orgId}/spaces/{spaceId}/course/assignments
List assignments in a space
client.courses.lessonKinds.queue()
CourseLessonKinds_grade
PATCH /orgs/{orgId}/spaces/{spaceId}/course/assignments/{id}
Update the assignment
client.courses.lessonKinds.grade()
Course Offers Operation
Request
What it does
Shortcuts
CourseOffers_list
GET /orgs/{orgId}/spaces/{spaceId}/course/offers
List offers in a space
client.courses.offers.list()
CourseOffers_create
POST /orgs/{orgId}/spaces/{spaceId}/course/offers
Create an offer in a space
client.courses.offers.create()
CourseOffers_update
PUT /orgs/{orgId}/spaces/{spaceId}/course/offers/{offerId}
Replace the offer
client.courses.offers.update()
CourseOffers_remove
DELETE /orgs/{orgId}/spaces/{spaceId}/course/offers/{offerId}
Delete the offer
client.courses.offers.remove()
CourseOffers_bulk
POST /orgs/{orgId}/spaces/{spaceId}/course/coupons/bulk
Create the bulk in a space (course coupons)
client.courses.offers.bulk()
CourseOffers_earnings
GET /orgs/{orgId}/spaces/{spaceId}/course/earnings
List earnings in a space
client.courses.offers.earnings()
CourseOffers_instructors
PUT /orgs/{orgId}/spaces/{spaceId}/course/instructors
Replace instructors in a space
client.courses.offers.instructors()
CourseOffers_payout
POST /orgs/{orgId}/spaces/{spaceId}/course/payouts
Create a payout in a space
client.courses.offers.payout()
CourseOffers_rev
GET /orgs/{orgId}/spaces/{spaceId}/course/revenue
Get the revenue in a space
client.courses.offers.rev()
CourseOffers_csv
GET /orgs/{orgId}/spaces/{spaceId}/course/revenue/export.csv
File of export (spaces course revenue)
client.courses.offers.csv()
Course Package Files Operation
Request
What it does
Shortcuts
CoursePackageFiles_file[0]
GET /course-packages/{id}/{token}/{p0}
Get the course package
client.courses.packageFiles['file[0]']()
CoursePackageFiles_file[1]
GET /course-packages/{id}/{token}/{p0}/{p1}
Get the course package (for a p1)
client.courses.packageFiles['file[1]']()
CoursePackageFiles_file[2]
GET /course-packages/{id}/{token}/{p0}/{p1}/{p2}
Get the course package (for a p1 and a p2)
client.courses.packageFiles['file[2]']()
CoursePackageFiles_file[3]
GET /course-packages/{id}/{token}/{p0}/{p1}/{p2}/{p3}
Get the course package (for a p1 and a p2 and a p3)
client.courses.packageFiles['file[3]']()
CoursePackageFiles_file[4]
GET /course-packages/{id}/{token}/{p0}/{p1}/{p2}/{p3}/{p4}
Get the course package (for a p1 and a p2 and a p3 and a p4)
client.courses.packageFiles['file[4]']()
CoursePackageFiles_file[5]
GET /course-packages/{id}/{token}/{p0}/{p1}/{p2}/{p3}/{p4}/{p5}
Get the course package (for a p1 and a p2 and a p3 and a p4 and a p5)
client.courses.packageFiles['file[5]']()
CoursePackageFiles_file[6]
GET /course-packages/{id}/{token}/{p0}/{p1}/{p2}/{p3}/{p4}/{p5}/{p6}
Get the course package (for a p1 and a p2 and a p3 and a p4 and a p5 and a p6)
client.courses.packageFiles['file[6]']()
CoursePackageFiles_file[7]
GET /course-packages/{id}/{token}/{p0}/{p1}/{p2}/{p3}/{p4}/{p5}/{p6}/{p7}
Get the course package (for a p1 and a p2 and a p3 and a p4 and a p5 and a p6 and a p7)
client.courses.packageFiles['file[7]']()
CoursePackageFiles_file[8]
GET /course-packages/{id}/{token}/{p0}/{p1}/{p2}/{p3}/{p4}/{p5}/{p6}/{p7}/{p8}
Get the course package (for a p1 and a p2 and a p3 and a p4 and a p5 and a p6 and a p7 and a p8)
client.courses.packageFiles['file[8]']()
CoursePackageFiles_file[9]
GET /course-packages/{id}/{token}/{p0}/{p1}/{p2}/{p3}/{p4}/{p5}/{p6}/{p7}/{p8}/{p9}
Get the course package (for a p1 and a p2 and a p3 and a p4 and a p5 and a p6 and a p7 and a p8 and a p9)
client.courses.packageFiles['file[9]']()
CoursePackageFiles_statements
POST /course-xapi/{id}/{token}/statements
Create a statement
client.courses.packageFiles.statements()
CoursePackageFiles_putStatements
PUT /course-xapi/{id}/{token}/statements
Replace statements
client.courses.packageFiles.putStatements()
CoursePackageFiles_fetch
POST /course-xapi/{id}/{token}/fetch
Create the fetch
client.courses.packageFiles.fetch()
CoursePackageFiles_launchData
GET /course-xapi/{id}/{token}/activities/state
Get the state
client.courses.packageFiles.launchData()
CoursePackageFiles_saveState
PUT /course-xapi/{id}/{token}/activities/state
Replace the state
client.courses.packageFiles.saveState()
Course Packages Operation
Request
What it does
Shortcuts
CoursePackages_launch
GET /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/package
Get the package in a space (course lessons)
client.courses.packages.launch()
CoursePackages_upload
POST /orgs/{orgId}/spaces/{spaceId}/course/lessons/{slug}/package
Create the package in a space
client.courses.packages.upload()
CoursePackages_commit
POST /orgs/{orgId}/spaces/{spaceId}/course/packages/{packageId}/state
Create the state in a space (course packages)
client.courses.packages.commit()
Course Paths Operation
Request
What it does
Shortcuts
CoursePaths_list
GET /orgs/{orgId}/course-paths
List course paths in an organization
client.courses.paths.list()
CoursePaths_create
POST /orgs/{orgId}/course-paths
Create a course path in an organization
client.courses.paths.create()
CoursePaths_replace
PUT /orgs/{orgId}/course-paths/{pathId}
Replace the course path
client.courses.paths.replace()
CoursePaths_remove
DELETE /orgs/{orgId}/course-paths/{pathId}
Delete the course path
client.courses.paths.remove()
Course Public Operation
Request
What it does
Shortcuts
CoursePublic_outline
GET /public/orgs/{orgId}/spaces/{spaceId}/course/outline
Get the outline in a space (public reader)
client.courses.public.outline()
Course Quiz Review Operation
Request
What it does
Shortcuts
CourseQuizReview_queue
GET /orgs/{orgId}/spaces/{spaceId}/course/quiz-reviews
List quiz reviews in a space
client.courses.quizReview.queue()
CourseQuizReview_review
PATCH /orgs/{orgId}/spaces/{spaceId}/course/quiz-reviews/{attemptId}
Update the quiz review
client.courses.quizReview.review()
CourseQuizReview_analytics
GET /orgs/{orgId}/spaces/{spaceId}/course/quizzes/{quizId}/analytics
List analytics in a space (orgs course quizzes)
client.courses.quizReview.analytics()
CourseQuizReview_parse
POST /orgs/{orgId}/spaces/{spaceId}/course/authoring/quiz-import
Create the quiz import in a space
client.courses.quizReview.parse()
Course Scorm Export Operation
Request
What it does
Shortcuts
CourseScormExport_scorm
GET /orgs/{orgId}/spaces/{spaceId}/course/export/scorm
Get the scorm in a space
client.courses.scormExport.scorm()
Course Store Operation
Request
What it does
Shortcuts
CourseStore_bundles
GET /orgs/{orgId}/course-store/bundles
List bundles in an organization
client.courses.store.bundles()
CourseStore_createBundle
POST /orgs/{orgId}/course-store/bundles
Create a bundle in an organization
client.courses.store.createBundle()
CourseStore_updateBundle
PUT /orgs/{orgId}/course-store/bundles/{bundleId}
Replace the bundle
client.courses.store.updateBundle()
CourseStore_deleteBundle
DELETE /orgs/{orgId}/course-store/bundles/{bundleId}
Delete the bundle
client.courses.store.deleteBundle()
CourseStore_affiliates
GET /orgs/{orgId}/course-store/affiliates
List affiliates in an organization
client.courses.store.affiliates()
CourseStore_createAffiliate
POST /orgs/{orgId}/course-store/affiliates
Create an affiliate in an organization
client.courses.store.createAffiliate()
CourseStore_updateAffiliate
PUT /orgs/{orgId}/course-store/affiliates/{affiliateId}
Replace the affiliate
client.courses.store.updateAffiliate()
CourseStore_deleteAffiliate
DELETE /orgs/{orgId}/course-store/affiliates/{affiliateId}
Delete the affiliate
client.courses.store.deleteAffiliate()
CourseStore_affiliatePayout
POST /orgs/{orgId}/course-store/affiliates/{affiliateId}/payouts
Create a payout in an organization
client.courses.store.affiliatePayout()
Events Operation
Request
What it does
Shortcuts
Events_list
GET /orgs/{orgId}/spaces/{spaceId}/events
List events in a space
forumulate events list<br>client.events.list()
Events_create
POST /orgs/{orgId}/spaces/{spaceId}/events
Create an event in a space
forumulate events create<br>client.events.create()
Events_listAll
GET /orgs/{orgId}/spaces/{spaceId}/events/manage
Get the manage in a space
forumulate events manage<br>client.events.listAll()
Events_get
GET /orgs/{orgId}/spaces/{spaceId}/events/{handle}
Get the event
forumulate events get<br>client.events.get()
Events_update
PATCH /orgs/{orgId}/spaces/{spaceId}/events/{handle}
Update the event
forumulate events update<br>client.events.update()
Events_remove
DELETE /orgs/{orgId}/spaces/{spaceId}/events/{handle}
Delete the event
forumulate events delete<br>client.events.remove()
Events_duplicate
POST /orgs/{orgId}/spaces/{spaceId}/events/{handle}/duplicate
Duplicate the event
forumulate events duplicate<br>client.events.duplicate()
Events_myRsvp
GET /orgs/{orgId}/spaces/{spaceId}/events/{handle}/rsvp
Get the rsvp in a space
forumulate events rsvp<br>client.events.myRsvp()
Events_rsvp
PUT /orgs/{orgId}/spaces/{spaceId}/events/{handle}/rsvp
Replace the rsvp in a space
forumulate events rsvp set<br>client.events.rsvp()
Events_clearRsvp
DELETE /orgs/{orgId}/spaces/{spaceId}/events/{handle}/rsvp
Delete the rsvp in a space
forumulate events rsvp clear<br>client.events.clearRsvp()
Events Public Operation
Request
What it does
Shortcuts
EventsPublic_list
GET /public/orgs/{orgId}/spaces/{spaceId}/events
List events in a space (public reader)
client.events.public.list()
EventsPublic_feed
GET /public/orgs/{orgId}/spaces/{spaceId}/events/calendar.ics
File of calendar
client.events.public.feed()
EventsPublic_rss
GET /public/orgs/{orgId}/spaces/{spaceId}/events/rss.xml
RSS feed of the event
client.events.public.rss()
EventsPublic_atom
GET /public/orgs/{orgId}/spaces/{spaceId}/events/atom.xml
Atom feed of the event
client.events.public.atom()
EventsPublic_jsonFeed
GET /public/orgs/{orgId}/spaces/{spaceId}/events/feed.json
JSON feed of the event
client.events.public.jsonFeed()
EventsPublic_subscribe
POST /public/orgs/{orgId}/spaces/{spaceId}/events/subscribe
Subscribe the event
client.events.public.subscribe()
EventsPublic_search
GET /public/orgs/{orgId}/spaces/{spaceId}/events/search
Get the search in a space (public reader events)
client.events.public.search()
EventsPublic_get
GET /public/orgs/{orgId}/spaces/{spaceId}/events/{handle}
Get the event (public reader)
client.events.public.get()
EventsPublic_ics
GET /public/orgs/{orgId}/spaces/{spaceId}/events/{handle}/calendar.ics
File of calendar (for a named one)
client.events.public.ics()
Path Certificate Public Operation
Request
What it does
Shortcuts
PathCertificatePublic_verify
GET /public/orgs/{orgId}/course-paths/certificates/{verifyId}
Verify a learning-path certificate
client.tokens.publicHCertificate.verify()
PathCertificatePublic_pdf
GET /public/orgs/{orgId}/course-paths/certificates/{verifyId}/pdf
Get the PDF in an organization
client.tokens.publicHCertificate.pdf()
Progression Operation
Request
What it does
Shortcuts
Progression_state
GET /orgs/{orgId}/users/{userId}/progression/state
Get the state in an organization
client.users.progression.state()
Progression_signal
POST /orgs/{orgId}/users/{userId}/progression/signals
Create a signal in an organization
client.users.progression.signal()
Public Course Commerce Operation
Request
What it does
Shortcuts
PublicCourseCommerce_quote
GET /public/orgs/{orgId}/spaces/{spaceId}/course/commerce/quote
Get the quote in a space
client.courses.publicCommerce.quote()
Public Course Feed Operation
Request
What it does
Shortcuts
PublicCourseFeed_feed
GET /public/orgs/{orgId}/course-feeds/{token}
Get the course feed
client.courses.publicFeed.feed()
Public Course Landing Variants Operation
Request
What it does
Shortcuts
PublicCourseLandingVariants_list
GET /public/orgs/{orgId}/spaces/{spaceId}/course/landing-variants
List landing variants in a space (public reader)
client.courses.publicLandingVariants.list()
PublicCourseLandingVariants_view
POST /public/orgs/{orgId}/spaces/{spaceId}/course/landing-variants/{variantId}/view
Create the view in a space (course landing variants)
client.courses.publicLandingVariants.view()
PublicCourseLandingVariants_conversion
POST /public/orgs/{orgId}/spaces/{spaceId}/course/landing-variants/{variantId}/conversion
Create the conversion in a space
client.courses.publicLandingVariants.conversion()
Public Course Reviews Operation
Request
What it does
Shortcuts
PublicCourseReviews_reviews
GET /public/orgs/{orgId}/spaces/{spaceId}/course/reviews
List reviews in a space
client.courses.publicReviews.reviews()
Public Course Store Operation
Request
What it does
Shortcuts
PublicCourseStore_pricing
GET /public/orgs/{orgId}/spaces/{spaceId}/course/commerce/pricing
Get the pricing in a space
client.courses.publicStore.pricing()
PublicCourseStore_bundlesFor
GET /public/orgs/{orgId}/spaces/{spaceId}/course/commerce/bundles
List bundles in a space
client.courses.publicStore.bundlesFor()
PublicCourseStore_bundle
GET /public/orgs/{orgId}/course-bundles/{slug}
Get the course bundle
client.courses.publicStore.bundle()
PublicCourseStore_click
POST /public/orgs/{orgId}/course-affiliates/{code}/click
Create the click in an organization
client.courses.publicStore.click()
Wallet Operation
Request
What it does
Shortcuts
Wallet_summary
GET /orgs/{orgId}/users/{userId}/wallet
Get the wallet in an organization
client.users.wallet.summary()
Wallet_credit
POST /orgs/{orgId}/users/{userId}/wallet/credit
Create the credit in an organization
client.users.wallet.credit()
Wallet_debit
POST /orgs/{orgId}/users/{userId}/wallet/debit
Create the debit in an organization
client.users.wallet.debit()
Wallet_grantItem
POST /orgs/{orgId}/users/{userId}/wallet/items/grant
Create the grant in an organization
client.users.wallet.grantItem()
Wallet_consumeItem
POST /orgs/{orgId}/users/{userId}/wallet/items/consume
Create the consume in an organization
client.users.wallet.consumeItem()