# Fermion Documentation ## Docs - [Affiliate Marketing Over API](https://docs.fermion.app/api-guide/affiliate-marketing-over-api.md): Complete guide to implementing affiliate marketing programmatically using Fermion APIs - [Downloadable Products over API](https://docs.fermion.app/api-guide/downloadable-products-over-api.md): Learn how to manage downloadable digital products over APIs - [eBooks over API](https://docs.fermion.app/api-guide/ebooks-over-api.md): Learn how to manage eBooks digital product over APIs - [Fermion API Documentation](https://docs.fermion.app/api-guide/introduction.md): Complete guide to integrating with Fermion API for your education platform - [Using User API Endpoints](https://docs.fermion.app/api-guide/using-user-endpoints.md): Guide to Fermion User API endpoints usage and things you should know - [Create Custom Affiliate Link ](https://docs.fermion.app/api-reference/affiliate-marketing/create-custom-affiliate-link.md): Create a custom affiliate link for a specific digital product with commission percentage. - [Get affiliate link stats ](https://docs.fermion.app/api-reference/affiliate-marketing/get-affiliate-link-stats.md): Get stats like clicks, sales, amount of sale revenue generated, etc. from an affiliate link - [Get all courses progress of a given user ](https://docs.fermion.app/api-reference/analytics/get-all-courses-progress-of-a-given-user.md): Get all courses progress of a given user. Use this to get their progress and completion data. - [Get individual user course progress ](https://docs.fermion.app/api-reference/analytics/get-individual-user-course-progress.md): Get individual user course progress. Use this to get their progress and completion data. - [Get sales data with filtering ](https://docs.fermion.app/api-reference/analytics/get-sales-data-with-filtering.md): Get sales data with revenue breakdown, filtered by month/week. This is a public API that requires a fermion API key. - [Get user bundle progress for all bundles ](https://docs.fermion.app/api-reference/analytics/get-user-bundle-progress-for-all-bundles.md): Get user bundle progress for all bundles. Use this to get their progress and completion data. - [Get user bundle progress for specific bundle ](https://docs.fermion.app/api-reference/analytics/get-user-bundle-progress-for-specific-bundle.md): Get user bundle progress. Use this to get their progress and completion data. - [Get blog information ](https://docs.fermion.app/api-reference/blog/get-blog-information.md): Get details of a single blog with this API endpoint - [Get published blogs ](https://docs.fermion.app/api-reference/blog/get-published-blogs.md): Get details of all published blogs with this API - [Create course ](https://docs.fermion.app/api-reference/course/create-course.md): Create a new course (recorded or cohort-based) for your school - [Get assignment submissions ](https://docs.fermion.app/api-reference/course/get-assignment-submissions.md): Get all submissions for an assignment. Returns user email, submission timestamps, file URLs, and text input values. - [Get course ID from course slug ](https://docs.fermion.app/api-reference/course/get-course-id-from-course-slug.md): Get ID of a course from its slug - [Get course metadata by slug ](https://docs.fermion.app/api-reference/course/get-course-metadata-by-slug.md): Get detailed metadata of a specific course using its slug - [Get data for a given course item ](https://docs.fermion.app/api-reference/course/get-data-for-a-given-course-item.md): Get all the data for a given course item. Note that this is a sensitive action and will return data for draft/unpublished course items as well. - [Get localized course price ](https://docs.fermion.app/api-reference/course/get-localized-course-price.md): Get price of a single course depending on the country of user requesting it - [Get published courses ](https://docs.fermion.app/api-reference/course/get-published-courses.md): Get details of all published courses with this API - [Get user course item result ](https://docs.fermion.app/api-reference/course/get-user-course-item-result.md): Get result of a course item for a given user - [List course assignments ](https://docs.fermion.app/api-reference/course/list-course-assignments.md): Get a list of all assignments inside a course product. Returns assignment ID and title for each. - [List course items ](https://docs.fermion.app/api-reference/course/list-course-items.md): Get published course items for an individual course - [Submit user course item ](https://docs.fermion.app/api-reference/course/submit-user-course-item.md): Submit a course item for a given user - [Get DSA code execution result [batch] ](https://docs.fermion.app/api-reference/dsa/get-dsa-code-execution-result-[batch].md): Get result of multiple DSA code execution attempts at once - [Get DSA code execution result [single] ](https://docs.fermion.app/api-reference/dsa/get-dsa-code-execution-result-[single].md): Get result of a single DSA code execution attempt - [Request DSA code execution [batch] ](https://docs.fermion.app/api-reference/dsa/request-dsa-code-execution-[batch].md): Request multiple DSA code executions at once. Please note that if you are running SQLite, you must pass `additionalFilesAsZip` as a ZIP file that must contain `db.sqlite` file (exact name) when unzipped - [Request DSA code execution [single] ](https://docs.fermion.app/api-reference/dsa/request-dsa-code-execution-[single].md): Request a single DSA code execution. Please note that if you are running SQLite, you must pass `additionalFilesAsZip` as a ZIP file that must contain `db.sqlite` file (exact name) when unzipped. - [Get all forms ](https://docs.fermion.app/api-reference/forms/get-all-forms.md): Get a list of all published forms with their name and ID - [Get form submissions ](https://docs.fermion.app/api-reference/forms/get-form-submissions.md): Get list of submissions for a specific form - [Add XP to user ](https://docs.fermion.app/api-reference/gamification/add-xp-to-user.md): Increment the XP of a given user by the given amount. - [Get leaderboard ](https://docs.fermion.app/api-reference/gamification/get-leaderboard.md): Get leaderboard of the top ranking users in your school - [Get user XP ](https://docs.fermion.app/api-reference/gamification/get-user-xp.md): Get XP of a user - [Remove XP from user ](https://docs.fermion.app/api-reference/gamification/remove-xp-from-user.md): Decrement the XP of a given user by the given amount. - [Create new interactive coding lab ](https://docs.fermion.app/api-reference/lab/create-new-interactive-coding-lab.md): Creates a new interactive coding lab with API. You can use this endpoint instead of creating it from GUI in fermion dashboard - [Delete interactive coding lab ](https://docs.fermion.app/api-reference/lab/delete-interactive-coding-lab.md): Deletes an existing interactive coding lab. - [Get interactive lab details [bulk] ](https://docs.fermion.app/api-reference/lab/get-interactive-lab-details-[bulk].md): Get details of multiple interactive labs from their IDs - [Get interactive lab details [single] ](https://docs.fermion.app/api-reference/lab/get-interactive-lab-details-[single].md): Get details of a single interactive lab from its ID - [Get lab code submission zip ](https://docs.fermion.app/api-reference/lab/get-lab-code-submission-zip.md): Get a downloadable zip of a user code submission for an interactive lab - [Get Lab result (interactive lab) ](https://docs.fermion.app/api-reference/lab/get-lab-result-interactive-lab.md): Get result of a single user for a given interactive lab - [Get Lab result (I/O lab) ](https://docs.fermion.app/api-reference/lab/get-lab-result-io-lab.md): Get result of a single user for a given I/O lab - [List all interactive labs ](https://docs.fermion.app/api-reference/lab/list-all-interactive-labs.md): Get a list of all interactive labs from the school's private library - [Update interactive coding lab ](https://docs.fermion.app/api-reference/lab/update-interactive-coding-lab.md): Updates an existing interactive coding lab with API. You can use this endpoint instead of updating it from GUI in fermion dashboard - [Create live session ](https://docs.fermion.app/api-reference/live/create-live-session.md): Create a new live event session that you can use to go live - [Delete live event session ](https://docs.fermion.app/api-reference/live/delete-live-event-session.md): Delete a live event session. This operation cannot be undone. - [End live event streaming ](https://docs.fermion.app/api-reference/live/end-live-event-streaming.md): Call this to end live event streaming and finalize the video. After you call this, the only possible playback mode with livestreaming would be HLS playback - [Get all live events ](https://docs.fermion.app/api-reference/live/get-all-live-events.md): Get details of all live events in your school - [Get live event session caption ](https://docs.fermion.app/api-reference/live/get-live-event-session-caption.md): Get url to download captions for a live event session - [Get live event session processed mp4 ](https://docs.fermion.app/api-reference/live/get-live-event-session-processed-mp4.md): Get url to download processed mp4 for a live event session - [Get live event session stats ](https://docs.fermion.app/api-reference/live/get-live-event-session-stats.md): Get stream and viewer stats for a live event session - [Modify live session user state ](https://docs.fermion.app/api-reference/live/modify-live-session-user-state.md): Add or remove people from webrtc meeting stage. This will make the user a participant or instructor in a given live stream. Use this API to make certain user(s) instructors before the stream starts. - [Start live event streaming ](https://docs.fermion.app/api-reference/live/start-live-event-streaming.md): Call this to begin live event streaming. After you call this, your instructors can join the meeting area - [Update live event session ](https://docs.fermion.app/api-reference/live/update-live-event-session.md): Update an existing live event session details like start time, duration, event name, etc. - [Health check ](https://docs.fermion.app/api-reference/misc/health-check.md): Health check for our internal system - [Request password enabled website access ](https://docs.fermion.app/api-reference/misc/request-password-enabled-website-access.md): Returns a signed token that can be used to access the website. This will only work if you have set a website password in Settings > Security - [Test endpoint ](https://docs.fermion.app/api-reference/misc/test-endpoint.md): Test endpoint to check your fermion API key - [Create custom pricing plan for a product ](https://docs.fermion.app/api-reference/product/create-custom-pricing-plan-for-a-product.md): Create a new pricing plan (one-time payment or partial payment) for a digital product using the product slug. The plan will be created in draft status. - [Create digital product coupon ](https://docs.fermion.app/api-reference/product/create-digital-product-coupon.md): Create a new coupon for a fermion digital product. - [Create downloadable product ](https://docs.fermion.app/api-reference/product/create-downloadable-product.md): Create a new downloadable digital product for your school - [Create ebook product ](https://docs.fermion.app/api-reference/product/create-ebook-product.md): Create a new ebook digital product for your school - [Create payment link ](https://docs.fermion.app/api-reference/product/create-payment-link.md): Create a new payment link for your school - [Delete digital product coupon ](https://docs.fermion.app/api-reference/product/delete-digital-product-coupon.md): Delete (mark as deleted) a coupon for a fermion digital product. - [Enroll user into digital product ](https://docs.fermion.app/api-reference/product/enroll-user-into-digital-product.md): Add a user enrollment into any digital product on your website - [Export contest CSV report ](https://docs.fermion.app/api-reference/product/export-contest-csv-report.md): Request generation of a CSV report for contest attempts - [Get all digital products (including unlisted/draft) ](https://docs.fermion.app/api-reference/product/get-all-digital-products-including-unlisteddraft.md): Get details of all digital products with this API. This is meant to be used internally with a fermion API key only. - [Get contest CSV report export data ](https://docs.fermion.app/api-reference/product/get-contest-csv-report-export-data.md): Get generated contest CSV reports with download links - [Get enrolled digital products ](https://docs.fermion.app/api-reference/product/get-enrolled-digital-products.md): Get details of all enrolled digital products for a given user - [Get localized digital product price ](https://docs.fermion.app/api-reference/product/get-localized-digital-product-price.md): Get price of a single digital product depending on the country of user requesting it - [Get presigned URL for downloadable product upload ](https://docs.fermion.app/api-reference/product/get-presigned-url-for-downloadable-product-upload.md): Generate a presigned URL to upload files for a downloadable product - [Get presigned URL for ebook upload ](https://docs.fermion.app/api-reference/product/get-presigned-url-for-ebook-upload.md): Generate a presigned URL to upload ebook PDF file to S3 - [Get product enrolled students ](https://docs.fermion.app/api-reference/product/get-product-enrolled-students.md): Get a paginated list of students enrolled in a digital product - [Get published digital products ](https://docs.fermion.app/api-reference/product/get-published-digital-products.md): Get details of all published digital products with this API - [Process uploaded downloadable product ](https://docs.fermion.app/api-reference/product/process-uploaded-downloadable-product.md): Mark an uploaded file as processed. Call this after uploading the file to the presigned URL. - [Process uploaded ebook ](https://docs.fermion.app/api-reference/product/process-uploaded-ebook.md): Process and encrypt an uploaded ebook PDF file. Call this after uploading the file to the presigned URL. - [Update digital product coupon ](https://docs.fermion.app/api-reference/product/update-digital-product-coupon.md): Update an existing coupon for a fermion digital product. - [Update downloadable product metadata ](https://docs.fermion.app/api-reference/product/update-downloadable-product-metadata.md): Update metadata and settings for a downloadable product - [Update ebook metadata ](https://docs.fermion.app/api-reference/product/update-ebook-metadata.md): Update metadata and settings for an ebook product - [Get course quiz submissions ](https://docs.fermion.app/api-reference/quiz/get-course-quiz-submissions.md): Get all quiz submissions for a course product, grouped by quiz. Returns question-wise breakdown with scores. - [Get quiz details ](https://docs.fermion.app/api-reference/quiz/get-quiz-details.md): Get details of a quiz from its ID - [List all quizzes ](https://docs.fermion.app/api-reference/quiz/list-all-quizzes.md): Get a list of all quizzes from the school's private library - [Create a new playground snippet ](https://docs.fermion.app/api-reference/sandbox/create-a-new-playground-snippet.md): Create a new snippet to use as sandbox - [Start playground session ](https://docs.fermion.app/api-reference/sandbox/start-playground-session.md): Start a new playground session for a playground snippet - [Create instructor account ](https://docs.fermion.app/api-reference/user/create-instructor-account.md): Create a new instructor account for your school. This function is idempotent - calling it multiple times with the same email will not create duplicate accounts. If the instructor already exists, they will be added to your school if not already associated. - [Create new user ](https://docs.fermion.app/api-reference/user/create-new-user.md): Create a new user in the system using the unique userId from your database. Note that this function is idempotent, therefore, calling it multiple times with the same userId will not do anything. - [Delete user ](https://docs.fermion.app/api-reference/user/delete-user.md): Delete a user by their Fermion user ID or email address. At least one of fermionUserId or userEmail must be provided. - [Get all instructors ](https://docs.fermion.app/api-reference/user/get-all-instructors.md): Get details of all instructors in your school - [Get instructor IAM permissions ](https://docs.fermion.app/api-reference/user/get-instructor-iam-permissions.md): Get the current IAM permissions of an instructor - [Get instructor permission presets ](https://docs.fermion.app/api-reference/user/get-instructor-permission-presets.md): Get available permission presets that can be applied to instructors - [Get login link for user ](https://docs.fermion.app/api-reference/user/get-login-link-for-user.md): Creates a login link for user for them to login directly into fermion managed LMS. Useful when you have your own system - [Get presigned URLs to upload user profile picture ](https://docs.fermion.app/api-reference/user/get-presigned-urls-to-upload-user-profile-picture.md): Get URL to upload a user's profile photo. You have to make a PUT request on the "presignedUrl" to upload the picture, then call the "update-user-profile-data" api endpoint to set the user's profile picture url to the "regularUrl" returned by this resolver. - [Get user basic profile data ](https://docs.fermion.app/api-reference/user/get-user-basic-profile-data.md): Get basic user data like name, profile photo url, username, etc. using this resolver. - [Get user detailed analytics data ](https://docs.fermion.app/api-reference/user/get-user-detailed-analytics-data.md): Get detailed user data like user activities, xp, enrollments, etc. using this resolver. - [Get user ID ](https://docs.fermion.app/api-reference/user/get-user-id.md): Get the internal user ID for a user by looking them up via email or username. At least one of email or username must be provided. - [Remove fermion instructor from school ](https://docs.fermion.app/api-reference/user/remove-fermion-instructor-from-school.md): Revoke an instructor's access to your school - [Update instructor IAM permissions ](https://docs.fermion.app/api-reference/user/update-instructor-iam-permissions.md): Update an instructor IAM permissions using presets - [Update user profile data ](https://docs.fermion.app/api-reference/user/update-user-profile-data.md): Update user data like name, profile photo url, username, etc. using this resolver. Useful for using built-in services like coding labs and live classes - [Delete Video ](https://docs.fermion.app/api-reference/video/delete-video.md): Call this endpoint to delete a video from the system. This operation cannot be undone. - [Download recorded video MP4 ](https://docs.fermion.app/api-reference/video/download-recorded-video-mp4.md): Call this endpoint to download a video from Fermion to your external system. The file will be downloaded as MP4. - [Get presigned URL to upload video ](https://docs.fermion.app/api-reference/video/get-presigned-url-to-upload-video.md): Get URL to upload a video in your school. You have to make a PUT request on the "presignedUrl" to upload the video, then call the "start-processing-uploaded-video" API endpoint for our transcoder to start processing your uploaded video. - [Get signed URL data for live event session ](https://docs.fermion.app/api-reference/video/get-signed-url-data-for-live-event-session.md): Get m3u8 playlist URL, decryption key and verification URL signatures for playing a Fermion live event manually. This is recommended for advanced use cases only - [Get signed URL data for recorded videos ](https://docs.fermion.app/api-reference/video/get-signed-url-data-for-recorded-videos.md): Get m3u8 playlist URL, decryption key and verification URL signatures for playing a Fermion video manually. This is recommended for advanced use cases only - [Get video from video library ](https://docs.fermion.app/api-reference/video/get-video-from-video-library.md): Retrieve information about a video inside your video library using filter search terms - [Start processing uploaded video ](https://docs.fermion.app/api-reference/video/start-processing-uploaded-video.md): Call this endpoint after "get-presigned-url-for-video-upload" endpoint for our system to start processing your uploaded video. Note that you must wait for upload of video to finish otherwise your video processing might fail. - [Update video privacy setting ](https://docs.fermion.app/api-reference/video/update-video-privacy-setting.md): Use this endpoint to update whether video can be played publicly, or if it requires a JWT to be played. Read more about it here: https://docs.fermion.app/docs/recorded-videos/embed-video - [Product Updates](https://docs.fermion.app/changelog.md): New updates and improvements - [Getting Started with the Fermion Sandbox](https://docs.fermion.app/coding-sandbox/getting-started.md): Set up Fermion Sandbox and run your first secure containerized code session. - [Fermion Sandbox](https://docs.fermion.app/coding-sandbox/introduction.md): Secure, isolated cloud sandboxes for executing untrusted code safely. - [Get Container Details](https://docs.fermion.app/coding-sandbox/methods/container-details.md): Retrieve container connection details including subdomain and secure access token. - [Create and Spin up a new sandbox instance](https://docs.fermion.app/coding-sandbox/methods/create.md): Provision a new Fermion Sandbox container with optional persistence or repository cloning. - [Disconnect from the Sandbox instance](https://docs.fermion.app/coding-sandbox/methods/disconnect.md): Gracefully close the WebSocket connection and clean up sandbox resources. - [Expose ports from Sandbox for a public HTTPS URL](https://docs.fermion.app/coding-sandbox/methods/expose-port.md): Expose a sandbox port publicly over HTTPS and access live web services running inside the container. - [Create a sandbox instance using Snippet Id](https://docs.fermion.app/coding-sandbox/methods/from-snippet.md): Create a new sandbox with same file system as previous sandbox. - [Retrieve files from your Sandbox instance](https://docs.fermion.app/coding-sandbox/methods/get-file.md): Retrieve text or binary files from the sandbox filesystem as standard web Response objects. - [Retrieve public URLs for Exposed Ports](https://docs.fermion.app/coding-sandbox/methods/get-public-urls.md): Retrieve all public HTTPS URLs for exposed sandbox ports (3000, 1337, 1338). - [Initialization (new Sandbox)](https://docs.fermion.app/coding-sandbox/methods/initialization.md): Learn how to initialize a new Fermion Sandbox client before creating containers. - [Is Connected](https://docs.fermion.app/coding-sandbox/methods/is-connected.md): Check whether the current sandbox session is actively connected via WebSocket. - [Execute Commands inside your Sandbox](https://docs.fermion.app/coding-sandbox/methods/run-command.md): Execute short, non-streaming commands within a Fermion Sandbox and return stdout and stderr once complete. - [Execute Long Running Commands inside your Sandbox](https://docs.fermion.app/coding-sandbox/methods/run-streaming-command.md): Execute long-running commands with real-time stdout and stderr streaming inside a Fermion Sandbox. - [Get Session ID](https://docs.fermion.app/coding-sandbox/methods/session-id.md): Retrieve the current sandbox session ID, or null if no active session exists. - [Write to files inside your Sandbox Instance](https://docs.fermion.app/coding-sandbox/methods/write-file.md): Write text or binary files to the sandbox filesystem with automatic directory creation. - [Get Container Details](https://docs.fermion.app/coding-sandbox/python-sdk/container-details.md): Retrieve container connection details including subdomain and secure access token using the Python SDK. - [Create and Spin Up a New Sandbox Instance](https://docs.fermion.app/coding-sandbox/python-sdk/create.md): Provision a new Fermion Sandbox container with optional persistence or repository cloning using the Python SDK. - [Disconnect from the Sandbox Instance](https://docs.fermion.app/coding-sandbox/python-sdk/disconnect.md): Gracefully close the WebSocket connection and clean up sandbox resources using the Python SDK. - [Expose Ports from Sandbox for a Public HTTPS URL](https://docs.fermion.app/coding-sandbox/python-sdk/expose-port.md): Expose a sandbox port publicly over HTTPS and access live web services running inside the container using the Python SDK. - [Create a Sandbox Instance Using Snippet ID](https://docs.fermion.app/coding-sandbox/python-sdk/from-snippet.md): Recreate a sandbox with the same file system as a previous one using its snippet ID in the Python SDK. - [Retrieve Files from Your Sandbox Instance](https://docs.fermion.app/coding-sandbox/python-sdk/get-file.md): Retrieve text or binary files from the sandbox filesystem using the Python SDK. - [Retrieve Public URLs for Exposed Ports](https://docs.fermion.app/coding-sandbox/python-sdk/get-public-urls.md): Retrieve all public HTTPS URLs for exposed sandbox ports (3000, 1337, 1338) using the Python SDK. - [Initialization (Sandbox)](https://docs.fermion.app/coding-sandbox/python-sdk/initialization.md): Learn how to initialize a new Fermion Sandbox client before creating containers using the Python SDK. - [Is Connected](https://docs.fermion.app/coding-sandbox/python-sdk/is-connected.md): Check whether the current sandbox session is actively connected via WebSocket using the Python SDK. - [quick_run() Method](https://docs.fermion.app/coding-sandbox/python-sdk/quick-run.md): Execute code instantly in multiple programming languages using the quick_run method in Python. - [Execute Commands Inside Your Sandbox](https://docs.fermion.app/coding-sandbox/python-sdk/run-command.md): Execute short, non-streaming commands within a Fermion Sandbox and return stdout and stderr once complete using the Python SDK. - [Execute Long-Running Commands Inside Your Sandbox](https://docs.fermion.app/coding-sandbox/python-sdk/run-streaming-command.md): Execute long-running commands with real-time stdout and stderr streaming inside a Fermion Sandbox using the Python SDK. - [Get Session ID](https://docs.fermion.app/coding-sandbox/python-sdk/session-id.md): Retrieve the current sandbox session ID, or None if no active session exists using the Python SDK. - [Write to Files Inside Your Sandbox Instance](https://docs.fermion.app/coding-sandbox/python-sdk/write-file.md): Write text or binary files to the sandbox filesystem with automatic directory creation using the Python SDK. - [quickRun() Method](https://docs.fermion.app/coding-sandbox/quick-run.md): Learn how to instantly execute code in multiple programming languages using the QuickRun method. - [Community Features](https://docs.fermion.app/community/community-features.md): Explore all the features available in Fermion communities, including channels, threads, polls, reactions, admin controls, and more, to engage and connect with your learners effectively. - [Communities on Fermion](https://docs.fermion.app/community/what-are-communities.md): Discover the community features on Fermion and learn how to connect, collaborate, and engage with instructors and learners. - [Contest Questions](https://docs.fermion.app/contests/contest-questions.md): Learn how to add and configure different question types in your Fermion contest, including interactive coding labs, DSA coding labs, and quizzes. - [Contests on Fermion](https://docs.fermion.app/contests/introduction.md): Learn how to create, manage, and run coding contests and quizzes on Fermion, including attempt tracking and analytics. - [Configuring a Contest](https://docs.fermion.app/contests/set-up-contest.md): Step-by-step guide to creating and configuring coding contests and quizzes on Fermion, with details on settings, attempt tracking, and analytics. - [User Attempts](https://docs.fermion.app/contests/user-attempts.md): Learn how users can start, attempt, and review contests in Fermion. - [AI Lab Builder](https://docs.fermion.app/creating-coding-labs/ai-lab-builder.md): Learn how to create coding labs using Fermion AI Agent builder - [Using .cdmrc](https://docs.fermion.app/creating-coding-labs/cdmrc-file.md): Learn how to configure coding labs using the .cdmrc configuration file - [Embed an Interactive Lab](https://docs.fermion.app/creating-coding-labs/embedding-lab.md): Step-by-step guide to embedding a coding lab inside your course or website using Fermion’s lab embed tools. - [ HTML/CSS Labs](https://docs.fermion.app/creating-coding-labs/technologies/html-css.md): Create interactive front-end labs for learners to experiment with live HTML and CSS code directly in the browser. - [Java Labs with JUnit](https://docs.fermion.app/creating-coding-labs/technologies/java.md): Set up Java labs using JUnit for testing learners’ code submissions and validating results in real-time. - [Node.js Labs](https://docs.fermion.app/creating-coding-labs/technologies/node.md): Learn how to build interactive coding labs with Node.js - [Python lab with Pytest](https://docs.fermion.app/creating-coding-labs/technologies/python.md): Develop interactive Python environments powered by Pytest for quick code execution - [React.js lab with Vitest](https://docs.fermion.app/creating-coding-labs/technologies/react.md): Build dynamic React.js labs integrated with Vitest for live component testing - [Rust Lab](https://docs.fermion.app/creating-coding-labs/technologies/rust.md): Create secure Rust programming environments where learners can compile and execute Rust code safely. - [Introduction](https://docs.fermion.app/creating-coding-labs/what-are-coding-labs.md): Learn about what interactive coding labs are on Fermion and how you can use them - [AI Copilot](https://docs.fermion.app/creating-io-coding-labs/ai-agent.md): Create intelligent coding labs for DSA / IO problems using the Fermion Copilot. - [Introduction](https://docs.fermion.app/creating-io-coding-labs/api-usage.md): Learn about using APIs to execute DSA coding labs - [Creating an IO Lab](https://docs.fermion.app/creating-io-coding-labs/creating-io-lab-successfully.md): Learn about best practices for creating a functional IO lab on Fermion - [Embed an IO Lab](https://docs.fermion.app/creating-io-coding-labs/embed-lab.md): Learn how you can create IO coding labs inside Fermion interface and embed them externally - [Introduction](https://docs.fermion.app/creating-io-coding-labs/introduction.md): An overview of IO-based coding labs designed for algorithmic and DSA-style coding exercises. Also learn about languages supported on Fermion. - [SQL Labs](https://docs.fermion.app/creating-io-coding-labs/sql-lab.md): Learn how to setup a successful SQL coding lab on Fermion for your students - [Executing SQLite via API](https://docs.fermion.app/creating-io-coding-labs/sql-over-api.md): Learn how to execute SQLite code using Fermion DSA API, including preparing your database file and encoding it correctly. - [Submissions](https://docs.fermion.app/creating-io-coding-labs/submissions.md): Learn how to view and track submission history for IO coding labs - [Blogs](https://docs.fermion.app/custom-landing-pages/blogs.md): Create and manage blogs easily within Fermion to share updates, tutorials, and stories with your audience. - [Direct Checkout Links](https://docs.fermion.app/custom-landing-pages/checkout-page-direct-links.md): Understand how to construct direct checkout page links using Fermion - [Custom Redirects](https://docs.fermion.app/custom-landing-pages/custom-redirects.md): Set up custom redirects to guide learners to specific pages, courses, or resources efficiently. - [Introduction](https://docs.fermion.app/custom-landing-pages/introduction.md): Learn how to create high-converting, fully customizable landing pages on Fermion using no-code tools or your own source code. - [Using AI Builder](https://docs.fermion.app/custom-landing-pages/using-ai-builder.md): Learn how to create custom pages using Fermion's AI builder to generate and customize pages with real-time data and checkout links - [Using Source Code](https://docs.fermion.app/custom-landing-pages/using-source-code.md): Learn how to create fully customized pages by adding source code directly for complete control over design and functionality - [Downloadable Products](https://docs.fermion.app/digital-products/downloadable-products.md): Learn how to design, upload, and publish your first downloadable product on Fermion - [eBooks Inside Courses](https://docs.fermion.app/digital-products/ebook-course.md): Learn how to connect your eBook to a course and allow enrolled students to access it from within the course. - [Embed eBook](https://docs.fermion.app/digital-products/embed-ebook.md): Learn how to embed an eBook externally - [Enroll Students](https://docs.fermion.app/digital-products/enroll-students.md): Guide to manually or automatically enrolling users in your digital products on Fermion. - [eBooks on Fermion](https://docs.fermion.app/digital-products/introduction.md): Learn how to upload, manage, and sell eBooks on Fermion with watermarking, and secure delivery. - [Setup eBooks](https://docs.fermion.app/digital-products/landing-page.md): Learn how to design, upload, and publish your first eBook on Fermion using the Product Builder. - [Object Storage](https://docs.fermion.app/digital-products/object-storage.md): Learn how to manage private and public files using Fermion object storage for your digital products and courses - [Access Form Submissions](https://docs.fermion.app/forms/form-submissions.md): Learn how to view and manage submissions for your forms, including individual and table views, and exporting to CSV. - [Setup Forms](https://docs.fermion.app/forms/introduction.md): Create multi-step forms and collect submissions - [User Onboarding Form](https://docs.fermion.app/forms/onboarding-form.md): Create and assign an onboarding form for new users joining your school. - [Gamification Features](https://docs.fermion.app/gamification/features.md): Explore all the gamification options on your Fermion platform including XP rewards, streaks, and leaderboards. - [Overview](https://docs.fermion.app/gamification/introduction.md): Learn how to enable gamification on your Fermion platform to increase engagement, retention, and learner motivation. - [Fermion vs other platforms](https://docs.fermion.app/getting-started/fermion-vs-other-platforms.md): Learn how Fermion compares to other learning management platforms - [What's possible on Fermion](https://docs.fermion.app/getting-started/what-can-you-do-on-fermion.md): Explore the features and capabilities of Fermion for businesses, academies, and creators - [What is Fermion?](https://docs.fermion.app/getting-started/what-is-fermion.md): Learn about Fermion and how it helps businesses, academies, and creators build their online learning platforms - [Embedding Vimeo Videos Inside Courses](https://docs.fermion.app/guides/vimeo-embed.md): Learn how to embed Vimeo videos inside courses using iframe embeds, and understand the trade-offs compared to Fermion’s built-in video library. - [AI Summary](https://docs.fermion.app/live-classes/ai-summary.md): Generate AI-powered summaries of your live sessions based on transcripts, providing students with key topics and concepts from the entire session. - [Clone Live Classes](https://docs.fermion.app/live-classes/cloning-class.md): Learn how to clone a live class from one cohort-based course to another in just a few clicks. - [Frequently Asked Questions](https://docs.fermion.app/live-classes/common-faqs.md): Common questions regarding live classes on Fermion - [DRM and Video Watermarking](https://docs.fermion.app/live-classes/drm-and-watermarking.md): Protect your live streams with DRM encryption and dynamic video watermarking to prevent unauthorized access and content piracy. - [Embedding live session externally](https://docs.fermion.app/live-classes/embed-live-session.md): Learn about embedding live sessions externally and customizing the look and feel for them - [Event Calendar](https://docs.fermion.app/live-classes/event-calendar.md): Learn how to use Fermion's Event Calendar to plan, schedule, and manage live events and classes effortlessly, either individually or in bulk using CSV uploads. - [Stage](https://docs.fermion.app/live-classes/invite-to-stage.md): Learn how to use Fermion's Stage to host interactive live sessions, allowing participants to join the stage, screenshare, turn on their microphone and camera, and engage directly with the class. - [Live Chat](https://docs.fermion.app/live-classes/live-chat.md): Enable real-time communications with the help of Live Chat to keep students engaged and informed - [Live Class Analytics](https://docs.fermion.app/live-classes/livestream-analytics.md): Understand and access detailed analytics for your live sessions, including attendance, engagement, and performance insights. - [Livestream Settings](https://docs.fermion.app/live-classes/livestream-settings.md): Learn how to configure audio, video, and general settings during a live session on Fermion. - [1:1 Calls](https://docs.fermion.app/live-classes/one-one-calls.md): Set up and host one-on-one video calls with learners directly from your instructor dashboard. - [Pin a Tile](https://docs.fermion.app/live-classes/pin-a-tile.md): Learn how to pin a participant’s video tile during a live session to keep all students focused on the same content. - [Public Events](https://docs.fermion.app/live-classes/public-event.md): Host live sessions that are open to everyone using Fermion’s Public Events feature. - [Transcripts / Auto-Recordings](https://docs.fermion.app/live-classes/recording-and-captions.md): Automatically record live sessions with AI-generated captions and provide downloadable videos for accessible, on-demand learning. - [Schedule a Live Class in Fermion](https://docs.fermion.app/live-classes/setup-live-class.md): Learn how to create, configure, and schedule live classes in Fermion. - [Live Class on Fermion](https://docs.fermion.app/live-classes/what-are-live-classes.md): Learn about live classes on Fermion and how to conduct them properly - [Whiteboard](https://docs.fermion.app/live-classes/whiteboard.md): Collaborate visually during live sessions with Fermion’s interactive whiteboard. - [Additional Settings](https://docs.fermion.app/manage-settings/additional-settings.md): Configure post-payment redirects, office address, custom code, and FOMO widget for your school. - [Billing](https://docs.fermion.app/manage-settings/billing.md): View your current plan, monitor usage across all metrics, and review your complete transaction ledger including sales, refunds, and subscription overages. - [Configure and Access Basic School Settings](https://docs.fermion.app/manage-settings/change-school-settings.md): Learn how to configure your school’s branding, login options, security, and other administrative settings. - [Custom Styling with CSS](https://docs.fermion.app/manage-settings/custom-css-styling.md): Learn how to customize the appearance of Fermion components using custom CSS selectors - [Custom Sidebar Links](https://docs.fermion.app/manage-settings/custom-links.md): Instructors can add **custom links** to your **User Dashboard sidebar**. - [Earnings](https://docs.fermion.app/manage-settings/earnings.md): Learn how to manage your payouts, track revenue, and export sales data from your earnings dashboard. - [Email Log](https://docs.fermion.app/manage-settings/email-log.md): Review all emails sent from your school, including delivery status, recipients, and timestamps. - [Import Users](https://docs.fermion.app/manage-settings/import-users.md): Learn how to manually enroll new users into your school using single-user or CSV import options. - [Invoice settings](https://docs.fermion.app/manage-settings/invoice-settings.md): Customize the footer of your sales invoices - [Legal & Compliance Settings](https://docs.fermion.app/manage-settings/legal-and-compliance.md): Manage your Terms of Service and Privacy Policy pages to ensure legal compliance and transparency. - [Livestreaming & Recorded Video Settings](https://docs.fermion.app/manage-settings/live-and-recorded-settings.md): Configure live session recording, playback behavior, and AI transcription for your school. - [Manage Features](https://docs.fermion.app/manage-settings/manage-features.md): Learn how to enable, disable, and configure various features available to instructors on the platform. - [Manage Instructors](https://docs.fermion.app/manage-settings/manage-instructors.md): Add, remove, and customize instructor access and permissions for your Fermion school. - [Payouts](https://docs.fermion.app/manage-settings/manage-payouts.md): Understand how to configure payment methods, track earnings, and manage payouts efficiently on the platform. - [Manage Users](https://docs.fermion.app/manage-settings/manage-users.md): View user profiles, manage enrollments, change account details, and enroll users in products. - [Partial payment dashboard](https://docs.fermion.app/manage-settings/partial-payment-dashboard.md): Track and manage partial payment collections, monitor student installment plans, and view payment trends over time. - [Password Protection](https://docs.fermion.app/manage-settings/password-protect.md): Learn how to enable password protection for your website to restrict access - [Analytics](https://docs.fermion.app/manage-settings/school-analytics.md): View student activity, usage insights, and performance metrics for your Fermion-powered school. - [School Event Logs](https://docs.fermion.app/manage-settings/school-event-logs.md): Monitor and track all events and actions performed in your school, including deletions, updates, and other administrative activities. - [Login, Security and Support](https://docs.fermion.app/manage-settings/security-settings.md): Manage login, security, and support configurations for your school - [User Access Log](https://docs.fermion.app/manage-settings/user-access-logs.md): Monitor all logged-in sessions in your school, view detailed session information, and maintain account security. - [Account Settings](https://docs.fermion.app/manage-settings/user-settings.md): Learn how to manage your instructor account settings, including profile information, email, tagline, long description, and password. - [Affiliate System](https://docs.fermion.app/marketing-tools/affiliate-marketing.md): Learn how to set up and manage your affiliate program, track referrals, and reward partners for driving course enrollments. - [Affiliate Payout Dashboard](https://docs.fermion.app/marketing-tools/affiliate-payout-dashboard.md): Learn how to view your affiliate earnings, request payouts, and manage your affiliate commission from the dedicated payout dashboard. - [UTM Campaign Reports](https://docs.fermion.app/marketing-tools/analytics-funnel-builder.md): Learn how to generate detailed reports for your UTM campaigns to track conversion funnels and purchase events. - [Email Sender Configuration](https://docs.fermion.app/marketing-tools/email-automation.md): Automate your email campaigns to engage learners and keep your students informed. - [Email Marketing](https://docs.fermion.app/marketing-tools/email-marketing.md): Learn how to create, manage, and optimize email marketing campaigns using Fermion. - [Email Templates](https://docs.fermion.app/marketing-tools/email-templates.md): Configure your email domains, reminders, and templates for system communications. - [WhatsApp Marketing](https://docs.fermion.app/marketing-tools/whatsapp-marketing.md): Connect your WhatsApp Business account to Fermion and send automated class reminders to your students. - [Account Setup](https://docs.fermion.app/onboarding/account-setup.md): Learn how to create and configure your instructor account, manage school settings, and ensure your account is ready to start creating courses. - [Platform FAQs](https://docs.fermion.app/onboarding/common-faqs.md): Frequently asked questions about Fermion platform - [Platform Resources](https://docs.fermion.app/onboarding/platform-resources.md): Explore all the resources available on the platform, including guides, documentation, and videos to enhance your experience with Fermion - [Support Strategy](https://docs.fermion.app/onboarding/support-strategy.md): Understand the platform’s support strategy, including available help channels, escalation processes, and best practices for getting assistance. - [Troubleshooting Mechanism](https://docs.fermion.app/onboarding/troubleshooting.md): A curated list of resources and references to help you identify and resolve common issues on the platform efficiently. - [Turnaround Time](https://docs.fermion.app/onboarding/turnaround-time.md): Get insights into expected response times for support requests and other platform processes to plan your workflow effectively. - [Enable AI Powered Captions](https://docs.fermion.app/recorded-videos/captions.md): Step-by-step guide to enable AI-generated captions for recorded videos on Fermion. - [Embed Recorded Videos](https://docs.fermion.app/recorded-videos/embed-video.md): Learn how to integrate Fermion recorded videos into your website using our SDK, including public and private video embedding options with origin whitelisting. - [Introduction](https://docs.fermion.app/recorded-videos/introduction.md): Learn how to upload and manage recorded videos on Fermion - [Troubleshooting Steps](https://docs.fermion.app/recorded-videos/troubleshooting-playback.md): Comprehensive guide to resolve video playback problems on Fermion-powered platforms - [Video Library](https://docs.fermion.app/recorded-videos/video-library.md): Learn how to manage and configure your videos on Fermion using the Video Library. - [In-Video Quiz](https://docs.fermion.app/recorded-videos/video-quiz.md): Learn how to create interactive quizzes within course videos. - [Video Watermarking](https://docs.fermion.app/recorded-videos/video-watermark.md): Learn how to protect your recorded videos using dynamic, viewer-specific watermarks on Fermion. - [AI tutor](https://docs.fermion.app/setting-up-course/ai-tutor.md): Enable AI-powered assistance for your students with contextual help across quizzes, videos, and articles. - [Announcements](https://docs.fermion.app/setting-up-course/announcements.md): Send announcements to all students enrolled in your course directly from your course dashboard. - [Assignments](https://docs.fermion.app/setting-up-course/assignments.md): Learn how to create and manage assignments inside your Fermion courses. - [Adding Course Files](https://docs.fermion.app/setting-up-course/attachments.md): Step-by-step instructions for uploading, managing, and organizing course materials like videos, PDFs, and presentations. - [Bulk Import Syllabus](https://docs.fermion.app/setting-up-course/bulk-import-syllabus.md): Discover how to upload an entire syllabus at once using the platform's bulk import syllabus tools via CSV. - [Bundles](https://docs.fermion.app/setting-up-course/bundle.md): Learn how to create, customize, and manage Bundles that combine multiple products like courses, eBooks, and live events into a single offer. - [Frequently Asked Questions](https://docs.fermion.app/setting-up-course/common-faqs.md): Frequently asked questions regarding setting up a course - [Completion Certificates](https://docs.fermion.app/setting-up-course/completion-certificate.md): Set up automated certificates for learners upon course completion and customize their design and content. - [Course Settings](https://docs.fermion.app/setting-up-course/course-settings.md): Learn to manage and configure all your course settings including enrollment, certificates, refunds, and more. - [CSV Report](https://docs.fermion.app/setting-up-course/csv-report.md): Export comprehensive student enrollment and progress data as CSV files, including enrollment dates, course completion status, and detailed section-wise progress for assignments, ebooks, videos, and labs. - [Detailed Student Report](https://docs.fermion.app/setting-up-course/detailed-student-report.md): Access comprehensive student analytics including performance metrics, engagement breakdown, activity timeline, and detailed course item completion status. - [Course Landing Page](https://docs.fermion.app/setting-up-course/landing-page.md): Understand how to customize and optimize your course landing page to attract learners and provide key course information. - [Overall Progress](https://docs.fermion.app/setting-up-course/overall-progress.md): View course-level student progress analytics including enrollment metrics, content breakdown, and completion progress for each course item across all enrolled students. - [Getting Started](https://docs.fermion.app/setting-up-course/prerequisites.md): A comprehensive guide to creating a new course, including defining course structure, modules, and initial setup steps. - [Syllabus Management](https://docs.fermion.app/setting-up-course/syllabus.md): Learn to organize and manage your course syllabus including recorded videos, live classes, contest and quizzes, articles and more - [Article](https://docs.fermion.app/setting-up-course/syllabus/article.md): Learn how to create and manage articles in your course syllabus - [Iframe Embed](https://docs.fermion.app/setting-up-course/syllabus/iframe-embed.md): Learn how to embed external content using iframes in your course syllabus - [Quiz](https://docs.fermion.app/setting-up-course/syllabus/quiz.md): Learn how to create and manage quizzes in your course syllabus - [Recorded Video](https://docs.fermion.app/setting-up-course/syllabus/recorded-video.md): Learn how to add and manage recorded videos in your course syllabus - [Resources](https://docs.fermion.app/setting-up-course/syllabus/resources.md): Learn how to add downloadable resources and materials in your course syllabus - [SCORM](https://docs.fermion.app/setting-up-course/syllabus/scorm.md): Learn how to add and manage SCORM packages in your course syllabus - [Adding and Using Tags in Courses and Course Items](https://docs.fermion.app/setting-up-course/tags.md): Learn how to add, manage, and use tags in your course items so learners can easily filter content based on topics, difficulty, or custom labels. - [Coupon Codes](https://docs.fermion.app/setup-pricing/add-coupon-codes.md): Learn how to create, manage, and share coupon codes for your courses to offer discounts and promote enrollments on Fermion. - [Custom Checkout Fields](https://docs.fermion.app/setup-pricing/checkout-fields.md): Learn how to collect additional customer information during checkout by creating custom fields for your courses, enhancing the purchasing experience and gathering useful data. - [Frequently Asked Questions](https://docs.fermion.app/setup-pricing/common-faqs.md): Frequently asked questions about Pricing Plans and related features on Fermion - [Custom payment gateway](https://docs.fermion.app/setup-pricing/custom-payment-gateway.md): Learn how to integrate your own Razorpay or PhonePe account as a custom payment gateway on Fermion - [Custom Payment Links](https://docs.fermion.app/setup-pricing/custom-payment-links.md): Generate one-time payment links for special sales or discounts and manually enroll users after payment. - [Fixed Pricing Plans](https://docs.fermion.app/setup-pricing/fixed-pricing-plan.md): Learn how to create and manage fixed pricing plans for your courses or digital products. - [Built-in payment gateway](https://docs.fermion.app/setup-pricing/payment-gateway.md): Learn how to use Fermion's built-in payment gateways. - [Partial Payment Pricing Plans](https://docs.fermion.app/setup-pricing/setup-emi.md): Learn how to set up and manage partial payment pricing plans for your courses or digital products, allowing students to pay in installments with flexible EMI options. - [Event Structure](https://docs.fermion.app/webhooks/anatomy.md): Understand the structure of webhook events sent by Fermion. - [Event Payloads](https://docs.fermion.app/webhooks/event-payloads.md): Detailed breakdown of all webhook event payloads supported by Fermion. - [Quick Start](https://docs.fermion.app/webhooks/getting-started.md): Learn how to set up and manage webhooks in Fermion. - [Supported Events](https://docs.fermion.app/webhooks/supported-events.md): Overview of all webhook events currently supported in Fermion. - [Utilizing Webhook Data](https://docs.fermion.app/webhooks/using-data.md): How to process Fermion webhook data and access event logs. - [Introduction](https://docs.fermion.app/webhooks/what-is-webhook.md): Understand how Fermion webhooks work and how you can integrate them in your system ## OpenAPI Specs - [fermion-backend-openapi](https://backend.codedamn.com/webhook/fermion-backend-openapi.yaml)